aboutsummaryrefslogtreecommitdiffstats
path: root/dist/theming-personal-theming.js.map
diff options
context:
space:
mode:
Diffstat (limited to 'dist/theming-personal-theming.js.map')
-rw-r--r--dist/theming-personal-theming.js.map2
1 files changed, 1 insertions, 1 deletions
diff --git a/dist/theming-personal-theming.js.map b/dist/theming-personal-theming.js.map
index a6685608d0a..5cb08fc0a3b 100644
--- a/dist/theming-personal-theming.js.map
+++ b/dist/theming-personal-theming.js.map
@@ -1 +1 @@
-{"version":3,"file":"theming-personal-theming.js?v=fa4027bb2b1bd878bc3c","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcColorPicker.js","webpack:///nextcloud/apps/theming/src/helpers/refreshStyles.js","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue?vue&type=script&lang=js&","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ImageEdit.vue?e9bd","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue?vue&type=template&id=7bb2aa9c&","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?cf01","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?65db","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?da76","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?8b6f","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?8797","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?7631","webpack:///nextcloud/apps/theming/src/UserThemes.vue","webpack:///nextcloud/apps/theming/src/UserThemes.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/theming/src/UserThemes.vue?91eb","webpack://nextcloud/./apps/theming/src/UserThemes.vue?7eb2","webpack://nextcloud/./apps/theming/src/UserThemes.vue?b683","webpack:///nextcloud/apps/theming/src/personal-settings.js","webpack:///nextcloud/apps/theming/src/UserThemes.vue?vue&type=style&index=0&id=12a60840&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue?vue&type=style&index=0&id=1f090252&prod&scoped=true&lang=scss&","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true&","webpack:///nextcloud/node_modules/lodash/_baseEach.js","webpack:///nextcloud/node_modules/lodash/_baseFilter.js","webpack:///nextcloud/node_modules/lodash/_baseForOwn.js","webpack:///nextcloud/node_modules/lodash/_createBaseEach.js","webpack:///nextcloud/node_modules/lodash/defaults.js","webpack:///nextcloud/node_modules/lodash/filter.js","webpack:///nextcloud/node_modules/node-vibrant/lib/browser.js","webpack:///nextcloud/node_modules/node-vibrant/lib/builder.js","webpack:///nextcloud/node_modules/node-vibrant/lib/color.js","webpack:///nextcloud/node_modules/node-vibrant/lib/filter/default.js","webpack:///nextcloud/node_modules/node-vibrant/lib/filter/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/generator/default.js","webpack:///nextcloud/node_modules/node-vibrant/lib/generator/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/image/base.js","webpack:///nextcloud/node_modules/node-vibrant/lib/image/browser.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/mmcq.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/pqueue.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/vbox.js","webpack:///nextcloud/node_modules/node-vibrant/lib/util.js","webpack:///nextcloud/node_modules/node-vibrant/lib/vibrant.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/*! For license information please see NcColorPicker.js.LICENSE.txt */\n!function(e,a){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=a():\"function\"==typeof define&&define.amd?define(\"NextcloudVue\",[],a):\"object\"==typeof exports?exports.NextcloudVue=a():(e.NextcloudVue=e.NextcloudVue||{},e.NextcloudVue[\"Components/NcColorPicker\"]=a())}(self,(()=>(()=>{var e={3089:(e,a,t)=>{\"use strict\";function o(e){return o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},o(e)}function i(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);a&&(o=o.filter((function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable}))),t.push.apply(t,o)}return t}function n(e){for(var a=1;a<arguments.length;a++){var t=null!=arguments[a]?arguments[a]:{};a%2?i(Object(t),!0).forEach((function(a){s(e,a,t[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):i(Object(t)).forEach((function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(t,a))}))}return e}function s(e,a,t){return(a=function(e){var a=function(e,a){if(\"object\"!==o(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,a||\"default\");if(\"object\"!==o(i))return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===a?String:Number)(e)}(e,\"string\");return\"symbol\"===o(a)?a:String(a)}(a))in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}t.d(a,{default:()=>N});const r={name:\"NcButton\",props:{alignment:{type:String,default:\"center\",validator:function(e){return[\"start\",\"start-reverse\",\"center\",\"center-reverse\",\"end\",\"end-reverse\"].includes(e)}},disabled:{type:Boolean,default:!1},type:{type:String,validator:function(e){return-1!==[\"primary\",\"secondary\",\"tertiary\",\"tertiary-no-background\",\"tertiary-on-primary\",\"error\",\"warning\",\"success\"].indexOf(e)},default:\"secondary\"},nativeType:{type:String,validator:function(e){return-1!==[\"submit\",\"reset\",\"button\"].indexOf(e)},default:\"button\"},wide:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},href:{type:String,default:null},download:{type:String,default:null},to:{type:[String,Object],default:null},exact:{type:Boolean,default:!1},ariaHidden:{type:Boolean,default:null},pressed:{type:Boolean,default:null}},emits:[\"update:pressed\",\"click\"],computed:{realType:function(){return this.pressed?\"primary\":!1===this.pressed&&\"primary\"===this.type?\"secondary\":this.type},flexAlignment:function(){return this.alignment.split(\"-\")[0]},isReverseAligned:function(){return this.alignment.includes(\"-\")}},render:function(e){var a,t,o,i=this,r=null===(a=this.$slots.default)||void 0===a||null===(a=a[0])||void 0===a||null===(a=a.text)||void 0===a||null===(t=a.trim)||void 0===t?void 0:t.call(a),l=!!r,c=null===(o=this.$slots)||void 0===o?void 0:o.icon;r||this.ariaLabel||console.warn(\"You need to fill either the text or the ariaLabel props in the button component.\",{text:r,ariaLabel:this.ariaLabel},this);var m=function(){var a,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=t.navigate,m=t.isActive,d=t.isExactActive;return e(i.to||!i.href?\"button\":\"a\",{class:[\"button-vue\",(a={\"button-vue--icon-only\":c&&!l,\"button-vue--text-only\":l&&!c,\"button-vue--icon-and-text\":c&&l},s(a,\"button-vue--vue-\".concat(i.realType),i.realType),s(a,\"button-vue--wide\",i.wide),s(a,\"button-vue--\".concat(i.flexAlignment),\"center\"!==i.flexAlignment),s(a,\"button-vue--reverse\",i.isReverseAligned),s(a,\"active\",m),s(a,\"router-link-exact-active\",d),a)],attrs:n({\"aria-label\":i.ariaLabel,\"aria-pressed\":i.pressed,disabled:i.disabled,type:i.href?null:i.nativeType,role:i.href?\"button\":null,href:!i.to&&i.href?i.href:null,target:!i.to&&i.href?\"_self\":null,rel:!i.to&&i.href?\"nofollow noreferrer noopener\":null,download:!i.to&&i.href&&i.download?i.download:null},i.$attrs),on:n(n({},i.$listeners),{},{click:function(e){\"boolean\"==typeof i.pressed&&i.$emit(\"update:pressed\",!i.pressed),i.$emit(\"click\",e),null==o||o(e)}})},[e(\"span\",{class:\"button-vue__wrapper\"},[c?e(\"span\",{class:\"button-vue__icon\",attrs:{\"aria-hidden\":i.ariaHidden}},[i.$slots.icon]):null,l?e(\"span\",{class:\"button-vue__text\"},[r]):null])])};return this.to?e(\"router-link\",{props:{custom:!0,to:this.to,exact:this.exact},scopedSlots:{default:m}}):m()}};var l=t(3379),c=t.n(l),m=t(7795),d=t.n(m),u=t(569),p=t.n(u),h=t(3565),g=t.n(h),v=t(9216),k=t.n(v),y=t(4589),A=t.n(y),f=t(7294),C={};C.styleTagTransform=A(),C.setAttributes=g(),C.insert=p().bind(null,\"head\"),C.domAPI=d(),C.insertStyleElement=k();c()(f.Z,C);f.Z&&f.Z.locals&&f.Z.locals;var P=t(1900),S=t(2102),w=t.n(S),b=(0,P.Z)(r,undefined,undefined,!1,null,\"7aad13a0\",null);\"function\"==typeof w()&&w()(b);const N=b.exports},2297:(e,a,t)=>{\"use strict\";t.d(a,{default:()=>E});var o=t(9454),i=t(4505),n=t(1206);function s(e){return s=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s(e)}function r(){r=function(){return e};var e={},a=Object.prototype,t=a.hasOwnProperty,o=Object.defineProperty||function(e,a,t){e[a]=t.value},i=\"function\"==typeof Symbol?Symbol:{},n=i.iterator||\"@@iterator\",l=i.asyncIterator||\"@@asyncIterator\",c=i.toStringTag||\"@@toStringTag\";function m(e,a,t){return Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[a]}try{m({},\"\")}catch(e){m=function(e,a,t){return e[a]=t}}function d(e,a,t,i){var n=a&&a.prototype instanceof h?a:h,s=Object.create(n.prototype),r=new j(i||[]);return o(s,\"_invoke\",{value:S(e,t,r)}),s}function u(e,a,t){try{return{type:\"normal\",arg:e.call(a,t)}}catch(e){return{type:\"throw\",arg:e}}}e.wrap=d;var p={};function h(){}function g(){}function v(){}var k={};m(k,n,(function(){return this}));var y=Object.getPrototypeOf,A=y&&y(y(O([])));A&&A!==a&&t.call(A,n)&&(k=A);var f=v.prototype=h.prototype=Object.create(k);function C(e){[\"next\",\"throw\",\"return\"].forEach((function(a){m(e,a,(function(e){return this._invoke(a,e)}))}))}function P(e,a){function i(o,n,r,l){var c=u(e[o],e,n);if(\"throw\"!==c.type){var m=c.arg,d=m.value;return d&&\"object\"==s(d)&&t.call(d,\"__await\")?a.resolve(d.__await).then((function(e){i(\"next\",e,r,l)}),(function(e){i(\"throw\",e,r,l)})):a.resolve(d).then((function(e){m.value=e,r(m)}),(function(e){return i(\"throw\",e,r,l)}))}l(c.arg)}var n;o(this,\"_invoke\",{value:function(e,t){function o(){return new a((function(a,o){i(e,t,a,o)}))}return n=n?n.then(o,o):o()}})}function S(e,a,t){var o=\"suspendedStart\";return function(i,n){if(\"executing\"===o)throw new Error(\"Generator is already running\");if(\"completed\"===o){if(\"throw\"===i)throw n;return E()}for(t.method=i,t.arg=n;;){var s=t.delegate;if(s){var r=w(s,t);if(r){if(r===p)continue;return r}}if(\"next\"===t.method)t.sent=t._sent=t.arg;else if(\"throw\"===t.method){if(\"suspendedStart\"===o)throw o=\"completed\",t.arg;t.dispatchException(t.arg)}else\"return\"===t.method&&t.abrupt(\"return\",t.arg);o=\"executing\";var l=u(e,a,t);if(\"normal\"===l.type){if(o=t.done?\"completed\":\"suspendedYield\",l.arg===p)continue;return{value:l.arg,done:t.done}}\"throw\"===l.type&&(o=\"completed\",t.method=\"throw\",t.arg=l.arg)}}}function w(e,a){var t=a.method,o=e.iterator[t];if(void 0===o)return a.delegate=null,\"throw\"===t&&e.iterator.return&&(a.method=\"return\",a.arg=void 0,w(e,a),\"throw\"===a.method)||\"return\"!==t&&(a.method=\"throw\",a.arg=new TypeError(\"The iterator does not provide a '\"+t+\"' method\")),p;var i=u(o,e.iterator,a.arg);if(\"throw\"===i.type)return a.method=\"throw\",a.arg=i.arg,a.delegate=null,p;var n=i.arg;return n?n.done?(a[e.resultName]=n.value,a.next=e.nextLoc,\"return\"!==a.method&&(a.method=\"next\",a.arg=void 0),a.delegate=null,p):n:(a.method=\"throw\",a.arg=new TypeError(\"iterator result is not an object\"),a.delegate=null,p)}function b(e){var a={tryLoc:e[0]};1 in e&&(a.catchLoc=e[1]),2 in e&&(a.finallyLoc=e[2],a.afterLoc=e[3]),this.tryEntries.push(a)}function N(e){var a=e.completion||{};a.type=\"normal\",delete a.arg,e.completion=a}function j(e){this.tryEntries=[{tryLoc:\"root\"}],e.forEach(b,this),this.reset(!0)}function O(e){if(e){var a=e[n];if(a)return a.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function a(){for(;++o<e.length;)if(t.call(e,o))return a.value=e[o],a.done=!1,a;return a.value=void 0,a.done=!0,a};return i.next=i}}return{next:E}}function E(){return{value:void 0,done:!0}}return g.prototype=v,o(f,\"constructor\",{value:v,configurable:!0}),o(v,\"constructor\",{value:g,configurable:!0}),g.displayName=m(v,c,\"GeneratorFunction\"),e.isGeneratorFunction=function(e){var a=\"function\"==typeof e&&e.constructor;return!!a&&(a===g||\"GeneratorFunction\"===(a.displayName||a.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,m(e,c,\"GeneratorFunction\")),e.prototype=Object.create(f),e},e.awrap=function(e){return{__await:e}},C(P.prototype),m(P.prototype,l,(function(){return this})),e.AsyncIterator=P,e.async=function(a,t,o,i,n){void 0===n&&(n=Promise);var s=new P(d(a,t,o,i),n);return e.isGeneratorFunction(t)?s:s.next().then((function(e){return e.done?e.value:s.next()}))},C(f),m(f,c,\"Generator\"),m(f,n,(function(){return this})),m(f,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(e){var a=Object(e),t=[];for(var o in a)t.push(o);return t.reverse(),function e(){for(;t.length;){var o=t.pop();if(o in a)return e.value=o,e.done=!1,e}return e.done=!0,e}},e.values=O,j.prototype={constructor:j,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=void 0,this.tryEntries.forEach(N),!e)for(var a in this)\"t\"===a.charAt(0)&&t.call(this,a)&&!isNaN(+a.slice(1))&&(this[a]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(\"throw\"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var a=this;function o(t,o){return s.type=\"throw\",s.arg=e,a.next=t,o&&(a.method=\"next\",a.arg=void 0),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var n=this.tryEntries[i],s=n.completion;if(\"root\"===n.tryLoc)return o(\"end\");if(n.tryLoc<=this.prev){var r=t.call(n,\"catchLoc\"),l=t.call(n,\"finallyLoc\");if(r&&l){if(this.prev<n.catchLoc)return o(n.catchLoc,!0);if(this.prev<n.finallyLoc)return o(n.finallyLoc)}else if(r){if(this.prev<n.catchLoc)return o(n.catchLoc,!0)}else{if(!l)throw new Error(\"try statement without catch or finally\");if(this.prev<n.finallyLoc)return o(n.finallyLoc)}}}},abrupt:function(e,a){for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o];if(i.tryLoc<=this.prev&&t.call(i,\"finallyLoc\")&&this.prev<i.finallyLoc){var n=i;break}}n&&(\"break\"===e||\"continue\"===e)&&n.tryLoc<=a&&a<=n.finallyLoc&&(n=null);var s=n?n.completion:{};return s.type=e,s.arg=a,n?(this.method=\"next\",this.next=n.finallyLoc,p):this.complete(s)},complete:function(e,a){if(\"throw\"===e.type)throw e.arg;return\"break\"===e.type||\"continue\"===e.type?this.next=e.arg:\"return\"===e.type?(this.rval=this.arg=e.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===e.type&&a&&(this.next=a),p},finish:function(e){for(var a=this.tryEntries.length-1;a>=0;--a){var t=this.tryEntries[a];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),N(t),p}},catch:function(e){for(var a=this.tryEntries.length-1;a>=0;--a){var t=this.tryEntries[a];if(t.tryLoc===e){var o=t.completion;if(\"throw\"===o.type){var i=o.arg;N(t)}return i}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,a,t){return this.delegate={iterator:O(e),resultName:a,nextLoc:t},\"next\"===this.method&&(this.arg=void 0),p}},e}function l(e,a,t,o,i,n,s){try{var r=e[n](s),l=r.value}catch(e){return void t(e)}r.done?a(l):Promise.resolve(l).then(o,i)}const c={name:\"NcPopover\",components:{Dropdown:o.Dropdown},inheritAttrs:!1,props:{popoverBaseClass:{type:String,default:\"\"},focusTrap:{type:Boolean,default:!0},setReturnFocus:{default:void 0,type:[HTMLElement,SVGElement,String,Boolean]}},emits:[\"after-show\",\"after-hide\"],beforeDestroy:function(){this.clearFocusTrap()},methods:{useFocusTrap:function(){var e,a=this;return(e=r().mark((function e(){var t,o;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.$nextTick();case 2:if(a.focusTrap){e.next=4;break}return e.abrupt(\"return\");case 4:if(o=null===(t=a.$refs.popover)||void 0===t||null===(t=t.$refs.popperContent)||void 0===t?void 0:t.$el){e.next=7;break}return e.abrupt(\"return\");case 7:a.$focusTrap=(0,i.createFocusTrap)(o,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:a.setReturnFocus,trapStack:(0,n.L)()}),a.$focusTrap.activate();case 9:case\"end\":return e.stop()}}),e)})),function(){var a=this,t=arguments;return new Promise((function(o,i){var n=e.apply(a,t);function s(e){l(n,o,i,s,r,\"next\",e)}function r(e){l(n,o,i,s,r,\"throw\",e)}s(void 0)}))})()},clearFocusTrap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var a;null===(a=this.$focusTrap)||void 0===a||a.deactivate(e),this.$focusTrap=null}catch(e){console.warn(e)}},afterShow:function(){var e=this;this.$nextTick((function(){e.$emit(\"after-show\"),e.useFocusTrap()}))},afterHide:function(){this.$emit(\"after-hide\"),this.clearFocusTrap()}}},m=c;var d=t(3379),u=t.n(d),p=t(7795),h=t.n(p),g=t(569),v=t.n(g),k=t(3565),y=t.n(k),A=t(9216),f=t.n(A),C=t(4589),P=t.n(C),S=t(1625),w={};w.styleTagTransform=P(),w.setAttributes=y(),w.insert=v().bind(null,\"head\"),w.domAPI=h(),w.insertStyleElement=f();u()(S.Z,w);S.Z&&S.Z.locals&&S.Z.locals;var b=t(1900),N=t(2405),j=t.n(N),O=(0,b.Z)(m,(function(){var e=this;return(0,e._self._c)(\"Dropdown\",e._g(e._b({ref:\"popover\",attrs:{distance:10,\"arrow-padding\":10,\"no-auto-focus\":!0,\"popper-class\":e.popoverBaseClass},on:{\"apply-show\":e.afterShow,\"apply-hide\":e.afterHide},scopedSlots:e._u([{key:\"popper\",fn:function(){return[e._t(\"default\")]},proxy:!0}],null,!0)},\"Dropdown\",e.$attrs,!1),e.$listeners),[e._t(\"trigger\")],2)}),[],!1,null,null,null);\"function\"==typeof j()&&j()(O);const E=O.exports},1206:(e,a,t)=>{\"use strict\";t.d(a,{L:()=>o});var o=function(){return Object.assign(window,{_nc_focus_trap:window._nc_focus_trap||[]}),window._nc_focus_trap}},7294:(e,a,t)=>{\"use strict\";t.d(a,{Z:()=>r});var o=t(7537),i=t.n(o),n=t(3645),s=t.n(n)()(i());s.push([e.id,\".material-design-icon[data-v-7aad13a0]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-7aad13a0]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light)}.button-vue *[data-v-7aad13a0],.button-vue span[data-v-7aad13a0]{cursor:pointer}.button-vue[data-v-7aad13a0]:focus{outline:none}.button-vue[data-v-7aad13a0]:disabled{cursor:default;opacity:.5;filter:saturate(0.7)}.button-vue:disabled *[data-v-7aad13a0]{cursor:default}.button-vue[data-v-7aad13a0]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-7aad13a0]:active{background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-7aad13a0]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-7aad13a0]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-7aad13a0]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-7aad13a0]{flex-direction:row-reverse}.button-vue--reverse.button-vue--icon-and-text[data-v-7aad13a0]{padding-inline:calc(var(--default-grid-baseline)*4) var(--default-grid-baseline)}.button-vue__icon[data-v-7aad13a0]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-7aad13a0]{font-weight:bold;margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue--icon-only[data-v-7aad13a0]{width:44px !important}.button-vue--text-only[data-v-7aad13a0]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-7aad13a0]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-7aad13a0]{padding-block:0;padding-inline:var(--default-grid-baseline) calc(var(--default-grid-baseline)*4)}.button-vue--wide[data-v-7aad13a0]{width:100%}.button-vue[data-v-7aad13a0]:focus-visible{outline:2px solid var(--color-main-text) !important;box-shadow:0 0 0 4px var(--color-main-background) !important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-7aad13a0]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius);background-color:rgba(0,0,0,0)}.button-vue--vue-primary[data-v-7aad13a0]{background-color:var(--color-primary-element);color:var(--color-primary-element-text)}.button-vue--vue-primary[data-v-7aad13a0]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-7aad13a0]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-7aad13a0]{color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light)}.button-vue--vue-secondary[data-v-7aad13a0]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--vue-tertiary[data-v-7aad13a0]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary[data-v-7aad13a0]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-7aad13a0]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-no-background[data-v-7aad13a0]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7aad13a0]{color:var(--color-primary-element-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-7aad13a0]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-success[data-v-7aad13a0]{background-color:var(--color-success);color:#fff}.button-vue--vue-success[data-v-7aad13a0]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-7aad13a0]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-7aad13a0]{background-color:var(--color-warning);color:#fff}.button-vue--vue-warning[data-v-7aad13a0]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-7aad13a0]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-7aad13a0]{background-color:var(--color-error);color:#fff}.button-vue--vue-error[data-v-7aad13a0]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-7aad13a0]:active{background-color:var(--color-error)}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcButton/NcButton.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,iBAAA,CACA,iBAAA,CACA,eAAA,CACA,QAAA,CACA,SAAA,CACA,kCAAA,CACA,gBAAA,CACA,eCcgB,CDbhB,cCagB,CDZhB,YAAA,CACA,kBAAA,CACA,sBAAA,CAGA,cAAA,CAKA,kBAAA,CACA,uDAAA,CACA,uBAAA,CACA,iCAAA,CAkBA,6CAAA,CACA,mDAAA,CA1BA,iEAEC,cAAA,CAQD,mCACC,YAAA,CAGD,sCACC,cAAA,CAIA,UCIiB,CDFjB,oBAAA,CALA,wCACC,cAAA,CAUF,kDACC,yDAAA,CAKD,oCACC,mDAAA,CAGD,sCACC,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAGD,uDACC,mBAAA,CAED,yDACC,qBAAA,CAED,2DACC,0BAAA,CAGD,gEACC,gFAAA,CAGD,mCACC,WCrDe,CDsDf,UCtDe,CDuDf,eCvDe,CDwDf,cCxDe,CDyDf,YAAA,CACA,sBAAA,CACA,kBAAA,CAGD,mCACC,gBAAA,CACA,iBAAA,CACA,aAAA,CACA,kBAAA,CACA,sBAAA,CACA,eAAA,CAID,wCACC,qBAAA,CAID,wCACC,cAAA,CACA,0DACC,eAAA,CACA,gBAAA,CAKF,4CACC,eAAA,CACA,gFAAA,CAID,mCACC,UAAA,CAGD,2CACC,mDAAA,CACA,4DAAA,CACA,+EACC,mDAAA,CACA,kCAAA,CACA,8BAAA,CAOF,0CACC,6CAAA,CACA,uCAAA,CACA,+DACC,mDAAA,CAID,iDACC,6CAAA,CAKF,4CACC,6CAAA,CACA,mDAAA,CACA,iEACC,6CAAA,CACA,yDAAA,CAKF,2CACC,4BAAA,CACA,8BAAA,CACA,gEACC,8CAAA,CAKF,yDACC,4BAAA,CACA,8BAAA,CACA,8EACC,8BAAA,CAKF,sDACC,uCAAA,CACA,8BAAA,CAEA,2EACC,8BAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,0CACC,qCAAA,CACA,UAAA,CACA,+DACC,2CAAA,CAID,iDACC,qCAAA,CAKF,wCACC,mCAAA,CACA,UAAA,CACA,6DACC,yCAAA,CAID,+CACC,mCAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7f0c9d1\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.button-vue {\\n\\tposition: relative;\\n\\twidth: fit-content;\\n\\toverflow: hidden;\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\tfont-size: var(--default-font-size);\\n\\tfont-weight: bold;\\n\\tmin-height: $clickable-area;\\n\\tmin-width: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t// Cursor pointer on element and all children\\n\\tcursor: pointer;\\n\\t& *,\\n\\tspan {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\tborder-radius: math.div($clickable-area, 2);\\n\\ttransition-property: color, border-color, background-color;\\n\\ttransition-duration: 0.1s;\\n\\ttransition-timing-function: linear;\\n\\n\\t// No outline feedback for focus. Handled with a toggled class in js (see data)\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\t& * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t// Gives a wash out effect\\n\\t\\tfilter: saturate($opacity_normal);\\n\\t}\\n\\n\\t// Default button type\\n\\tcolor: var(--color-primary-element-light-text);\\n\\tbackground-color: var(--color-primary-element-light);\\n\\t&:hover:not(:disabled) {\\n\\t\\tbackground-color: var(--color-primary-element-light-hover);\\n\\t}\\n\\n\\t// Back to the default color for this button when active\\n\\t// TODO: add ripple effect\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&--end &__wrapper {\\n\\t\\tjustify-content: end;\\n\\t}\\n\\t&--start &__wrapper {\\n\\t\\tjustify-content: start;\\n\\t}\\n\\t&--reverse &__wrapper {\\n\\t\\tflex-direction: row-reverse;\\n\\t}\\n\\n\\t&--reverse#{&}--icon-and-text {\\n\\t\\tpadding-inline: calc(var(--default-grid-baseline) * 4) var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\theight: $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__text {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-bottom: 1px;\\n\\t\\tpadding: 2px 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t// Icon-only button\\n\\t&--icon-only {\\n\\t\\twidth: $clickable-area !important;\\n\\t}\\n\\n\\t// Text-only button\\n\\t&--text-only {\\n\\t\\tpadding: 0 12px;\\n\\t\\t& .button-vue__text {\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon and text button\\n\\t&--icon-and-text {\\n\\t\\tpadding-block: 0;\\n\\t\\tpadding-inline: var(--default-grid-baseline) calc(var(--default-grid-baseline) * 4);\\n\\t}\\n\\n\\t// Wide button spans the whole width of the container\\n\\t&--wide {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\\n\\t\\t&.button-vue--vue-tertiary-on-primary {\\n\\t\\t\\toutline: 2px solid var(--color-primary-element-text);\\n\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Button types\\n\\n\\t// Primary\\n\\t&--vue-primary {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-primary-element-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Secondary\\n\\t&--vue-secondary {\\n\\t\\tcolor: var(--color-primary-element-light-text);\\n\\t\\tbackground-color: var(--color-primary-element-light);\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tcolor: var(--color-primary-element-light-text);\\n\\t\\t\\tbackground-color: var(--color-primary-element-light-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary\\n\\t&--vue-tertiary {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary, no background\\n\\t&--vue-tertiary-no-background {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary on primary color (like the header)\\n\\t&--vue-tertiary-on-primary {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\tbackground-color: transparent;\\n\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Success\\n\\t&--vue-success {\\n\\t\\tbackground-color: var(--color-success);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// : add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t}\\n\\n\\t// Warning\\n\\t&--vue-warning {\\n\\t\\tbackground-color: var(--color-warning);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-warning);\\n\\t\\t}\\n\\t}\\n\\n\\t// Error\\n\\t&--vue-error {\\n\\t\\tbackground-color: var(--color-error);\\n\\t\\tcolor: white;\\n\\t\\t&:hover:not(:disabled) {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const r=s},3246:(e,a,t)=>{\"use strict\";t.d(a,{Z:()=>r});var o=t(7537),i=t.n(o),n=t(3645),s=t.n(n)()(i());s.push([e.id,\".material-design-icon[data-v-6cccc0ac]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.color-picker[data-v-6cccc0ac]{display:flex;overflow:hidden;align-content:flex-end;flex-direction:column;justify-content:space-between;box-sizing:content-box !important;width:176px;padding:8px;border-radius:3px}.color-picker--advanced-fields[data-v-6cccc0ac]{width:264px}.color-picker__simple[data-v-6cccc0ac]{display:grid;grid-template-columns:repeat(auto-fit, 44px);grid-auto-rows:44px}.color-picker__simple-color-circle[data-v-6cccc0ac]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;min-height:34px;margin:auto;padding:0;color:#fff;border:1px solid rgba(0,0,0,.25);border-radius:50%;font-size:16px}.color-picker__simple-color-circle[data-v-6cccc0ac]:hover{opacity:.6}.color-picker__simple-color-circle--active[data-v-6cccc0ac]{width:38px;height:38px;min-height:38px;transition:all 100ms ease-in-out;opacity:1 !important}.color-picker__advanced[data-v-6cccc0ac]{box-shadow:none !important}.color-picker__navigation[data-v-6cccc0ac]{display:flex;flex-direction:row;justify-content:space-between;margin-top:10px}[data-v-6cccc0ac] .vc-chrome{width:unset;background-color:var(--color-main-background)}[data-v-6cccc0ac] .vc-chrome-color-wrap{width:30px;height:30px}[data-v-6cccc0ac] .vc-chrome-active-color{width:34px;height:34px;border-radius:17px}[data-v-6cccc0ac] .vc-chrome-body{padding:14px 0 0 0;background-color:var(--color-main-background)}[data-v-6cccc0ac] .vc-chrome-body .vc-input__input{box-shadow:none}[data-v-6cccc0ac] .vc-chrome-toggle-btn{filter:var(--background-invert-if-dark)}[data-v-6cccc0ac] .vc-chrome-saturation-wrap{border-radius:3px}[data-v-6cccc0ac] .vc-chrome-saturation-circle{width:20px;height:20px}.slide-enter[data-v-6cccc0ac]{transform:translateX(-50%);opacity:0}.slide-enter-to[data-v-6cccc0ac]{transform:translateX(0);opacity:1}.slide-leave[data-v-6cccc0ac]{transform:translateX(0);opacity:1}.slide-leave-to[data-v-6cccc0ac]{transform:translateX(-50%);opacity:0}.slide-enter-active[data-v-6cccc0ac],.slide-leave-active[data-v-6cccc0ac]{transition:all 50ms ease-in-out}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcColorPicker/NcColorPicker.vue\",\"webpack://./src/assets/variables.scss\"],names:[],mappings:\"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,eAAA,CACA,sBAAA,CACA,qBAAA,CACA,6BAAA,CACA,iCAAA,CACA,WAAA,CACA,WAAA,CACA,iBAAA,CAEA,gDACC,WAAA,CAGD,uCACC,YAAA,CACA,4CAAA,CACA,mBCKe,CDHf,oDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,WAAA,CACA,SAAA,CACA,UAAA,CACA,gCAAA,CACA,iBAAA,CACA,cAAA,CACA,0DACC,UAAA,CAED,4DACC,UAAA,CACA,WAAA,CACA,eAAA,CACA,gCAAA,CACA,oBAAA,CAKH,yCACC,0BAAA,CAGD,2CACC,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,eAAA,CAKD,8BACC,WAAA,CACA,6CAAA,CAEA,yCACC,UAAA,CACA,WAAA,CAGD,2CACC,UAAA,CACA,WAAA,CACA,kBAAA,CAGD,mCACC,kBAAA,CACA,6CAAA,CACA,oDACC,eAAA,CAIF,yCACC,uCAAA,CAIA,8CACC,iBAAA,CAGD,gDACC,UAAA,CACA,WAAA,CAOH,8BACC,0BAAA,CACA,SAAA,CAED,iCACC,uBAAA,CACA,SAAA,CAED,8BACC,uBAAA,CACA,SAAA,CAED,iCACC,0BAAA,CACA,SAAA,CAED,0EAEC,+BAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7f0c9d1\\\"; @import 'variables'; @import 'material-icons';\\n\\n.color-picker {\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-content: flex-end;\\n\\tflex-direction: column;\\n\\tjustify-content: space-between;\\n\\tbox-sizing: content-box !important;\\n\\twidth: 176px;\\n\\tpadding: 8px;\\n\\tborder-radius: 3px;\\n\\n\\t&--advanced-fields {\\n\\t\\twidth: 264px;\\n\\t}\\n\\n\\t&__simple {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: repeat(auto-fit, $clickable-area);\\n\\t\\tgrid-auto-rows: $clickable-area;\\n\\n\\t\\t&-color-circle {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: 34px;\\n\\t\\t\\theight: 34px;\\n\\t\\t\\tmin-height: 34px;\\n\\t\\t\\tmargin: auto;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: white;\\n\\t\\t\\tborder: 1px solid rgba(0, 0, 0, 0.25);\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\tfont-size: 16px;\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\topacity: .6;\\n\\t\\t\\t}\\n\\t\\t\\t&--active {\\n\\t\\t\\t\\twidth: 38px;\\n\\t\\t\\t\\theight: 38px;\\n\\t\\t\\t\\tmin-height: 38px;\\n\\t\\t\\t\\ttransition: all 100ms ease-in-out;\\n\\t\\t\\t\\topacity: 1 !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__advanced {\\n\\t\\tbox-shadow: none !important;\\n\\t}\\n\\n\\t&__navigation {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tjustify-content: space-between;\\n\\t\\tmargin-top: 10px;\\n\\t}\\n}\\n\\n:deep() .vc {\\n\\t&-chrome {\\n\\t\\twidth: unset;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\t&-color-wrap {\\n\\t\\t\\twidth: 30px;\\n\\t\\t\\theight: 30px;\\n\\t\\t}\\n\\n\\t\\t&-active-color {\\n\\t\\t\\twidth: 34px;\\n\\t\\t\\theight: 34px;\\n\\t\\t\\tborder-radius: 17px;\\n\\t\\t}\\n\\n\\t\\t&-body {\\n\\t\\t\\tpadding: 14px 0 0 0;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t.vc-input__input {\\n\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-toggle-btn {\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t}\\n\\n\\t\\t&-saturation {\\n\\t\\t\\t&-wrap {\\n\\t\\t\\t\\tborder-radius: 3px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-circle {\\n\\t\\t\\t\\twidth: 20px;\\n\\t\\t\\t\\theight: 20px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.slide {\\n\\t&-enter {\\n\\t\\ttransform: translateX(-50%);\\n\\t\\topacity: 0;\\n\\t}\\n\\t&-enter-to {\\n\\t\\ttransform: translateX(0);\\n\\t\\topacity: 1;\\n\\t}\\n\\t&-leave {\\n\\t\\ttransform: translateX(0);\\n\\t\\topacity: 1;\\n\\t}\\n\\t&-leave-to {\\n\\t\\ttransform: translateX(-50%);\\n\\t\\topacity: 0;\\n\\t}\\n\\t&-enter-active,\\n\\t&-leave-active {\\n\\t\\ttransition: all 50ms ease-in-out;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: math.div($clickable-area - $icon-size, 2);\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\\n// top-bar spacing\\n$topbar-margin: 4px;\\n\\n// navigation spacing\\n$app-navigation-settings-margin: 3px;\\n\"],sourceRoot:\"\"}]);const r=s},1625:(e,a,t)=>{\"use strict\";t.d(a,{Z:()=>r});var o=t(7537),i=t.n(o),n=t(3645),s=t.n(n)()(i());s.push([e.id,\".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:rgba(0,0,0,0);pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper--theme-dropdown.v-popper__popper{z-index:100000;top:0;left:0;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-dropdown.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-large);overflow:hidden;background:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-10px;border-bottom-width:0;border-top-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-10px;border-top-width:0;border-bottom-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-10px;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.v-popper--theme-dropdown.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}\",\"\",{version:3,sources:[\"webpack://./src/assets/material-icons.css\",\"webpack://./src/components/NcPopover/NcPopover.vue\"],names:[],mappings:\"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,iBACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CACA,aAAA,CACA,eAAA,CACA,SAAA,CAGD,wBACC,aAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,mBAAA,CACA,UAAA,CAMA,2CACC,cAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CAEA,sDAAA,CAEA,4DACC,SAAA,CACA,4BAAA,CACA,wCAAA,CACA,eAAA,CACA,uCAAA,CAGD,sEACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBA1BW,CA6BZ,kGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAGD,qGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAGD,oGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAGD,mGACC,WAAA,CACA,oBAAA,CACA,8CAAA,CAGD,6DACC,iBAAA,CACA,2EAAA,CACA,SAAA,CAGD,8DACC,kBAAA,CACA,yCAAA,CACA,SAAA\",sourcesContent:[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"@use 'sass:math'; $scope_version:\\\"7f0c9d1\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n.resize-observer {\\n\\tposition:absolute;\\n\\ttop:0;\\n\\tleft:0;\\n\\tz-index:-1;\\n\\twidth:100%;\\n\\theight:100%;\\n\\tborder:none;\\n\\tbackground-color:transparent;\\n\\tpointer-events:none;\\n\\tdisplay:block;\\n\\toverflow:hidden;\\n\\topacity:0\\n}\\n\\n.resize-observer object {\\n\\tdisplay:block;\\n\\tposition:absolute;\\n\\ttop:0;\\n\\tleft:0;\\n\\theight:100%;\\n\\twidth:100%;\\n\\toverflow:hidden;\\n\\tpointer-events:none;\\n\\tz-index:-1\\n}\\n\\n$arrow-width: 10px;\\n\\n.v-popper--theme-dropdown {\\n\\t&.v-popper__popper {\\n\\t\\tz-index: 100000;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tdisplay: block !important;\\n\\n\\t\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t\\t.v-popper__inner {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t.v-popper__arrow-container {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tz-index: 1;\\n\\t\\t\\twidth: 0;\\n\\t\\t\\theight: 0;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tborder-width: $arrow-width;\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='top'] .v-popper__arrow-container {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tborder-bottom-width: 0;\\n\\t\\t\\tborder-top-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tborder-top-width: 0;\\n\\t\\t\\tborder-bottom-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='right'] .v-popper__arrow-container {\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tborder-left-width: 0;\\n\\t\\t\\tborder-right-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[data-popper-placement^='left'] .v-popper__arrow-container {\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tborder-right-width: 0;\\n\\t\\t\\tborder-left-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t&[aria-hidden='true'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\t\\topacity: 0;\\n\\t\\t}\\n\\n\\t\\t&[aria-hidden='false'] {\\n\\t\\t\\tvisibility: visible;\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]);const r=s},3645:e=>{\"use strict\";e.exports=function(e){var a=[];return a.toString=function(){return this.map((function(a){var t=\"\",o=void 0!==a[5];return a[4]&&(t+=\"@supports (\".concat(a[4],\") {\")),a[2]&&(t+=\"@media \".concat(a[2],\" {\")),o&&(t+=\"@layer\".concat(a[5].length>0?\" \".concat(a[5]):\"\",\" {\")),t+=e(a),o&&(t+=\"}\"),a[2]&&(t+=\"}\"),a[4]&&(t+=\"}\"),t})).join(\"\")},a.i=function(e,t,o,i,n){\"string\"==typeof e&&(e=[[null,e,void 0]]);var s={};if(o)for(var r=0;r<this.length;r++){var l=this[r][0];null!=l&&(s[l]=!0)}for(var c=0;c<e.length;c++){var m=[].concat(e[c]);o&&s[m[0]]||(void 0!==n&&(void 0===m[5]||(m[1]=\"@layer\".concat(m[5].length>0?\" \".concat(m[5]):\"\",\" {\").concat(m[1],\"}\")),m[5]=n),t&&(m[2]?(m[1]=\"@media \".concat(m[2],\" {\").concat(m[1],\"}\"),m[2]=t):m[2]=t),i&&(m[4]?(m[1]=\"@supports (\".concat(m[4],\") {\").concat(m[1],\"}\"),m[4]=i):m[4]=\"\".concat(i)),a.push(m))}},a}},7537:e=>{\"use strict\";e.exports=function(e){var a=e[1],t=e[3];if(!t)return a;if(\"function\"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),i=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(o),n=\"/*# \".concat(i,\" */\");return[a].concat([n]).join(\"\\n\")}return[a].join(\"\\n\")}},3379:e=>{\"use strict\";var a=[];function t(e){for(var t=-1,o=0;o<a.length;o++)if(a[o].identifier===e){t=o;break}return t}function o(e,o){for(var n={},s=[],r=0;r<e.length;r++){var l=e[r],c=o.base?l[0]+o.base:l[0],m=n[c]||0,d=\"\".concat(c,\" \").concat(m);n[c]=m+1;var u=t(d),p={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==u)a[u].references++,a[u].updater(p);else{var h=i(p,o);o.byIndex=r,a.splice(r,0,{identifier:d,updater:h,references:1})}s.push(d)}return s}function i(e,a){var t=a.domAPI(a);t.update(e);return function(a){if(a){if(a.css===e.css&&a.media===e.media&&a.sourceMap===e.sourceMap&&a.supports===e.supports&&a.layer===e.layer)return;t.update(e=a)}else t.remove()}}e.exports=function(e,i){var n=o(e=e||[],i=i||{});return function(e){e=e||[];for(var s=0;s<n.length;s++){var r=t(n[s]);a[r].references--}for(var l=o(e,i),c=0;c<n.length;c++){var m=t(n[c]);0===a[m].references&&(a[m].updater(),a.splice(m,1))}n=l}}},569:e=>{\"use strict\";var a={};e.exports=function(e,t){var o=function(e){if(void 0===a[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}a[e]=t}return a[e]}(e);if(!o)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");o.appendChild(t)}},9216:e=>{\"use strict\";e.exports=function(e){var a=document.createElement(\"style\");return e.setAttributes(a,e.attributes),e.insert(a,e.options),a}},3565:(e,a,t)=>{\"use strict\";e.exports=function(e){var a=t.nc;a&&e.setAttribute(\"nonce\",a)}},7795:e=>{\"use strict\";e.exports=function(e){if(\"undefined\"==typeof document)return{update:function(){},remove:function(){}};var a=e.insertStyleElement(e);return{update:function(t){!function(e,a,t){var o=\"\";t.supports&&(o+=\"@supports (\".concat(t.supports,\") {\")),t.media&&(o+=\"@media \".concat(t.media,\" {\"));var i=void 0!==t.layer;i&&(o+=\"@layer\".concat(t.layer.length>0?\" \".concat(t.layer):\"\",\" {\")),o+=t.css,i&&(o+=\"}\"),t.media&&(o+=\"}\"),t.supports&&(o+=\"}\");var n=t.sourceMap;n&&\"undefined\"!=typeof btoa&&(o+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(n)))),\" */\")),a.styleTagTransform(o,e,a.options)}(a,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(a)}}}},4589:e=>{\"use strict\";e.exports=function(e,a){if(a.styleSheet)a.styleSheet.cssText=e;else{for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(document.createTextNode(e))}}},2102:()=>{},1554:()=>{},2405:()=>{},1900:(e,a,t)=>{\"use strict\";function o(e,a,t,o,i,n,s,r){var l,c=\"function\"==typeof e?e.options:e;if(a&&(c.render=a,c.staticRenderFns=t,c._compiled=!0),o&&(c.functional=!0),n&&(c._scopeId=\"data-v-\"+n),s?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},c._ssrRegister=l):i&&(l=r?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var m=c.render;c.render=function(e,a){return l.call(a),m(e,a)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:c}}t.d(a,{Z:()=>o})},9454:e=>{\"use strict\";e.exports=require(\"floating-vue\")},4505:e=>{\"use strict\";e.exports=require(\"focus-trap\")}},a={};function t(o){var i=a[o];if(void 0!==i)return i.exports;var n=a[o]={id:o,exports:{}};return e[o](n,n.exports,t),n.exports}t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a}),a},t.d=(e,a)=>{for(var o in a)t.o(a,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:a[o]})},t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},t.nc=void 0;var o={};return(()=>{\"use strict\";t.r(o),t.d(o,{default:()=>R});var e=t(3089),a=t(2297);var i=(0,require(\"@nextcloud/l10n/gettext\").getGettextBuilder)().detectLocale();[{locale:\"af\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"ar\",translations:{\"{tag} (invisible)\":\"{tag} (غير مرئي)\",\"{tag} (restricted)\":\"{tag} (مقيد)\",\"a few seconds ago\":\"منذ عدة ثوانٍ مضت\",Actions:\"الإجراءات\",'Actions for item with name \"{name}\"':'إجراءات على العنصر المُسمَّى \"{name}\"',Activities:\"الحركات\",\"Animals & Nature\":\"الحيوانات والطبيعة\",\"Any link\":\"أيَّ رابطٍ\",\"Anything shared with the same group of people will show up here\":\"أي مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا\",\"Avatar of {displayName}\":\"الرمز التجسيدي avatar ـ {displayName} \",\"Avatar of {displayName}, {status}\":\"الرمز التجسيدي لـ {displayName}، {status}\",Back:\"عودة\",\"Back to provider selection\":\"عودة إلى اختيار المُزوِّد\",\"Cancel changes\":\"إلغاء التغييرات\",\"Change name\":\"تغيير الاسم\",Choose:\"إختَر\",\"Clear search\":\"محو البحث\",\"Clear text\":\"محو النص\",Close:\"أغلِق\",\"Close modal\":\"أغلِق النافذة الصُّورِية\",\"Close navigation\":\"أغلِق المُتصفِّح\",\"Close sidebar\":\"قفل الشريط الجانبي\",\"Close Smart Picker\":\"أغلِق اللاقط الذكي Smart Picker\",\"Collapse menu\":\"طَيّ القائمة\",\"Confirm changes\":\"تأكيد التغييرات\",Custom:\"مُخصَّص\",\"Edit item\":\"تعديل عنصر\",\"Enter link\":\"أدخِل الرابط\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة.\",\"External documentation for {name}\":\"التوثيق الخارجي لـ {name}\",Favorite:\"المُفضَّلة\",Flags:\"الأعلام\",\"Food & Drink\":\"الطعام والشراب\",\"Frequently used\":\"شائعة الاستعمال\",Global:\"شامل\",\"Go back to the list\":\"عودة إلى القائمة\",\"Hide password\":\"إخفاء كلمة المرور\",'Load more \"{options}\"\"':'حمّل \"{options}\"\" أكثر',\"Message limit of {count} characters reached\":\"تمّ الوصول إلى الحد الأقصى لعدد الأحرف في الرسالة: {count} حرف\",\"More items …\":\"عناصر أخرى ...\",\"More options\":\"خيارات أخرى ...\",Next:\"التالي\",\"No emoji found\":\"لم يتم العثور على أي إيموجي emoji\",\"No link provider found\":\"لا يوجد أيّ مزود روابط link provider\",\"No results\":\"ليس هناك أية نتيجة\",Objects:\"أشياء\",\"Open contact menu\":\"إفتَح قائمة جهات الاتصال\",'Open link to \"{resourceName}\"':'إفتَح الرابط إلى \"{resourceName}\"',\"Open menu\":\"إفتَح القائمة\",\"Open navigation\":\"إفتَح المتصفح\",\"Open settings menu\":\"إفتَح قائمة الإعدادات\",\"Password is secure\":\"كلمة المرور مُؤمّنة\",\"Pause slideshow\":\"تجميد عرض الشرائح\",\"People & Body\":\"ناس و أجسام\",\"Pick a date\":\"إختَر التاريخ\",\"Pick a date and a time\":\"إختَر التاريخ و الوقت\",\"Pick a month\":\"إختَر الشهر\",\"Pick a time\":\"إختَر الوقت\",\"Pick a week\":\"إختَر الأسبوع\",\"Pick a year\":\"إختَر السنة\",\"Pick an emoji\":\"إختَر رمز إيموجي emoji\",\"Please select a time zone:\":\"الرجاء تحديد المنطقة الزمنية:\",Previous:\"السابق\",\"Provider icon\":\"أيقونة المُزوِّد\",\"Raw link {options}\":\" الرابط الخام raw link ـ {options}\",\"Related resources\":\"مصادر ذات صلة\",Search:\"بحث\",\"Search emoji\":\"بحث عن إيموجي emoji\",\"Search results\":\"نتائج البحث\",\"sec. ago\":\"ثانية مضت\",\"seconds ago\":\"ثوان مضت\",\"Select a tag\":\"إختَر سِمَةً tag\",\"Select provider\":\"إختَر مٌزوِّداً\",Settings:\"الإعدادات\",\"Settings navigation\":\"إعدادات التّصفُّح\",\"Show password\":\"أظهِر كلمة المرور\",\"Smart Picker\":\"اللاقط الذكي smart picker\",\"Smileys & Emotion\":\"وجوهٌ ضاحكة و مشاعر\",\"Start slideshow\":\"إبدإ العرض\",\"Start typing to search\":\"إبدإ كتابة مفردات البحث\",Submit:\"إرسال\",Symbols:\"رموز\",\"Travel & Places\":\"سفر و أماكن\",\"Type to search time zone\":\"أكتُب للبحث عن منطقة زمنية\",\"Unable to search the group\":\"تعذّر البحث في المجموعة\",\"Undo changes\":\"تراجع عن التغييرات\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'أكتُب رسالةً؛ إستعمِل \"@\" للإشارة إلى شخص ما، و استخدم \":\" للإكمال التلقائي لرموز الإيموجي ...'}},{locale:\"ast\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"az\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"be\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"bg\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"bn_BD\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"br\",translations:{\"{tag} (invisible)\":\"{tag} (diwelus)\",\"{tag} (restricted)\":\"{tag} (bevennet)\",\"a few seconds ago\":\"\",Actions:\"Oberioù\",'Actions for item with name \"{name}\"':\"\",Activities:\"Oberiantizoù\",\"Animals & Nature\":\"Loened & Natur\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"Dibab\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Serriñ\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"Personelañ\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Bannieloù\",\"Food & Drink\":\"Boued & Evajoù\",\"Frequently used\":\"Implijet alies\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"Da heul\",\"No emoji found\":\"Emoji ebet kavet\",\"No link provider found\":\"\",\"No results\":\"Disoc'h ebet\",Objects:\"Traoù\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Arsav an diaporama\",\"People & Body\":\"Tud & Korf\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Choaz un emoji\",\"Please select a time zone:\":\"\",Previous:\"A-raok\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Klask\",\"Search emoji\":\"\",\"Search results\":\"Disoc'hoù an enklask\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Choaz ur c'hlav\",\"Select provider\":\"\",Settings:\"Arventennoù\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smileyioù & Fromoù\",\"Start slideshow\":\"Kregiñ an diaporama\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"Arouezioù\",\"Travel & Places\":\"Beaj & Lec'hioù\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"Dibosupl eo klask ar strollad\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"bs\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"ca\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restringit)\",\"a few seconds ago\":\"\",Actions:\"Accions\",'Actions for item with name \"{name}\"':\"\",Activities:\"Activitats\",\"Animals & Nature\":\"Animals i natura\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Cancel·la els canvis\",\"Change name\":\"\",Choose:\"Tria\",\"Clear search\":\"\",\"Clear text\":\"Netejar text\",Close:\"Tanca\",\"Close modal\":\"Tancar el mode\",\"Close navigation\":\"Tanca la navegació\",\"Close sidebar\":\"Tancar la barra lateral\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Confirmeu els canvis\",Custom:\"Personalitzat\",\"Edit item\":\"Edita l'element\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Preferit\",Flags:\"Marques\",\"Food & Drink\":\"Menjar i begudes\",\"Frequently used\":\"Utilitzats recentment\",Global:\"Global\",\"Go back to the list\":\"Torna a la llista\",\"Hide password\":\"Amagar contrasenya\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"S'ha arribat al límit de {count} caràcters per missatge\",\"More items …\":\"Més artícles...\",\"More options\":\"\",Next:\"Següent\",\"No emoji found\":\"No s'ha trobat cap emoji\",\"No link provider found\":\"\",\"No results\":\"Sense resultats\",Objects:\"Objectes\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Obre la navegació\",\"Open settings menu\":\"\",\"Password is secure\":\"Contrasenya segura<br>\",\"Pause slideshow\":\"Atura la presentació\",\"People & Body\":\"Persones i cos\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Trieu un emoji\",\"Please select a time zone:\":\"Seleccioneu una zona horària:\",Previous:\"Anterior\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Recursos relacionats\",Search:\"Cerca\",\"Search emoji\":\"\",\"Search results\":\"Resultats de cerca\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Seleccioneu una etiqueta\",\"Select provider\":\"\",Settings:\"Paràmetres\",\"Settings navigation\":\"Navegació d'opcions\",\"Show password\":\"Mostrar contrasenya\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Cares i emocions\",\"Start slideshow\":\"Inicia la presentació\",\"Start typing to search\":\"\",Submit:\"Envia\",Symbols:\"Símbols\",\"Travel & Places\":\"Viatges i llocs\",\"Type to search time zone\":\"Escriviu per cercar la zona horària\",\"Unable to search the group\":\"No es pot cercar el grup\",\"Undo changes\":\"Desfés els canvis\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Escriu missatge, fes servir \"@\" per esmentar algú, fes servir \":\" per autocompletar emojis...'}},{locale:\"cs\",translations:{\"{tag} (invisible)\":\"{tag} (neviditelné)\",\"{tag} (restricted)\":\"{tag} (omezené)\",\"a few seconds ago\":\"před několika sekundami\",Actions:\"Akce\",'Actions for item with name \"{name}\"':\"Akce pro položku s názvem „{name}“\",Activities:\"Aktivity\",\"Animals & Nature\":\"Zvířata a příroda\",\"Any link\":\"Jakýkoli odkaz\",\"Anything shared with the same group of people will show up here\":\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\",\"Avatar of {displayName}\":\"Zástupný obrázek uživatele {displayName}\",\"Avatar of {displayName}, {status}\":\"Zástupný obrázek uživatele {displayName}, {status}\",Back:\"Zpět\",\"Back to provider selection\":\"Zpět na výběr poskytovatele\",\"Cancel changes\":\"Zrušit změny\",\"Change name\":\"Změnit název\",Choose:\"Zvolit\",\"Clear search\":\"Vyčistit vyhledávání\",\"Clear text\":\"Čitelný text\",Close:\"Zavřít\",\"Close modal\":\"Zavřít dialogové okno\",\"Close navigation\":\"Zavřít navigaci\",\"Close sidebar\":\"Zavřít postranní panel\",\"Close Smart Picker\":\"Zavřít inteligentní výběr\",\"Collapse menu\":\"Sbalit nabídku\",\"Confirm changes\":\"Potvrdit změny\",Custom:\"Uživatelsky určené\",\"Edit item\":\"Upravit položku\",\"Enter link\":\"Zadat odkaz\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\",\"External documentation for {name}\":\"Externí dokumentace pro {name}\",Favorite:\"Oblíbené\",Flags:\"Příznaky\",\"Food & Drink\":\"Jídlo a pití\",\"Frequently used\":\"Často používané\",Global:\"Globální\",\"Go back to the list\":\"Jít zpět na seznam\",\"Hide password\":\"Skrýt heslo\",'Load more \"{options}\"\"':\"Načíst více „{options}“\",\"Message limit of {count} characters reached\":\"Dosaženo limitu počtu ({count}) znaků zprávy\",\"More items …\":\"Další položky…\",\"More options\":\"Další volby\",Next:\"Následující\",\"No emoji found\":\"Nenalezeno žádné emoji\",\"No link provider found\":\"Nenalezen žádný poskytovatel odkazů\",\"No results\":\"Nic nenalezeno\",Objects:\"Objekty\",\"Open contact menu\":\"Otevřít nabídku kontaktů\",'Open link to \"{resourceName}\"':\"Otevřít odkaz na „{resourceName}“\",\"Open menu\":\"Otevřít nabídku\",\"Open navigation\":\"Otevřít navigaci\",\"Open settings menu\":\"Otevřít nabídku nastavení\",\"Password is secure\":\"Heslo je bezpečné\",\"Pause slideshow\":\"Pozastavit prezentaci\",\"People & Body\":\"Lidé a tělo\",\"Pick a date\":\"Vybrat datum\",\"Pick a date and a time\":\"Vybrat datum a čas\",\"Pick a month\":\"Vybrat měsíc\",\"Pick a time\":\"Vybrat čas\",\"Pick a week\":\"Vybrat týden\",\"Pick a year\":\"Vybrat rok\",\"Pick an emoji\":\"Vybrat emoji\",\"Please select a time zone:\":\"Vyberte časovou zónu:\",Previous:\"Předchozí\",\"Provider icon\":\"Ikona poskytovatele\",\"Raw link {options}\":\"Holý odkaz {options}\",\"Related resources\":\"Související prostředky\",Search:\"Hledat\",\"Search emoji\":\"Hledat emoji\",\"Search results\":\"Výsledky hledání\",\"sec. ago\":\"sek. před\",\"seconds ago\":\"sekund předtím\",\"Select a tag\":\"Vybrat štítek\",\"Select provider\":\"Vybrat poskytovatele\",Settings:\"Nastavení\",\"Settings navigation\":\"Pohyb po nastavení\",\"Show password\":\"Zobrazit heslo\",\"Smart Picker\":\"Inteligentní výběr\",\"Smileys & Emotion\":\"Úsměvy a emoce\",\"Start slideshow\":\"Spustit prezentaci\",\"Start typing to search\":\"Vyhledávejte psaním\",Submit:\"Odeslat\",Symbols:\"Symboly\",\"Travel & Places\":\"Cestování a místa\",\"Type to search time zone\":\"Psaním vyhledejte časovou zónu\",\"Unable to search the group\":\"Nedaří se hledat skupinu\",\"Undo changes\":\"Vzít změny zpět\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"Napište zprávu – pokud chcete někoho zmínit, napište před jeho uživatelským jménem „@“ (zavináč); automatické doplňování emotikonů zahájíte napsáním „:“ (dvojtečky)…\"}},{locale:\"cy_GB\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"da\",translations:{\"{tag} (invisible)\":\"{tag} (usynlig)\",\"{tag} (restricted)\":\"{tag} (begrænset)\",\"a few seconds ago\":\"et par sekunder siden\",Actions:\"Handlinger\",'Actions for item with name \"{name}\"':'Handlinger for element med navnet \"{name}\"',Activities:\"Aktiviteter\",\"Animals & Nature\":\"Dyr & Natur\",\"Any link\":\"Ethvert link\",\"Anything shared with the same group of people will show up here\":\"Alt der deles med samme gruppe af personer vil vises her\",\"Avatar of {displayName}\":\"Avatar af {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar af {displayName}, {status}\",Back:\"Tilbage\",\"Back to provider selection\":\"Tilbage til udbydervalg\",\"Cancel changes\":\"Annuller ændringer\",\"Change name\":\"Ændre navn\",Choose:\"Vælg\",\"Clear search\":\"Ryd søgning\",\"Clear text\":\"Ryd tekst\",Close:\"Luk\",\"Close modal\":\"Luk vindue\",\"Close navigation\":\"Luk navigation\",\"Close sidebar\":\"Luk sidepanel\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Bekræft ændringer\",Custom:\"Brugerdefineret\",\"Edit item\":\"Rediger emne\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Favorit\",Flags:\"Flag\",\"Food & Drink\":\"Mad & Drikke\",\"Frequently used\":\"Ofte brugt\",Global:\"Global\",\"Go back to the list\":\"Tilbage til listen\",\"Hide password\":\"Skjul kodeord\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Begrænsning på {count} tegn er nået\",\"More items …\":\"Mere ...\",\"More options\":\"\",Next:\"Videre\",\"No emoji found\":\"Ingen emoji fundet\",\"No link provider found\":\"\",\"No results\":\"Ingen resultater\",Objects:\"Objekter\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Åbn navigation\",\"Open settings menu\":\"\",\"Password is secure\":\"Kodeordet er sikkert\",\"Pause slideshow\":\"Suspender fremvisning\",\"People & Body\":\"Mennesker & Menneskekroppen\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Vælg en emoji\",\"Please select a time zone:\":\"Vælg venligst en tidszone:\",Previous:\"Forrige\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Relaterede emner\",Search:\"Søg\",\"Search emoji\":\"\",\"Search results\":\"Søgeresultater\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Vælg et mærke\",\"Select provider\":\"\",Settings:\"Indstillinger\",\"Settings navigation\":\"Naviger i indstillinger\",\"Show password\":\"Vis kodeord\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smileys & Emotion\",\"Start slideshow\":\"Start fremvisning\",\"Start typing to search\":\"\",Submit:\"Send\",Symbols:\"Symboler\",\"Travel & Places\":\"Rejser & Rejsemål\",\"Type to search time zone\":\"Indtast for at søge efter tidszone\",\"Unable to search the group\":\"Kan ikke søge på denne gruppe\",\"Undo changes\":\"Fortryd ændringer\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Skriv besked, brug \"@\" for at nævne nogen, brug \":\" til emoji-autofuldførelse ...'}},{locale:\"de\",translations:{\"{tag} (invisible)\":\"{tag} (unsichtbar)\",\"{tag} (restricted)\":\"{tag} (eingeschränkt)\",\"a few seconds ago\":\"\",Actions:\"Aktionen\",'Actions for item with name \"{name}\"':\"\",Activities:\"Aktivitäten\",\"Animals & Nature\":\"Tiere & Natur\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\",\"Avatar of {displayName}\":\"Avatar von {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar von {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Änderungen verwerfen\",\"Change name\":\"\",Choose:\"Auswählen\",\"Clear search\":\"\",\"Clear text\":\"Klartext\",Close:\"Schließen\",\"Close modal\":\"Modal schließen\",\"Close navigation\":\"Navigation schließen\",\"Close sidebar\":\"Seitenleiste schließen\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Änderungen bestätigen\",Custom:\"Benutzerdefiniert\",\"Edit item\":\"Objekt bearbeiten\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Favorit\",Flags:\"Flaggen\",\"Food & Drink\":\"Essen & Trinken\",\"Frequently used\":\"Häufig verwendet\",Global:\"Global\",\"Go back to the list\":\"Zurück zur Liste\",\"Hide password\":\"Passwort verbergen\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Nachrichtenlimit von {count} Zeichen erreicht\",\"More items …\":\"Weitere Elemente …\",\"More options\":\"\",Next:\"Weiter\",\"No emoji found\":\"Kein Emoji gefunden\",\"No link provider found\":\"\",\"No results\":\"Keine Ergebnisse\",Objects:\"Gegenstände\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Navigation öffnen\",\"Open settings menu\":\"\",\"Password is secure\":\"Passwort ist sicher\",\"Pause slideshow\":\"Diashow pausieren\",\"People & Body\":\"Menschen & Körper\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Ein Emoji auswählen\",\"Please select a time zone:\":\"Bitte wählen Sie eine Zeitzone:\",Previous:\"Vorherige\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Verwandte Ressourcen\",Search:\"Suche\",\"Search emoji\":\"\",\"Search results\":\"Suchergebnisse\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Schlagwort auswählen\",\"Select provider\":\"\",Settings:\"Einstellungen\",\"Settings navigation\":\"Einstellungen für die Navigation\",\"Show password\":\"Passwort anzeigen\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smileys & Emotionen\",\"Start slideshow\":\"Diashow starten\",\"Start typing to search\":\"\",Submit:\"Einreichen\",Symbols:\"Symbole\",\"Travel & Places\":\"Reisen & Orte\",\"Type to search time zone\":\"Tippen, um Zeitzone zu suchen\",\"Unable to search the group\":\"Die Gruppe konnte nicht durchsucht werden\",\"Undo changes\":\"Änderungen rückgängig machen\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Nachricht schreiben, \"@\" um jemanden zu erwähnen, \":\" für die automatische Vervollständigung von Emojis …'}},{locale:\"de_DE\",translations:{\"{tag} (invisible)\":\"{tag} (unsichtbar)\",\"{tag} (restricted)\":\"{tag} (eingeschränkt)\",\"a few seconds ago\":\"vor ein paar Sekunden\",Actions:\"Aktionen\",'Actions for item with name \"{name}\"':'Aktionen für Element mit dem Namen \"{name}“',Activities:\"Aktivitäten\",\"Animals & Nature\":\"Tiere & Natur\",\"Any link\":\"Irgendein Link\",\"Anything shared with the same group of people will show up here\":\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\",\"Avatar of {displayName}\":\"Avatar von {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar von {displayName}, {status}\",Back:\"Zurück\",\"Back to provider selection\":\"Zurück zur Anbieterauswahl\",\"Cancel changes\":\"Änderungen verwerfen\",\"Change name\":\"Namen ändern\",Choose:\"Auswählen\",\"Clear search\":\"Suche leeren\",\"Clear text\":\"Klartext\",Close:\"Schließen\",\"Close modal\":\"Modal schließen\",\"Close navigation\":\"Navigation schließen\",\"Close sidebar\":\"Seitenleiste schließen\",\"Close Smart Picker\":\"Intelligente Auswahl schließen\",\"Collapse menu\":\"Menü einklappen\",\"Confirm changes\":\"Änderungen bestätigen\",Custom:\"Benutzerdefiniert\",\"Edit item\":\"Objekt bearbeiten\",\"Enter link\":\"Link eingeben\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihren Systemadministrator.\",\"External documentation for {name}\":\"Externe Dokumentation für {name}\",Favorite:\"Favorit\",Flags:\"Flaggen\",\"Food & Drink\":\"Essen & Trinken\",\"Frequently used\":\"Häufig verwendet\",Global:\"Global\",\"Go back to the list\":\"Zurück zur Liste\",\"Hide password\":\"Passwort verbergen\",'Load more \"{options}\"\"':'Weitere \"{options}“ laden',\"Message limit of {count} characters reached\":\"Nachrichtenlimit von {count} Zeichen erreicht\",\"More items …\":\"Weitere Elemente …\",\"More options\":\"Mehr Optionen\",Next:\"Weiter\",\"No emoji found\":\"Kein Emoji gefunden\",\"No link provider found\":\"Kein Linkanbieter gefunden\",\"No results\":\"Keine Ergebnisse\",Objects:\"Objekte\",\"Open contact menu\":\"Kontaktmenü öffnen\",'Open link to \"{resourceName}\"':'Link zu \"{resourceName}“ öffnen',\"Open menu\":\"Menü öffnen\",\"Open navigation\":\"Navigation öffnen\",\"Open settings menu\":\"Einstellungsmenü öffnen\",\"Password is secure\":\"Passwort ist sicher\",\"Pause slideshow\":\"Diashow pausieren\",\"People & Body\":\"Menschen & Körper\",\"Pick a date\":\"Ein Datum auswählen\",\"Pick a date and a time\":\"Datum und Uhrzeit auswählen\",\"Pick a month\":\"Einen Monat auswählen\",\"Pick a time\":\"Eine Uhrzeit auswählen\",\"Pick a week\":\"Eine Woche auswählen\",\"Pick a year\":\"Ein Jahr auswählen\",\"Pick an emoji\":\"Ein Emoji auswählen\",\"Please select a time zone:\":\"Bitte eine Zeitzone auswählen:\",Previous:\"Vorherige\",\"Provider icon\":\"Anbietersymbol\",\"Raw link {options}\":\"Unverarbeiteter Link {Optionen}\",\"Related resources\":\"Verwandte Ressourcen\",Search:\"Suche\",\"Search emoji\":\"Emoji suchen\",\"Search results\":\"Suchergebnisse\",\"sec. ago\":\"Sek. zuvor\",\"seconds ago\":\"Sekunden zuvor\",\"Select a tag\":\"Schlagwort auswählen\",\"Select provider\":\"Anbieter auswählen\",Settings:\"Einstellungen\",\"Settings navigation\":\"Einstellungen für die Navigation\",\"Show password\":\"Passwort anzeigen\",\"Smart Picker\":\"Intelligente Auswahl\",\"Smileys & Emotion\":\"Smileys & Emotionen\",\"Start slideshow\":\"Diashow starten\",\"Start typing to search\":\"Mit der Eingabe beginnen, um zu suchen\",Submit:\"Einreichen\",Symbols:\"Symbole\",\"Travel & Places\":\"Reisen & Orte\",\"Type to search time zone\":\"Tippen, um eine Zeitzone zu suchen\",\"Unable to search the group\":\"Die Gruppe kann nicht durchsucht werden\",\"Undo changes\":\"Änderungen rückgängig machen\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Nachricht schreiben, \"@\" um jemanden zu erwähnen, \":\" für die automatische Vervollständigung von Emojis …'}},{locale:\"el\",translations:{\"{tag} (invisible)\":\"{tag} (αόρατο)\",\"{tag} (restricted)\":\"{tag} (περιορισμένο)\",\"a few seconds ago\":\"\",Actions:\"Ενέργειες\",'Actions for item with name \"{name}\"':\"\",Activities:\"Δραστηριότητες\",\"Animals & Nature\":\"Ζώα & Φύση\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ\",\"Avatar of {displayName}\":\"Άβαταρ του {displayName}\",\"Avatar of {displayName}, {status}\":\"Άβαταρ του {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Ακύρωση αλλαγών\",\"Change name\":\"\",Choose:\"Επιλογή\",\"Clear search\":\"\",\"Clear text\":\"Εκκαθάριση κειμένου\",Close:\"Κλείσιμο\",\"Close modal\":\"Βοηθητικό κλείσιμο\",\"Close navigation\":\"Κλείσιμο πλοήγησης\",\"Close sidebar\":\"Κλείσιμο πλευρικής μπάρας\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Επιβεβαίωση αλλαγών\",Custom:\"Προσαρμογή\",\"Edit item\":\"Επεξεργασία\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Αγαπημένα\",Flags:\"Σημαίες\",\"Food & Drink\":\"Φαγητό & Ποτό\",\"Frequently used\":\"Συχνά χρησιμοποιούμενο\",Global:\"Καθολικό\",\"Go back to the list\":\"Επιστροφή στην αρχική λίστα \",\"Hide password\":\"Απόκρυψη κωδικού πρόσβασης\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Συμπληρώθηκε το όριο των {count} χαρακτήρων του μηνύματος\",\"More items …\":\"Περισσότερα στοιχεία …\",\"More options\":\"\",Next:\"Επόμενο\",\"No emoji found\":\"Δεν βρέθηκε emoji\",\"No link provider found\":\"\",\"No results\":\"Κανένα αποτέλεσμα\",Objects:\"Αντικείμενα\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Άνοιγμα πλοήγησης\",\"Open settings menu\":\"\",\"Password is secure\":\"Ο κωδικός πρόσβασης είναι ασφαλής\",\"Pause slideshow\":\"Παύση προβολής διαφανειών\",\"People & Body\":\"Άνθρωποι & Σώμα\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Επιλέξτε ένα emoji\",\"Please select a time zone:\":\"Παρακαλούμε επιλέξτε μια ζώνη ώρας:\",Previous:\"Προηγούμενο\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Σχετικοί πόροι\",Search:\"Αναζήτηση\",\"Search emoji\":\"\",\"Search results\":\"Αποτελέσματα αναζήτησης\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Επιλογή ετικέτας\",\"Select provider\":\"\",Settings:\"Ρυθμίσεις\",\"Settings navigation\":\"Πλοήγηση ρυθμίσεων\",\"Show password\":\"Εμφάνιση κωδικού πρόσβασης\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Φατσούλες & Συναίσθημα\",\"Start slideshow\":\"Έναρξη προβολής διαφανειών\",\"Start typing to search\":\"\",Submit:\"Υποβολή\",Symbols:\"Σύμβολα\",\"Travel & Places\":\"Ταξίδια & Τοποθεσίες\",\"Type to search time zone\":\"Πληκτρολογήστε για αναζήτηση ζώνης ώρας\",\"Unable to search the group\":\"Δεν είναι δυνατή η αναζήτηση της ομάδας\",\"Undo changes\":\"Αναίρεση Αλλαγών\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Γράψτε μήνυμα, χρησιμοποιείστε \"@\" για να αναφέρετε κάποιον, χρησιμοποιείστε \":\" για αυτόματη συμπλήρωση emoji …'}},{locale:\"en_GB\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restricted)\",\"a few seconds ago\":\"a few seconds ago\",Actions:\"Actions\",'Actions for item with name \"{name}\"':'Actions for item with name \"{name}\"',Activities:\"Activities\",\"Animals & Nature\":\"Animals & Nature\",\"Any link\":\"Any link\",\"Anything shared with the same group of people will show up here\":\"Anything shared with the same group of people will show up here\",\"Avatar of {displayName}\":\"Avatar of {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar of {displayName}, {status}\",Back:\"Back\",\"Back to provider selection\":\"Back to provider selection\",\"Cancel changes\":\"Cancel changes\",\"Change name\":\"Change name\",Choose:\"Choose\",\"Clear search\":\"Clear search\",\"Clear text\":\"Clear text\",Close:\"Close\",\"Close modal\":\"Close modal\",\"Close navigation\":\"Close navigation\",\"Close sidebar\":\"Close sidebar\",\"Close Smart Picker\":\"Close Smart Picker\",\"Collapse menu\":\"Collapse menu\",\"Confirm changes\":\"Confirm changes\",Custom:\"Custom\",\"Edit item\":\"Edit item\",\"Enter link\":\"Enter link\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"Error getting related resources. Please contact your system administrator if you have any questions.\",\"External documentation for {name}\":\"External documentation for {name}\",Favorite:\"Favourite\",Flags:\"Flags\",\"Food & Drink\":\"Food & Drink\",\"Frequently used\":\"Frequently used\",Global:\"Global\",\"Go back to the list\":\"Go back to the list\",\"Hide password\":\"Hide password\",'Load more \"{options}\"\"':'Load more \"{options}\"\"',\"Message limit of {count} characters reached\":\"Message limit of {count} characters reached\",\"More items …\":\"More items …\",\"More options\":\"More options\",Next:\"Next\",\"No emoji found\":\"No emoji found\",\"No link provider found\":\"No link provider found\",\"No results\":\"No results\",Objects:\"Objects\",\"Open contact menu\":\"Open contact menu\",'Open link to \"{resourceName}\"':'Open link to \"{resourceName}\"',\"Open menu\":\"Open menu\",\"Open navigation\":\"Open navigation\",\"Open settings menu\":\"Open settings menu\",\"Password is secure\":\"Password is secure\",\"Pause slideshow\":\"Pause slideshow\",\"People & Body\":\"People & Body\",\"Pick a date\":\"Pick a date\",\"Pick a date and a time\":\"Pick a date and a time\",\"Pick a month\":\"Pick a month\",\"Pick a time\":\"Pick a time\",\"Pick a week\":\"Pick a week\",\"Pick a year\":\"Pick a year\",\"Pick an emoji\":\"Pick an emoji\",\"Please select a time zone:\":\"Please select a time zone:\",Previous:\"Previous\",\"Provider icon\":\"Provider icon\",\"Raw link {options}\":\"Raw link {options}\",\"Related resources\":\"Related resources\",Search:\"Search\",\"Search emoji\":\"Search emoji\",\"Search results\":\"Search results\",\"sec. ago\":\"sec. ago\",\"seconds ago\":\"seconds ago\",\"Select a tag\":\"Select a tag\",\"Select provider\":\"Select provider\",Settings:\"Settings\",\"Settings navigation\":\"Settings navigation\",\"Show password\":\"Show password\",\"Smart Picker\":\"Smart Picker\",\"Smileys & Emotion\":\"Smileys & Emotion\",\"Start slideshow\":\"Start slideshow\",\"Start typing to search\":\"Start typing to search\",Submit:\"Submit\",Symbols:\"Symbols\",\"Travel & Places\":\"Travel & Places\",\"Type to search time zone\":\"Type to search time zone\",\"Unable to search the group\":\"Unable to search the group\",\"Undo changes\":\"Undo changes\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …'}},{locale:\"eo\",translations:{\"{tag} (invisible)\":\"{tag} (kaŝita)\",\"{tag} (restricted)\":\"{tag} (limigita)\",\"a few seconds ago\":\"\",Actions:\"Agoj\",'Actions for item with name \"{name}\"':\"\",Activities:\"Aktiveco\",\"Animals & Nature\":\"Bestoj & Naturo\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"Elektu\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Fermu\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"Propra\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Flagoj\",\"Food & Drink\":\"Manĝaĵo & Trinkaĵo\",\"Frequently used\":\"Ofte uzataj\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"La limo je {count} da literoj atingita\",\"More items …\":\"\",\"More options\":\"\",Next:\"Sekva\",\"No emoji found\":\"La emoĝio forestas\",\"No link provider found\":\"\",\"No results\":\"La rezulto forestas\",Objects:\"Objektoj\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Payzi bildprezenton\",\"People & Body\":\"Homoj & Korpo\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Elekti emoĝion \",\"Please select a time zone:\":\"\",Previous:\"Antaŭa\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Serĉi\",\"Search emoji\":\"\",\"Search results\":\"Serĉrezultoj\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Elektu etikedon\",\"Select provider\":\"\",Settings:\"Agordo\",\"Settings navigation\":\"Agorda navigado\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Ridoj kaj Emocioj\",\"Start slideshow\":\"Komenci bildprezenton\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"Signoj\",\"Travel & Places\":\"Vojaĵoj & Lokoj\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"Ne eblas serĉi en la grupo\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restringido)\",\"a few seconds ago\":\"hace unos pocos segundos\",Actions:\"Acciones\",'Actions for item with name \"{name}\"':'Acciones para el elemento con nombre \"{name}\"',Activities:\"Actividades\",\"Animals & Nature\":\"Animales y naturaleza\",\"Any link\":\"Cualquier enlace\",\"Anything shared with the same group of people will show up here\":\"Cualquier cosa que sea compartida con el mismo grupo de personas se mostrará aquí\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",Back:\"Atrás\",\"Back to provider selection\":\"Volver a la selección de proveedor\",\"Cancel changes\":\"Cancelar cambios\",\"Change name\":\"Cambiar nombre\",Choose:\"Elegir\",\"Clear search\":\"Limpiar búsqueda\",\"Clear text\":\"Limpiar texto\",Close:\"Cerrar\",\"Close modal\":\"Cerrar modal\",\"Close navigation\":\"Cerrar navegación\",\"Close sidebar\":\"Cerrar barra lateral\",\"Close Smart Picker\":\"Cerrar selector inteligente\",\"Collapse menu\":\"Ocultar menú\",\"Confirm changes\":\"Confirmar cambios\",Custom:\"Personalizado\",\"Edit item\":\"Editar elemento\",\"Enter link\":\"Ingrese enlace\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\",\"External documentation for {name}\":\"Documentación externa para {name}\",Favorite:\"Favorito\",Flags:\"Banderas\",\"Food & Drink\":\"Comida y bebida\",\"Frequently used\":\"Usado con frecuenca\",Global:\"Global\",\"Go back to the list\":\"Volver a la lista\",\"Hide password\":\"Ocultar contraseña\",'Load more \"{options}\"\"':'Cargar más \"{options}\"',\"Message limit of {count} characters reached\":\"El mensaje ha alcanzado el límite de {count} caracteres\",\"More items …\":\"Más ítems...\",\"More options\":\"Más opciones\",Next:\"Siguiente\",\"No emoji found\":\"No hay ningún emoji\",\"No link provider found\":\"No se encontró ningún proveedor de enlaces\",\"No results\":\" Ningún resultado\",Objects:\"Objetos\",\"Open contact menu\":\"Abrir menú de contactos\",'Open link to \"{resourceName}\"':'Abrir enlace a \"{resourceName}\"',\"Open menu\":\"Abrir menú\",\"Open navigation\":\"Abrir navegación\",\"Open settings menu\":\"Abrir menú de ajustes\",\"Password is secure\":\"La contraseña es segura\",\"Pause slideshow\":\"Pausar la presentación \",\"People & Body\":\"Personas y cuerpos\",\"Pick a date\":\"Seleccione una fecha\",\"Pick a date and a time\":\"Seleccione una fecha y hora\",\"Pick a month\":\"Seleccione un mes\",\"Pick a time\":\"Seleccione una hora\",\"Pick a week\":\"Seleccione una semana\",\"Pick a year\":\"Seleccione un año\",\"Pick an emoji\":\"Elegir un emoji\",\"Please select a time zone:\":\"Por favor elige un huso de horario:\",Previous:\"Anterior\",\"Provider icon\":\"Ícono del proveedor\",\"Raw link {options}\":\"Enlace directo {options}\",\"Related resources\":\"Recursos relacionados\",Search:\"Buscar\",\"Search emoji\":\"Buscar emoji\",\"Search results\":\"Resultados de la búsqueda\",\"sec. ago\":\"hace segundos\",\"seconds ago\":\"segundos atrás\",\"Select a tag\":\"Seleccione una etiqueta\",\"Select provider\":\"Seleccione proveedor\",Settings:\"Ajustes\",\"Settings navigation\":\"Navegación por ajustes\",\"Show password\":\"Mostrar contraseña\",\"Smart Picker\":\"Selector inteligente\",\"Smileys & Emotion\":\"Smileys y emoticonos\",\"Start slideshow\":\"Iniciar la presentación\",\"Start typing to search\":\"Comience a escribir para buscar\",Submit:\"Enviar\",Symbols:\"Símbolos\",\"Travel & Places\":\"Viajes y lugares\",\"Type to search time zone\":\"Escribe para buscar un huso de horario\",\"Unable to search the group\":\"No es posible buscar en el grupo\",\"Undo changes\":\"Deshacer cambios\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Escribir mensaje, utilice \"@\" para mencionar a alguien, utilice \":\" para autocompletado de emojis ...'}},{locale:\"es_419\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_AR\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_CL\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_CO\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_CR\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_DO\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_EC\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restricted)\",\"a few seconds ago\":\"hace unos segundos\",Actions:\"Acciones\",'Actions for item with name \"{name}\"':'Acciones para el elemento con nombre \"{name}\"',Activities:\"Actividades\",\"Animals & Nature\":\"Animales y Naturaleza\",\"Any link\":\"Cualquier enlace\",\"Anything shared with the same group of people will show up here\":\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",Back:\"Atrás\",\"Back to provider selection\":\"Volver a la selección de proveedor\",\"Cancel changes\":\"Cancelar cambios\",\"Change name\":\"Cambiar nombre\",Choose:\"Elegir\",\"Clear search\":\"Limpiar búsqueda\",\"Clear text\":\"Limpiar texto\",Close:\"Cerrar\",\"Close modal\":\"Cerrar modal\",\"Close navigation\":\"Cerrar navegación\",\"Close sidebar\":\"Cerrar barra lateral\",\"Close Smart Picker\":\"Cerrar selector inteligente\",\"Collapse menu\":\"Ocultar menú\",\"Confirm changes\":\"Confirmar cambios\",Custom:\"Personalizado\",\"Edit item\":\"Editar elemento\",\"Enter link\":\"Ingresar enlace\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\",\"External documentation for {name}\":\"Documentación externa para {name}\",Favorite:\"Favorito\",Flags:\"Marcas\",\"Food & Drink\":\"Comida y Bebida\",\"Frequently used\":\"Frecuentemente utilizado\",Global:\"Global\",\"Go back to the list\":\"Volver a la lista\",\"Hide password\":\"Ocultar contraseña\",'Load more \"{options}\"\"':'Cargar más \"{options}\"',\"Message limit of {count} characters reached\":\"Se ha alcanzado el límite de caracteres del mensaje {count}\",\"More items …\":\"Más elementos...\",\"More options\":\"Más opciones\",Next:\"Siguiente\",\"No emoji found\":\"No se encontró ningún emoji\",\"No link provider found\":\"No se encontró ningún proveedor de enlaces\",\"No results\":\"Sin resultados\",Objects:\"Objetos\",\"Open contact menu\":\"Abrir menú de contactos\",'Open link to \"{resourceName}\"':'Abrir enlace a \"{resourceName}\"',\"Open menu\":\"Abrir menú\",\"Open navigation\":\"Abrir navegación\",\"Open settings menu\":\"Abrir menú de configuración\",\"Password is secure\":\"La contraseña es segura\",\"Pause slideshow\":\"Pausar presentación de diapositivas\",\"People & Body\":\"Personas y Cuerpo\",\"Pick a date\":\"Seleccionar una fecha\",\"Pick a date and a time\":\"Seleccionar una fecha y una hora\",\"Pick a month\":\"Seleccionar un mes\",\"Pick a time\":\"Seleccionar una semana\",\"Pick a week\":\"Seleccionar una semana\",\"Pick a year\":\"Seleccionar un año\",\"Pick an emoji\":\"Seleccionar un emoji\",\"Please select a time zone:\":\"Por favor, selecciona una zona horaria:\",Previous:\"Anterior\",\"Provider icon\":\"Ícono del proveedor\",\"Raw link {options}\":\"Enlace directo {options}\",\"Related resources\":\"Recursos relacionados\",Search:\"Buscar\",\"Search emoji\":\"Buscar emoji\",\"Search results\":\"Resultados de búsqueda\",\"sec. ago\":\"hace segundos\",\"seconds ago\":\"Segundos atrás\",\"Select a tag\":\"Seleccionar una etiqueta\",\"Select provider\":\"Seleccionar proveedor\",Settings:\"Configuraciones\",\"Settings navigation\":\"Navegación de configuraciones\",\"Show password\":\"Mostrar contraseña\",\"Smart Picker\":\"Selector inteligente\",\"Smileys & Emotion\":\"Caritas y Emociones\",\"Start slideshow\":\"Iniciar presentación de diapositivas\",\"Start typing to search\":\"Comienza a escribir para buscar\",Submit:\"Enviar\",Symbols:\"Símbolos\",\"Travel & Places\":\"Viajes y Lugares\",\"Type to search time zone\":\"Escribe para buscar la zona horaria\",\"Unable to search the group\":\"No se puede buscar en el grupo\",\"Undo changes\":\"Deshacer cambios\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Escribir mensaje, usar \"@\" para mencionar a alguien, usar \":\" para autocompletar emojis...'}},{locale:\"es_GT\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_HN\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_MX\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_NI\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_PA\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_PE\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_PR\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_PY\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_SV\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"es_UY\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"et_EE\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"eu\",translations:{\"{tag} (invisible)\":\"{tag} (ikusezina)\",\"{tag} (restricted)\":\"{tag} (mugatua)\",\"a few seconds ago\":\"\",Actions:\"Ekintzak\",'Actions for item with name \"{name}\"':\"\",Activities:\"Jarduerak\",\"Animals & Nature\":\"Animaliak eta Natura\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\",\"Avatar of {displayName}\":\"{displayName}-(e)n irudia\",\"Avatar of {displayName}, {status}\":\"{displayName} -(e)n irudia, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Ezeztatu aldaketak\",\"Change name\":\"\",Choose:\"Aukeratu\",\"Clear search\":\"\",\"Clear text\":\"Garbitu testua\",Close:\"Itxi\",\"Close modal\":\"Itxi modala\",\"Close navigation\":\"Itxi nabigazioa\",\"Close sidebar\":\"Itxi albo-barra\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Baieztatu aldaketak\",Custom:\"Pertsonalizatua\",\"Edit item\":\"Editatu elementua\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Gogokoa\",Flags:\"Banderak\",\"Food & Drink\":\"Janaria eta edariak\",\"Frequently used\":\"Askotan erabilia\",Global:\"Globala\",\"Go back to the list\":\"Bueltatu zerrendara\",\"Hide password\":\"Ezkutatu pasahitza\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Mezuaren {count} karaketere-limitera heldu zara\",\"More items …\":\"Elementu gehiago …\",\"More options\":\"\",Next:\"Hurrengoa\",\"No emoji found\":\"Ez da emojirik aurkitu\",\"No link provider found\":\"\",\"No results\":\"Emaitzarik ez\",Objects:\"Objektuak\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Ireki nabigazioa\",\"Open settings menu\":\"\",\"Password is secure\":\"Pasahitza segurua da\",\"Pause slideshow\":\"Pausatu diaporama\",\"People & Body\":\"Jendea eta gorputza\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Hautatu emoji bat\",\"Please select a time zone:\":\"Mesedez hautatu ordu-zona bat:\",Previous:\"Aurrekoa\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Erlazionatutako baliabideak\",Search:\"Bilatu\",\"Search emoji\":\"\",\"Search results\":\"Bilaketa emaitzak\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Hautatu etiketa bat\",\"Select provider\":\"\",Settings:\"Ezarpenak\",\"Settings navigation\":\"Nabigazio ezarpenak\",\"Show password\":\"Erakutsi pasahitza\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smileyak eta emozioa\",\"Start slideshow\":\"Hasi diaporama\",\"Start typing to search\":\"\",Submit:\"Bidali\",Symbols:\"Sinboloak\",\"Travel & Places\":\"Bidaiak eta lekuak\",\"Type to search time zone\":\"Idatzi ordu-zona bat bilatzeko\",\"Unable to search the group\":\"Ezin izan da taldea bilatu\",\"Undo changes\":\"Aldaketak desegin\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Idatzi mezua, erabili \"@\" norbait aipatzeko, erabili \":\" emojiak automatikoki osatzeko...'}},{locale:\"fa\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"fi\",translations:{\"{tag} (invisible)\":\"{tag} (näkymätön)\",\"{tag} (restricted)\":\"{tag} (rajoitettu)\",\"a few seconds ago\":\"\",Actions:\"Toiminnot\",'Actions for item with name \"{name}\"':\"\",Activities:\"Aktiviteetit\",\"Animals & Nature\":\"Eläimet & luonto\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"Käyttäjän {displayName} avatar\",\"Avatar of {displayName}, {status}\":\"Käyttäjän {displayName} avatar, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Peruuta muutokset\",\"Change name\":\"\",Choose:\"Valitse\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Sulje\",\"Close modal\":\"\",\"Close navigation\":\"Sulje navigaatio\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Vahvista muutokset\",Custom:\"Mukautettu\",\"Edit item\":\"Muokkaa kohdetta\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Liput\",\"Food & Drink\":\"Ruoka & juoma\",\"Frequently used\":\"Usein käytetyt\",Global:\"Yleinen\",\"Go back to the list\":\"Siirry takaisin listaan\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Viestin merkken enimmäisimäärä {count} täynnä \",\"More items …\":\"\",\"More options\":\"\",Next:\"Seuraava\",\"No emoji found\":\"Emojia ei löytynyt\",\"No link provider found\":\"\",\"No results\":\"Ei tuloksia\",Objects:\"Esineet & asiat\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Avaa navigaatio\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Keskeytä diaesitys\",\"People & Body\":\"Ihmiset & keho\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Valitse emoji\",\"Please select a time zone:\":\"Valitse aikavyöhyke:\",Previous:\"Edellinen\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Etsi\",\"Search emoji\":\"\",\"Search results\":\"Hakutulokset\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Valitse tagi\",\"Select provider\":\"\",Settings:\"Asetukset\",\"Settings navigation\":\"Asetusnavigaatio\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Hymiöt & tunteet\",\"Start slideshow\":\"Aloita diaesitys\",\"Start typing to search\":\"\",Submit:\"Lähetä\",Symbols:\"Symbolit\",\"Travel & Places\":\"Matkustus & kohteet\",\"Type to search time zone\":\"Kirjoita etsiäksesi aikavyöhyke\",\"Unable to search the group\":\"Ryhmää ei voi hakea\",\"Undo changes\":\"Kumoa muutokset\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"fo\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"fr\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (restreint)\",\"a few seconds ago\":\"il y a quelques instants\",Actions:\"Actions\",'Actions for item with name \"{name}\"':\"\",Activities:\"Activités\",\"Animals & Nature\":\"Animaux & Nature\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",Back:\"Retour\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Annuler les modifications\",\"Change name\":\"Modifier le nom\",Choose:\"Choisir\",\"Clear search\":\"Effacer la recherche\",\"Clear text\":\"Effacer le texte\",Close:\"Fermer\",\"Close modal\":\"Fermer la fenêtre\",\"Close navigation\":\"Fermer la navigation\",\"Close sidebar\":\"Fermer la barre latérale\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"Réduire le menu\",\"Confirm changes\":\"Confirmer les modifications\",Custom:\"Personnalisé\",\"Edit item\":\"Éditer l'élément\",\"Enter link\":\"Saisissez le lien\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"Documentation externe pour {name}\",Favorite:\"Favori\",Flags:\"Drapeaux\",\"Food & Drink\":\"Nourriture & Boissons\",\"Frequently used\":\"Utilisés fréquemment\",Global:\"Global\",\"Go back to the list\":\"Retourner à la liste\",\"Hide password\":\"Cacher le mot de passe\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Limite de messages de {count} caractères atteinte\",\"More items …\":\"Plus d'éléments...\",\"More options\":\"Plus d'options\",Next:\"Suivant\",\"No emoji found\":\"Pas d’émoji trouvé\",\"No link provider found\":\"\",\"No results\":\"Aucun résultat\",Objects:\"Objets\",\"Open contact menu\":\"Ouvrir le menu Contact\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"Ouvrir le menu\",\"Open navigation\":\"Ouvrir la navigation\",\"Open settings menu\":\"Ouvrir le menu Paramètres\",\"Password is secure\":\"Le mot de passe est sécurisé\",\"Pause slideshow\":\"Mettre le diaporama en pause\",\"People & Body\":\"Personnes & Corps\",\"Pick a date\":\"Sélectionner une date\",\"Pick a date and a time\":\"Sélectionner une date et une heure\",\"Pick a month\":\"Sélectionner un mois\",\"Pick a time\":\"Sélectionner une heure\",\"Pick a week\":\"Sélectionner une semaine\",\"Pick a year\":\"Sélectionner une année\",\"Pick an emoji\":\"Choisissez un émoji\",\"Please select a time zone:\":\"Sélectionnez un fuseau horaire : \",Previous:\"Précédent\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Ressources liées\",Search:\"Chercher\",\"Search emoji\":\"Rechercher un emoji\",\"Search results\":\"Résultats de recherche\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Sélectionnez une balise\",\"Select provider\":\"\",Settings:\"Paramètres\",\"Settings navigation\":\"Navigation dans les paramètres\",\"Show password\":\"Afficher le mot de passe\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smileys & Émotions\",\"Start slideshow\":\"Démarrer le diaporama\",\"Start typing to search\":\"\",Submit:\"Valider\",Symbols:\"Symboles\",\"Travel & Places\":\"Voyage & Lieux\",\"Type to search time zone\":\"Saisissez les premiers lettres pour rechercher un fuseau horaire\",\"Unable to search the group\":\"Impossible de chercher le groupe\",\"Undo changes\":\"Annuler les changements\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Écrire un message, utiliser \"@\" pour mentionner une personne, \":\" pour l\\'autocomplétion des émojis...'}},{locale:\"gd\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"gl\",translations:{\"{tag} (invisible)\":\"{tag} (invisíbel)\",\"{tag} (restricted)\":\"{tag} (restrinxido)\",\"a few seconds ago\":\"\",Actions:\"Accións\",'Actions for item with name \"{name}\"':\"\",Activities:\"Actividades\",\"Animals & Nature\":\"Animais e natureza\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Cancelar os cambios\",\"Change name\":\"\",Choose:\"Escoller\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Pechar\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Confirma os cambios\",Custom:\"Personalizado\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Bandeiras\",\"Food & Drink\":\"Comida e bebida\",\"Frequently used\":\"Usado con frecuencia\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Acadouse o límite de {count} caracteres por mensaxe\",\"More items …\":\"\",\"More options\":\"\",Next:\"Seguinte\",\"No emoji found\":\"Non se atopou ningún «emoji»\",\"No link provider found\":\"\",\"No results\":\"Sen resultados\",Objects:\"Obxectos\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Pausar o diaporama\",\"People & Body\":\"Persoas e corpo\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Escolla un «emoji»\",\"Please select a time zone:\":\"\",Previous:\"Anterir\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Buscar\",\"Search emoji\":\"\",\"Search results\":\"Resultados da busca\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Seleccione unha etiqueta\",\"Select provider\":\"\",Settings:\"Axustes\",\"Settings navigation\":\"Navegación polos axustes\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Sorrisos e emocións\",\"Start slideshow\":\"Iniciar o diaporama\",\"Start typing to search\":\"\",Submit:\"Enviar\",Symbols:\"Símbolos\",\"Travel & Places\":\"Viaxes e lugares\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"Non foi posíbel buscar o grupo\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"he\",translations:{\"{tag} (invisible)\":\"{tag} (נסתר)\",\"{tag} (restricted)\":\"{tag} (מוגבל)\",\"a few seconds ago\":\"לפני מספר שניות\",Actions:\"פעולות\",'Actions for item with name \"{name}\"':\"פעולות לפריט בשם „{name}”\",Activities:\"פעילויות\",\"Animals & Nature\":\"חיות וטבע\",\"Any link\":\"קישור כלשהו\",\"Anything shared with the same group of people will show up here\":\"כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן\",\"Avatar of {displayName}\":\"תמונה ייצוגית של {displayName}\",\"Avatar of {displayName}, {status}\":\"תמונה ייצוגית של {displayName}, {status}\",Back:\"חזרה\",\"Back to provider selection\":\"חזרה לבחירת ספק\",\"Cancel changes\":\"ביטול שינויים\",\"Change name\":\"החלפת שם\",Choose:\"בחירה\",\"Clear search\":\"פינוי חיפוש\",\"Clear text\":\"פינוי טקסט\",Close:\"סגירה\",\"Close modal\":\"סגירת החלונית\",\"Close navigation\":\"סגירת הניווט\",\"Close sidebar\":\"סגירת סרגל הצד\",\"Close Smart Picker\":\"סגירת הבורר החכם\",\"Collapse menu\":\"צמצום התפריט\",\"Confirm changes\":\"אישור השינויים\",Custom:\"בהתאמה אישית\",\"Edit item\":\"עריכת פריט\",\"Enter link\":\"מילוי קישור\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות.\",\"External documentation for {name}\":\"תיעוד חיצוני עבור {name}\",Favorite:\"למועדפים\",Flags:\"דגלים\",\"Food & Drink\":\"מזון ומשקאות\",\"Frequently used\":\"בשימוש תדיר\",Global:\"כללי\",\"Go back to the list\":\"חזרה לרשימה\",\"Hide password\":\"הסתרת סיסמה\",'Load more \"{options}\"\"':\"טעינת „{options}” נוספות\",\"Message limit of {count} characters reached\":\"הגעת למגבלה של {count} תווים\",\"More items …\":\"פריטים נוספים…\",\"More options\":\"אפשרויות נוספות\",Next:\"הבא\",\"No emoji found\":\"לא נמצא אמוג׳י\",\"No link provider found\":\"לא נמצא ספק קישורים\",\"No results\":\"אין תוצאות\",Objects:\"חפצים\",\"Open contact menu\":\"פתיחת תפריט קשר\",'Open link to \"{resourceName}\"':\"פתיחת קישור אל „{resourceName}”\",\"Open menu\":\"פתיחת תפריט\",\"Open navigation\":\"פתיחת ניווט\",\"Open settings menu\":\"פתיחת תפריט הגדרות\",\"Password is secure\":\"הסיסמה מאובטחת\",\"Pause slideshow\":\"השהיית מצגת\",\"People & Body\":\"אנשים וגוף\",\"Pick a date\":\"נא לבחור תאריך\",\"Pick a date and a time\":\"נא לבחור תאריך ושעה\",\"Pick a month\":\"נא לבחור חודש\",\"Pick a time\":\"נא לבחור שעה\",\"Pick a week\":\"נא לבחור שבוע\",\"Pick a year\":\"נא לבחור שנה\",\"Pick an emoji\":\"נא לבחור אמוג׳י\",\"Please select a time zone:\":\"נא לבחור אזור זמן:\",Previous:\"הקודם\",\"Provider icon\":\"סמל ספק\",\"Raw link {options}\":\"קישור גולמי {options}\",\"Related resources\":\"משאבים קשורים\",Search:\"חיפוש\",\"Search emoji\":\"חיפוש אמוג׳י\",\"Search results\":\"תוצאות חיפוש\",\"sec. ago\":\"לפני מספר שניות\",\"seconds ago\":\"לפני מס׳ שניות\",\"Select a tag\":\"בחירת תגית\",\"Select provider\":\"בחירת ספק\",Settings:\"הגדרות\",\"Settings navigation\":\"ניווט בהגדרות\",\"Show password\":\"הצגת סיסמה\",\"Smart Picker\":\"בורר חכם\",\"Smileys & Emotion\":\"חייכנים ורגשונים\",\"Start slideshow\":\"התחלת המצגת\",\"Start typing to search\":\"התחלת הקלדה מחפשת\",Submit:\"הגשה\",Symbols:\"סמלים\",\"Travel & Places\":\"טיולים ומקומות\",\"Type to search time zone\":\"יש להקליד כדי לחפש אזור זמן\",\"Unable to search the group\":\"לא ניתן לחפש בקבוצה\",\"Undo changes\":\"ביטול שינויים\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"כאן ניתן לכתוב הודעה, אפשר להשתמש ב־„@” כדי לאזכר מישהו, ב־„:” להשלמה אוטומטית של אמוג׳י…\"}},{locale:\"hi_IN\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"hr\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"hsb\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"hu\",translations:{\"{tag} (invisible)\":\"{tag} (láthatatlan)\",\"{tag} (restricted)\":\"{tag} (korlátozott)\",\"a few seconds ago\":\"\",Actions:\"Műveletek\",'Actions for item with name \"{name}\"':\"\",Activities:\"Tevékenységek\",\"Animals & Nature\":\"Állatok és természet\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\",\"Avatar of {displayName}\":\"{displayName} profilképe\",\"Avatar of {displayName}, {status}\":\"{displayName} profilképe, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Változtatások elvetése\",\"Change name\":\"\",Choose:\"Válassszon\",\"Clear search\":\"\",\"Clear text\":\"Szöveg törlése\",Close:\"Bezárás\",\"Close modal\":\"Ablak bezárása\",\"Close navigation\":\"Navigáció bezárása\",\"Close sidebar\":\"Oldalsáv bezárása\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Változtatások megerősítése\",Custom:\"Egyéni\",\"Edit item\":\"Elem szerkesztése\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Kedvenc\",Flags:\"Zászlók\",\"Food & Drink\":\"Étel és ital\",\"Frequently used\":\"Gyakran használt\",Global:\"Globális\",\"Go back to the list\":\"Ugrás vissza a listához\",\"Hide password\":\"Jelszó elrejtése\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"{count} karakteres üzenetkorlát elérve\",\"More items …\":\"További elemek...\",\"More options\":\"\",Next:\"Következő\",\"No emoji found\":\"Nem található emodzsi\",\"No link provider found\":\"\",\"No results\":\"Nincs találat\",Objects:\"Tárgyak\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Navigáció megnyitása\",\"Open settings menu\":\"\",\"Password is secure\":\"A jelszó biztonságos\",\"Pause slideshow\":\"Diavetítés szüneteltetése\",\"People & Body\":\"Emberek és test\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Válasszon egy emodzsit\",\"Please select a time zone:\":\"Válasszon időzónát:\",Previous:\"Előző\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Kapcsolódó erőforrások\",Search:\"Keresés\",\"Search emoji\":\"\",\"Search results\":\"Találatok\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Válasszon címkét\",\"Select provider\":\"\",Settings:\"Beállítások\",\"Settings navigation\":\"Navigáció a beállításokban\",\"Show password\":\"Jelszó megjelenítése\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Mosolyok és érzelmek\",\"Start slideshow\":\"Diavetítés indítása\",\"Start typing to search\":\"\",Submit:\"Beküldés\",Symbols:\"Szimbólumok\",\"Travel & Places\":\"Utazás és helyek\",\"Type to search time zone\":\"Gépeljen az időzóna kereséséhez\",\"Unable to search the group\":\"A csoport nem kereshető\",\"Undo changes\":\"Változtatások visszavonása\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"Írjon egy üzenetet, használja a „@”-ot valaki megemlítéséhet, illetve a „:”-ot az emodzsik automatikus kiegészítéséhez…\"}},{locale:\"hy\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"ia\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"id\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"ig\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"is\",translations:{\"{tag} (invisible)\":\"{tag} (ósýnilegt)\",\"{tag} (restricted)\":\"{tag} (takmarkað)\",\"a few seconds ago\":\"\",Actions:\"Aðgerðir\",'Actions for item with name \"{name}\"':\"\",Activities:\"Aðgerðir\",\"Animals & Nature\":\"Dýr og náttúra\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"Velja\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Loka\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"Sérsniðið\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Flögg\",\"Food & Drink\":\"Matur og drykkur\",\"Frequently used\":\"Oftast notað\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"Næsta\",\"No emoji found\":\"Ekkert tjáningartákn fannst\",\"No link provider found\":\"\",\"No results\":\"Engar niðurstöður\",Objects:\"Hlutir\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Gera hlé á skyggnusýningu\",\"People & Body\":\"Fólk og líkami\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Veldu tjáningartákn\",\"Please select a time zone:\":\"\",Previous:\"Fyrri\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Leita\",\"Search emoji\":\"\",\"Search results\":\"Leitarniðurstöður\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Veldu merki\",\"Select provider\":\"\",Settings:\"Stillingar\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Broskallar og tilfinningar\",\"Start slideshow\":\"Byrja skyggnusýningu\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"Tákn\",\"Travel & Places\":\"Staðir og ferðalög\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"Get ekki leitað í hópnum\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"it\",translations:{\"{tag} (invisible)\":\"{tag} (invisibile)\",\"{tag} (restricted)\":\"{tag} (limitato)\",\"a few seconds ago\":\"\",Actions:\"Azioni\",'Actions for item with name \"{name}\"':\"\",Activities:\"Attività\",\"Animals & Nature\":\"Animali e natura\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui\",\"Avatar of {displayName}\":\"Avatar di {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar di {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Annulla modifiche\",\"Change name\":\"\",Choose:\"Scegli\",\"Clear search\":\"\",\"Clear text\":\"Cancella il testo\",Close:\"Chiudi\",\"Close modal\":\"Chiudi il messaggio modale\",\"Close navigation\":\"Chiudi la navigazione\",\"Close sidebar\":\"Chiudi la barra laterale\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Conferma modifiche\",Custom:\"Personalizzato\",\"Edit item\":\"Modifica l'elemento\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Preferito\",Flags:\"Bandiere\",\"Food & Drink\":\"Cibo e bevande\",\"Frequently used\":\"Usati di frequente\",Global:\"Globale\",\"Go back to the list\":\"Torna all'elenco\",\"Hide password\":\"Nascondi la password\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Limite dei messaggi di {count} caratteri raggiunto\",\"More items …\":\"Più elementi ...\",\"More options\":\"\",Next:\"Successivo\",\"No emoji found\":\"Nessun emoji trovato\",\"No link provider found\":\"\",\"No results\":\"Nessun risultato\",Objects:\"Oggetti\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Apri la navigazione\",\"Open settings menu\":\"\",\"Password is secure\":\"La password è sicura\",\"Pause slideshow\":\"Presentazione in pausa\",\"People & Body\":\"Persone e corpo\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Scegli un emoji\",\"Please select a time zone:\":\"Si prega di selezionare un fuso orario:\",Previous:\"Precedente\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Risorse correlate\",Search:\"Cerca\",\"Search emoji\":\"\",\"Search results\":\"Risultati di ricerca\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Seleziona un'etichetta\",\"Select provider\":\"\",Settings:\"Impostazioni\",\"Settings navigation\":\"Navigazione delle impostazioni\",\"Show password\":\"Mostra la password\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Faccine ed emozioni\",\"Start slideshow\":\"Avvia presentazione\",\"Start typing to search\":\"\",Submit:\"Invia\",Symbols:\"Simboli\",\"Travel & Places\":\"Viaggi e luoghi\",\"Type to search time zone\":\"Digita per cercare un fuso orario\",\"Unable to search the group\":\"Impossibile cercare il gruppo\",\"Undo changes\":\"Cancella i cambiamenti\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Scrivi un messaggio, \"@\" per menzionare qualcuno, \":\" per il completamento automatico delle emoji ...'}},{locale:\"ja\",translations:{\"{tag} (invisible)\":\"{タグ} (不可視)\",\"{tag} (restricted)\":\"{タグ} (制限付)\",\"a few seconds ago\":\"\",Actions:\"操作\",'Actions for item with name \"{name}\"':\"\",Activities:\"アクティビティ\",\"Animals & Nature\":\"動物と自然\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"同じグループで共有しているものは、全てここに表示されます\",\"Avatar of {displayName}\":\"{displayName} のアバター\",\"Avatar of {displayName}, {status}\":\"{displayName}, {status} のアバター\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"変更をキャンセル\",\"Change name\":\"\",Choose:\"選択\",\"Clear search\":\"\",\"Clear text\":\"テキストをクリア\",Close:\"閉じる\",\"Close modal\":\"モーダルを閉じる\",\"Close navigation\":\"ナビゲーションを閉じる\",\"Close sidebar\":\"サイドバーを閉じる\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"変更を承認\",Custom:\"カスタム\",\"Edit item\":\"編集\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"お気に入り\",Flags:\"国旗\",\"Food & Drink\":\"食べ物と飲み物\",\"Frequently used\":\"よく使うもの\",Global:\"全体\",\"Go back to the list\":\"リストに戻る\",\"Hide password\":\"パスワードを非表示\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"{count} 文字のメッセージ上限に達しています\",\"More items …\":\"他のアイテム\",\"More options\":\"\",Next:\"次\",\"No emoji found\":\"絵文字が見つかりません\",\"No link provider found\":\"\",\"No results\":\"なし\",Objects:\"物\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"ナビゲーションを開く\",\"Open settings menu\":\"\",\"Password is secure\":\"パスワードは保護されています\",\"Pause slideshow\":\"スライドショーを一時停止\",\"People & Body\":\"様々な人と体の部位\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"絵文字を選択\",\"Please select a time zone:\":\"タイムゾーンを選んで下さい:\",Previous:\"前\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"関連リソース\",Search:\"検索\",\"Search emoji\":\"\",\"Search results\":\"検索結果\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"タグを選択\",\"Select provider\":\"\",Settings:\"設定\",\"Settings navigation\":\"ナビゲーション設定\",\"Show password\":\"パスワードを表示\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"感情表現\",\"Start slideshow\":\"スライドショーを開始\",\"Start typing to search\":\"\",Submit:\"提出\",Symbols:\"記号\",\"Travel & Places\":\"旅行と場所\",\"Type to search time zone\":\"タイムゾーン検索のため入力してください\",\"Unable to search the group\":\"グループを検索できません\",\"Undo changes\":\"変更を取り消し\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'メッセージを記入、\"@\"でメンション、\":\"で絵文字の自動補完 ...'}},{locale:\"ka\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"ka_GE\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"kab\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"kk\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"km\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"kn\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"ko\",translations:{\"{tag} (invisible)\":\"{tag}(숨김)\",\"{tag} (restricted)\":\"{tag}(제한)\",\"a few seconds ago\":\"방금 전\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"활동\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"la\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"lb\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"lo\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"lt_LT\",translations:{\"{tag} (invisible)\":\"{tag} (nematoma)\",\"{tag} (restricted)\":\"{tag} (apribota)\",\"a few seconds ago\":\"\",Actions:\"Veiksmai\",'Actions for item with name \"{name}\"':\"\",Activities:\"Veiklos\",\"Animals & Nature\":\"Gyvūnai ir gamta\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"Pasirinkti\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Užverti\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"Tinkinti\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Vėliavos\",\"Food & Drink\":\"Maistas ir gėrimai\",\"Frequently used\":\"Dažniausiai naudoti\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Pasiekta {count} simbolių žinutės riba\",\"More items …\":\"\",\"More options\":\"\",Next:\"Kitas\",\"No emoji found\":\"Nerasta jaustukų\",\"No link provider found\":\"\",\"No results\":\"Nėra rezultatų\",Objects:\"Objektai\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Pristabdyti skaidrių rodymą\",\"People & Body\":\"Žmonės ir kūnas\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Pasirinkti jaustuką\",\"Please select a time zone:\":\"\",Previous:\"Ankstesnis\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Ieškoti\",\"Search emoji\":\"\",\"Search results\":\"Paieškos rezultatai\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Pasirinkti žymę\",\"Select provider\":\"\",Settings:\"Nustatymai\",\"Settings navigation\":\"Naršymas nustatymuose\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Šypsenos ir emocijos\",\"Start slideshow\":\"Pradėti skaidrių rodymą\",\"Start typing to search\":\"\",Submit:\"Pateikti\",Symbols:\"Simboliai\",\"Travel & Places\":\"Kelionės ir vietos\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"Nepavyko atlikti paiešką grupėje\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"lv\",translations:{\"{tag} (invisible)\":\"{tag} (neredzams)\",\"{tag} (restricted)\":\"{tag} (ierobežots)\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"Izvēlēties\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Aizvērt\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"Nākamais\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"Nav rezultātu\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Pauzēt slaidrādi\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"Iepriekšējais\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Izvēlēties birku\",\"Select provider\":\"\",Settings:\"Iestatījumi\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"Sākt slaidrādi\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"mk\",translations:{\"{tag} (invisible)\":\"{tag} (невидливо)\",\"{tag} (restricted)\":\"{tag} (ограничено)\",\"a few seconds ago\":\"\",Actions:\"Акции\",'Actions for item with name \"{name}\"':\"\",Activities:\"Активности\",\"Animals & Nature\":\"Животни & Природа\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"Аватар на {displayName}\",\"Avatar of {displayName}, {status}\":\"Аватар на {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Откажи ги промените\",\"Change name\":\"\",Choose:\"Избери\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Затвори\",\"Close modal\":\"Затвори модал\",\"Close navigation\":\"Затвори навигација\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Потврди ги промените\",Custom:\"Прилагодени\",\"Edit item\":\"Уреди\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Фаворити\",Flags:\"Знамиња\",\"Food & Drink\":\"Храна & Пијалоци\",\"Frequently used\":\"Најчесто користени\",Global:\"Глобално\",\"Go back to the list\":\"Врати се на листата\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Ограничувањето на должината на пораката од {count} карактери е надминато\",\"More items …\":\"\",\"More options\":\"\",Next:\"Следно\",\"No emoji found\":\"Не се пронајдени емотикони\",\"No link provider found\":\"\",\"No results\":\"Нема резултати\",Objects:\"Објекти\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Отвори навигација\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Пузирај слајдшоу\",\"People & Body\":\"Луѓе & Тело\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Избери емотикон\",\"Please select a time zone:\":\"Изберете временска зона:\",Previous:\"Предходно\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Барај\",\"Search emoji\":\"\",\"Search results\":\"Резултати од барувањето\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Избери ознака\",\"Select provider\":\"\",Settings:\"Параметри\",\"Settings navigation\":\"Параметри за навигација\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Смешковци & Емотикони\",\"Start slideshow\":\"Стартувај слајдшоу\",\"Start typing to search\":\"\",Submit:\"Испрати\",Symbols:\"Симболи\",\"Travel & Places\":\"Патувања & Места\",\"Type to search time zone\":\"Напишете за да пребарате временска зона\",\"Unable to search the group\":\"Неможе да се принајде групата\",\"Undo changes\":\"Врати ги промените\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"mn\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"mr\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"ms_MY\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"my\",translations:{\"{tag} (invisible)\":\"{tag} (ကွယ်ဝှက်ထား)\",\"{tag} (restricted)\":\"{tag} (ကန့်သတ်)\",\"a few seconds ago\":\"\",Actions:\"လုပ်ဆောင်ချက်များ\",'Actions for item with name \"{name}\"':\"\",Activities:\"ပြုလုပ်ဆောင်တာများ\",\"Animals & Nature\":\"တိရစ္ဆာန်များနှင့် သဘာဝ\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"{displayName} ၏ ကိုယ်ပွား\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\",\"Change name\":\"\",Choose:\"ရွေးချယ်ရန်\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"ပိတ်ရန်\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"ပြောင်းလဲမှုများ အတည်ပြုရန်\",Custom:\"အလိုကျချိန်ညှိမှု\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"အလံများ\",\"Food & Drink\":\"အစားအသောက်\",\"Frequently used\":\"မကြာခဏအသုံးပြုသော\",Global:\"ကမ္ဘာလုံးဆိုင်ရာ\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"ကန့်သတ် စာလုံးရေ {count} လုံး ပြည့်ပါပြီ\",\"More items …\":\"\",\"More options\":\"\",Next:\"နောက်သို့ဆက်ရန်\",\"No emoji found\":\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\",\"No link provider found\":\"\",\"No results\":\"ရလဒ်မရှိပါ\",Objects:\"အရာဝတ္ထုများ\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"စလိုက်ရှိုး ခေတ္တရပ်ရန်\",\"People & Body\":\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"အီမိုဂျီရွေးရန်\",\"Please select a time zone:\":\"ဒေသစံတော်ချိန် ရွေးချယ်ပေးပါ\",Previous:\"ယခင်\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"ရှာဖွေရန်\",\"Search emoji\":\"\",\"Search results\":\"ရှာဖွေမှု ရလဒ်များ\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"tag ရွေးချယ်ရန်\",\"Select provider\":\"\",Settings:\"ချိန်ညှိချက်များ\",\"Settings navigation\":\"ချိန်ညှိချက်အညွှန်း\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"စမိုင်လီများနှင့် အီမိုရှင်း\",\"Start slideshow\":\"စလိုက်ရှိုးအား စတင်ရန်\",\"Start typing to search\":\"\",Submit:\"တင်သွင်းရန်\",Symbols:\"သင်္ကေတများ\",\"Travel & Places\":\"ခရီးသွားလာခြင်းနှင့် နေရာများ\",\"Type to search time zone\":\"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ\",\"Unable to search the group\":\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"nb\",translations:{\"{tag} (invisible)\":\"{tag} (usynlig)\",\"{tag} (restricted)\":\"{tag} (beskyttet)\",\"a few seconds ago\":\"\",Actions:\"Handlinger\",'Actions for item with name \"{name}\"':\"\",Activities:\"Aktiviteter\",\"Animals & Nature\":\"Dyr og natur\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Alt som er delt med den samme gruppen vil vises her\",\"Avatar of {displayName}\":\"Avataren til {displayName}\",\"Avatar of {displayName}, {status}\":\"{displayName}'s avatar, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Avbryt endringer\",\"Change name\":\"\",Choose:\"Velg\",\"Clear search\":\"\",\"Clear text\":\"Fjern tekst\",Close:\"Lukk\",\"Close modal\":\"Lukk modal\",\"Close navigation\":\"Lukk navigasjon\",\"Close sidebar\":\"Lukk sidepanel\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Bekreft endringer\",Custom:\"Tilpasset\",\"Edit item\":\"Rediger\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Favoritt\",Flags:\"Flagg\",\"Food & Drink\":\"Mat og drikke\",\"Frequently used\":\"Ofte brukt\",Global:\"Global\",\"Go back to the list\":\"Gå tilbake til listen\",\"Hide password\":\"Skjul passord\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Karakter begrensing {count} nådd i melding\",\"More items …\":\"Flere gjenstander...\",\"More options\":\"\",Next:\"Neste\",\"No emoji found\":\"Fant ingen emoji\",\"No link provider found\":\"\",\"No results\":\"Ingen resultater\",Objects:\"Objekter\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Åpne navigasjon\",\"Open settings menu\":\"\",\"Password is secure\":\"Passordet er sikkert\",\"Pause slideshow\":\"Pause lysbildefremvisning\",\"People & Body\":\"Mennesker og kropp\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Velg en emoji\",\"Please select a time zone:\":\"Vennligst velg tidssone\",Previous:\"Forrige\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Relaterte ressurser\",Search:\"Søk\",\"Search emoji\":\"\",\"Search results\":\"Søkeresultater\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Velg en merkelapp\",\"Select provider\":\"\",Settings:\"Innstillinger\",\"Settings navigation\":\"Navigasjonsinstillinger\",\"Show password\":\"Vis passord\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smilefjes og følelser\",\"Start slideshow\":\"Start lysbildefremvisning\",\"Start typing to search\":\"\",Submit:\"Send\",Symbols:\"Symboler\",\"Travel & Places\":\"Reise og steder\",\"Type to search time zone\":\"Tast for å søke etter tidssone\",\"Unable to search the group\":\"Kunne ikke søke i gruppen\",\"Undo changes\":\"Tilbakestill endringer\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Skriv melding, bruk \"@\" for å nevne noen, bruk \":\" for autofullføring av emoji...'}},{locale:\"ne\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"nl\",translations:{\"{tag} (invisible)\":\"{tag} (onzichtbaar)\",\"{tag} (restricted)\":\"{tag} (beperkt)\",\"a few seconds ago\":\"\",Actions:\"Acties\",'Actions for item with name \"{name}\"':\"\",Activities:\"Activiteiten\",\"Animals & Nature\":\"Dieren & Natuur\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"Avatar van {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar van {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Wijzigingen annuleren\",\"Change name\":\"\",Choose:\"Kies\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Sluiten\",\"Close modal\":\"\",\"Close navigation\":\"Navigatie sluiten\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Wijzigingen bevestigen\",Custom:\"Aangepast\",\"Edit item\":\"Item bewerken\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Vlaggen\",\"Food & Drink\":\"Eten & Drinken\",\"Frequently used\":\"Vaak gebruikt\",Global:\"Globaal\",\"Go back to the list\":\"Ga terug naar de lijst\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Berichtlimiet van {count} karakters bereikt\",\"More items …\":\"\",\"More options\":\"\",Next:\"Volgende\",\"No emoji found\":\"Geen emoji gevonden\",\"No link provider found\":\"\",\"No results\":\"Geen resultaten\",Objects:\"Objecten\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Navigatie openen\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Pauzeer diavoorstelling\",\"People & Body\":\"Mensen & Lichaam\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Kies een emoji\",\"Please select a time zone:\":\"Selecteer een tijdzone:\",Previous:\"Vorige\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Zoeken\",\"Search emoji\":\"\",\"Search results\":\"Zoekresultaten\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Selecteer een label\",\"Select provider\":\"\",Settings:\"Instellingen\",\"Settings navigation\":\"Instellingen navigatie\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smileys & Emotie\",\"Start slideshow\":\"Start diavoorstelling\",\"Start typing to search\":\"\",Submit:\"Verwerken\",Symbols:\"Symbolen\",\"Travel & Places\":\"Reizen & Plaatsen\",\"Type to search time zone\":\"Type om de tijdzone te zoeken\",\"Unable to search the group\":\"Kan niet in de groep zoeken\",\"Undo changes\":\"Wijzigingen ongedaan maken\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"nn_NO\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"oc\",translations:{\"{tag} (invisible)\":\"{tag} (invisible)\",\"{tag} (restricted)\":\"{tag} (limit)\",\"a few seconds ago\":\"\",Actions:\"Accions\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"Causir\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Tampar\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"Seguent\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"Cap de resultat\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Metre en pausa lo diaporama\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"Precedent\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Seleccionar una etiqueta\",\"Select provider\":\"\",Settings:\"Paramètres\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"Lançar lo diaporama\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"pl\",translations:{\"{tag} (invisible)\":\"{tag} (niewidoczna)\",\"{tag} (restricted)\":\"{tag} (ograniczona)\",\"a few seconds ago\":\"\",Actions:\"Działania\",'Actions for item with name \"{name}\"':\"\",Activities:\"Aktywność\",\"Animals & Nature\":\"Zwierzęta i natura\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\",\"Avatar of {displayName}\":\"Awatar {displayName}\",\"Avatar of {displayName}, {status}\":\"Awatar {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Anuluj zmiany\",\"Change name\":\"\",Choose:\"Wybierz\",\"Clear search\":\"\",\"Clear text\":\"Wyczyść tekst\",Close:\"Zamknij\",\"Close modal\":\"Zamknij modal\",\"Close navigation\":\"Zamknij nawigację\",\"Close sidebar\":\"Zamknij pasek boczny\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Potwierdź zmiany\",Custom:\"Zwyczajne\",\"Edit item\":\"Edytuj element\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Ulubiony\",Flags:\"Flagi\",\"Food & Drink\":\"Jedzenie i picie\",\"Frequently used\":\"Często używane\",Global:\"Globalnie\",\"Go back to the list\":\"Powrót do listy\",\"Hide password\":\"Ukryj hasło\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Przekroczono limit wiadomości wynoszący {count} znaków\",\"More items …\":\"Więcej pozycji…\",\"More options\":\"\",Next:\"Następny\",\"No emoji found\":\"Nie znaleziono emoji\",\"No link provider found\":\"\",\"No results\":\"Brak wyników\",Objects:\"Obiekty\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Otwórz nawigację\",\"Open settings menu\":\"\",\"Password is secure\":\"Hasło jest bezpieczne\",\"Pause slideshow\":\"Wstrzymaj pokaz slajdów\",\"People & Body\":\"Ludzie i ciało\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Wybierz emoji\",\"Please select a time zone:\":\"Wybierz strefę czasową:\",Previous:\"Poprzedni\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Powiązane zasoby\",Search:\"Szukaj\",\"Search emoji\":\"\",\"Search results\":\"Wyniki wyszukiwania\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Wybierz etykietę\",\"Select provider\":\"\",Settings:\"Ustawienia\",\"Settings navigation\":\"Ustawienia nawigacji\",\"Show password\":\"Pokaż hasło\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Buźki i emotikony\",\"Start slideshow\":\"Rozpocznij pokaz slajdów\",\"Start typing to search\":\"\",Submit:\"Wyślij\",Symbols:\"Symbole\",\"Travel & Places\":\"Podróże i miejsca\",\"Type to search time zone\":\"Wpisz, aby wyszukać strefę czasową\",\"Unable to search the group\":\"Nie można przeszukać grupy\",\"Undo changes\":\"Cofnij zmiany\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Napisz wiadomość, \"@\" aby o kimś wspomnieć, \":\" dla autouzupełniania emoji…'}},{locale:\"ps\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"pt_BR\",translations:{\"{tag} (invisible)\":\"{tag} (invisível)\",\"{tag} (restricted)\":\"{tag} (restrito) \",\"a few seconds ago\":\"\",Actions:\"Ações\",'Actions for item with name \"{name}\"':\"\",Activities:\"Atividades\",\"Animals & Nature\":\"Animais & Natureza\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Cancelar alterações\",\"Change name\":\"\",Choose:\"Escolher\",\"Clear search\":\"\",\"Clear text\":\"Limpar texto\",Close:\"Fechar\",\"Close modal\":\"Fechar modal\",\"Close navigation\":\"Fechar navegação\",\"Close sidebar\":\"Fechar barra lateral\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Confirmar alterações\",Custom:\"Personalizado\",\"Edit item\":\"Editar item\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Favorito\",Flags:\"Bandeiras\",\"Food & Drink\":\"Comida & Bebida\",\"Frequently used\":\"Mais usados\",Global:\"Global\",\"Go back to the list\":\"Volte para a lista\",\"Hide password\":\"Ocultar a senha\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Limite de mensagem de {count} caracteres atingido\",\"More items …\":\"Mais itens …\",\"More options\":\"\",Next:\"Próximo\",\"No emoji found\":\"Nenhum emoji encontrado\",\"No link provider found\":\"\",\"No results\":\"Sem resultados\",Objects:\"Objetos\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Abrir navegação\",\"Open settings menu\":\"\",\"Password is secure\":\"A senha é segura\",\"Pause slideshow\":\"Pausar apresentação de slides\",\"People & Body\":\"Pessoas & Corpo\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Escolha um emoji\",\"Please select a time zone:\":\"Selecione um fuso horário: \",Previous:\"Anterior\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Recursos relacionados\",Search:\"Pesquisar\",\"Search emoji\":\"\",\"Search results\":\"Resultados da pesquisa\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Selecionar uma tag\",\"Select provider\":\"\",Settings:\"Configurações\",\"Settings navigation\":\"Navegação de configurações\",\"Show password\":\"Mostrar senha\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smiles & Emoções\",\"Start slideshow\":\"Iniciar apresentação de slides\",\"Start typing to search\":\"\",Submit:\"Enviar\",Symbols:\"Símbolo\",\"Travel & Places\":\"Viagem & Lugares\",\"Type to search time zone\":\"Digite para pesquisar o fuso horário \",\"Unable to search the group\":\"Não foi possível pesquisar o grupo\",\"Undo changes\":\"Desfazer modificações\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Escreva mensagens, use \"@\" para mencionar algum, use \":\" for autocompletar emoji …'}},{locale:\"pt_PT\",translations:{\"{tag} (invisible)\":\"{tag} (invisivel)\",\"{tag} (restricted)\":\"{tag} (restrito)\",\"a few seconds ago\":\"alguns segundos atrás\",Actions:\"Ações\",'Actions for item with name \"{name}\"':'Ações para objeto com o nome \"[name]\"',Activities:\"Atividades\",\"Animals & Nature\":\"Animais e Natureza\",\"Any link\":\"Qualquer link\",\"Anything shared with the same group of people will show up here\":\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\",\"Avatar of {displayName}\":\"Avatar de {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar de {displayName}, {status}\",Back:\"Voltar atrás\",\"Back to provider selection\":\"Voltar à seleção de fornecedor\",\"Cancel changes\":\"Cancelar alterações\",\"Change name\":\"Alterar nome\",Choose:\"Escolher\",\"Clear search\":\"Limpar a pesquisa\",\"Clear text\":\"Limpar texto\",Close:\"Fechar\",\"Close modal\":\"Fechar modal\",\"Close navigation\":\"Fechar navegação\",\"Close sidebar\":\"Fechar barra lateral\",\"Close Smart Picker\":'Fechar \"Smart Picker\"',\"Collapse menu\":\"Comprimir menu\",\"Confirm changes\":\"Confirmar alterações\",Custom:\"Personalizado\",\"Edit item\":\"Editar item\",\"Enter link\":\"Introduzir link\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"Erro em obter info relacionadas. Por favor contacte o administrador do sistema para esclarecimentos adicionais.\",\"External documentation for {name}\":\"Documentação externa para {name}\",Favorite:\"Favorito\",Flags:\"Bandeiras\",\"Food & Drink\":\"Comida e Bebida\",\"Frequently used\":\"Mais utilizados\",Global:\"Global\",\"Go back to the list\":\"Voltar para a lista\",\"Hide password\":\"Ocultar a senha\",'Load more \"{options}\"\"':'Obter mais \"{options}\"\"',\"Message limit of {count} characters reached\":\"Atingido o limite de {count} carateres da mensagem.\",\"More items …\":\"Mais itens …\",\"More options\":\"Mais opções\",Next:\"Seguinte\",\"No emoji found\":\"Nenhum emoji encontrado\",\"No link provider found\":\"Nenhum fornecedor de link encontrado\",\"No results\":\"Sem resultados\",Objects:\"Objetos\",\"Open contact menu\":\"Abrir o menu de contato\",'Open link to \"{resourceName}\"':'Abrir link para \"{resourceName}\"',\"Open menu\":\"Abrir menu\",\"Open navigation\":\"Abrir navegação\",\"Open settings menu\":\"Abrir menu de configurações\",\"Password is secure\":\"A senha é segura\",\"Pause slideshow\":\"Pausar diaporama\",\"People & Body\":\"Pessoas e Corpo\",\"Pick a date\":\"Escolha uma data\",\"Pick a date and a time\":\"Escolha uma data e um horário\",\"Pick a month\":\"Escolha um mês\",\"Pick a time\":\"Escolha um horário\",\"Pick a week\":\"Escolha uma semana\",\"Pick a year\":\"Escolha um ano\",\"Pick an emoji\":\"Escolha um emoji\",\"Please select a time zone:\":\"Por favor, selecione um fuso horário: \",Previous:\"Anterior\",\"Provider icon\":\"Icon do fornecedor\",\"Raw link {options}\":\"Link inicial {options}\",\"Related resources\":\"Recursos relacionados\",Search:\"Pesquisar\",\"Search emoji\":\"Pesquisar emoji\",\"Search results\":\"Resultados da pesquisa\",\"sec. ago\":\"seg. atrás\",\"seconds ago\":\"segundos atrás\",\"Select a tag\":\"Selecionar uma etiqueta\",\"Select provider\":\"Escolha de fornecedor\",Settings:\"Definições\",\"Settings navigation\":\"Navegação de configurações\",\"Show password\":\"Mostrar senha\",\"Smart Picker\":\"Smart Picker\",\"Smileys & Emotion\":\"Sorrisos e Emoções\",\"Start slideshow\":\"Iniciar diaporama\",\"Start typing to search\":\"Comece a digitar para pesquisar\",Submit:\"Submeter\",Symbols:\"Símbolos\",\"Travel & Places\":\"Viagem e Lugares\",\"Type to search time zone\":\"Digite para pesquisar o fuso horário \",\"Unable to search the group\":\"Não é possível pesquisar o grupo\",\"Undo changes\":\"Anular alterações\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Escreva a mensagem, use \"@\" para mencionar alguém, use \":\" para obter um emoji …'}},{locale:\"ro\",translations:{\"{tag} (invisible)\":\"{tag} (invizibil)\",\"{tag} (restricted)\":\"{tag} (restricționat)\",\"a few seconds ago\":\"\",Actions:\"Acțiuni\",'Actions for item with name \"{name}\"':\"\",Activities:\"Activități\",\"Animals & Nature\":\"Animale și natură\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\",\"Avatar of {displayName}\":\"Avatarul lui {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatarul lui {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Anulează modificările\",\"Change name\":\"\",Choose:\"Alegeți\",\"Clear search\":\"\",\"Clear text\":\"Șterge textul\",Close:\"Închideți\",\"Close modal\":\"Închideți modulul\",\"Close navigation\":\"Închideți navigarea\",\"Close sidebar\":\"Închide bara laterală\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Confirmați modificările\",Custom:\"Personalizat\",\"Edit item\":\"Editați elementul\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Favorit\",Flags:\"Marcaje\",\"Food & Drink\":\"Alimente și băuturi\",\"Frequently used\":\"Utilizate frecvent\",Global:\"Global\",\"Go back to the list\":\"Întoarceți-vă la listă\",\"Hide password\":\"Ascunde parola\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Limita mesajului de {count} caractere a fost atinsă\",\"More items …\":\"Mai multe articole ...\",\"More options\":\"\",Next:\"Următorul\",\"No emoji found\":\"Nu s-a găsit niciun emoji\",\"No link provider found\":\"\",\"No results\":\"Nu există rezultate\",Objects:\"Obiecte\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Deschideți navigația\",\"Open settings menu\":\"\",\"Password is secure\":\"Parola este sigură\",\"Pause slideshow\":\"Pauză prezentare de diapozitive\",\"People & Body\":\"Oameni și corp\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Alege un emoji\",\"Please select a time zone:\":\"Vă rugăm să selectați un fus orar:\",Previous:\"Anterior\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Resurse legate\",Search:\"Căutare\",\"Search emoji\":\"\",\"Search results\":\"Rezultatele căutării\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Selectați o etichetă\",\"Select provider\":\"\",Settings:\"Setări\",\"Settings navigation\":\"Navigare setări\",\"Show password\":\"Arată parola\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Zâmbete și emoții\",\"Start slideshow\":\"Începeți prezentarea de diapozitive\",\"Start typing to search\":\"\",Submit:\"Trimiteți\",Symbols:\"Simboluri\",\"Travel & Places\":\"Călătorii și locuri\",\"Type to search time zone\":\"Tastați pentru a căuta fusul orar\",\"Unable to search the group\":\"Imposibilitatea de a căuta în grup\",\"Undo changes\":\"Anularea modificărilor\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Scrie un mesaj, folosește \"@\" pentru a menționa pe cineva, folosește \":\" pentru autocompletarea cu emoji ...'}},{locale:\"ru\",translations:{\"{tag} (invisible)\":\"{tag} (невидимое)\",\"{tag} (restricted)\":\"{tag} (ограниченное)\",\"a few seconds ago\":\"\",Actions:\"Действия \",'Actions for item with name \"{name}\"':\"\",Activities:\"События\",\"Animals & Nature\":\"Животные и природа \",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"Аватар {displayName}\",\"Avatar of {displayName}, {status}\":\"Фотография {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Отменить изменения\",\"Change name\":\"\",Choose:\"Выберите\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Закрыть\",\"Close modal\":\"Закрыть модальное окно\",\"Close navigation\":\"Закрыть навигацию\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Подтвердить изменения\",Custom:\"Пользовательское\",\"Edit item\":\"Изменить элемент\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Флаги\",\"Food & Drink\":\"Еда, напиток\",\"Frequently used\":\"Часто используемый\",Global:\"Глобальный\",\"Go back to the list\":\"Вернуться к списку\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Достигнуто ограничение на количество символов в {count}\",\"More items …\":\"\",\"More options\":\"\",Next:\"Следующее\",\"No emoji found\":\"Эмодзи не найдено\",\"No link provider found\":\"\",\"No results\":\"Результаты отсуствуют\",Objects:\"Объекты\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Открыть навигацию\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Приостановить показ слйдов\",\"People & Body\":\"Люди и тело\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Выберите эмодзи\",\"Please select a time zone:\":\"Пожалуйста, выберите часовой пояс:\",Previous:\"Предыдущее\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Поиск\",\"Search emoji\":\"\",\"Search results\":\"Результаты поиска\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Выберите метку\",\"Select provider\":\"\",Settings:\"Параметры\",\"Settings navigation\":\"Навигация по настройкам\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Смайлики и эмоции\",\"Start slideshow\":\"Начать показ слайдов\",\"Start typing to search\":\"\",Submit:\"Утвердить\",Symbols:\"Символы\",\"Travel & Places\":\"Путешествия и места\",\"Type to search time zone\":\"Введите для поиска часового пояса\",\"Unable to search the group\":\"Невозможно найти группу\",\"Undo changes\":\"Отменить изменения\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"sc\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"si\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"sk\",translations:{\"{tag} (invisible)\":\"{tag} (neviditeľný)\",\"{tag} (restricted)\":\"{tag} (obmedzený)\",\"a few seconds ago\":\"\",Actions:\"Akcie\",'Actions for item with name \"{name}\"':\"\",Activities:\"Aktivity\",\"Animals & Nature\":\"Zvieratá a príroda\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"Avatar {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Zrušiť zmeny\",\"Change name\":\"\",Choose:\"Vybrať\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Zatvoriť\",\"Close modal\":\"\",\"Close navigation\":\"Zavrieť navigáciu\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Potvrdiť zmeny\",Custom:\"Zvyk\",\"Edit item\":\"Upraviť položku\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"Vlajky\",\"Food & Drink\":\"Jedlo a nápoje\",\"Frequently used\":\"Často používané\",Global:\"Globálne\",\"Go back to the list\":\"Naspäť na zoznam\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Limit správy na {count} znakov dosiahnutý\",\"More items …\":\"\",\"More options\":\"\",Next:\"Ďalší\",\"No emoji found\":\"Nenašli sa žiadne emodži\",\"No link provider found\":\"\",\"No results\":\"Žiadne výsledky\",Objects:\"Objekty\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Otvoriť navigáciu\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Pozastaviť prezentáciu\",\"People & Body\":\"Ľudia a telo\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Vyberte si emodži\",\"Please select a time zone:\":\"Prosím vyberte časovú zónu:\",Previous:\"Predchádzajúci\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Hľadať\",\"Search emoji\":\"\",\"Search results\":\"Výsledky vyhľadávania\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Vybrať štítok\",\"Select provider\":\"\",Settings:\"Nastavenia\",\"Settings navigation\":\"Navigácia v nastaveniach\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smajlíky a emócie\",\"Start slideshow\":\"Začať prezentáciu\",\"Start typing to search\":\"\",Submit:\"Odoslať\",Symbols:\"Symboly\",\"Travel & Places\":\"Cestovanie a miesta\",\"Type to search time zone\":\"Začníte písať pre vyhľadávanie časovej zóny\",\"Unable to search the group\":\"Skupinu sa nepodarilo nájsť\",\"Undo changes\":\"Vrátiť zmeny\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"sl\",translations:{\"{tag} (invisible)\":\"{tag} (nevidno)\",\"{tag} (restricted)\":\"{tag} (omejeno)\",\"a few seconds ago\":\"\",Actions:\"Dejanja\",'Actions for item with name \"{name}\"':\"\",Activities:\"Dejavnosti\",\"Animals & Nature\":\"Živali in Narava\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"Podoba {displayName}\",\"Avatar of {displayName}, {status}\":\"Prikazna slika {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Prekliči spremembe\",\"Change name\":\"\",Choose:\"Izbor\",\"Clear search\":\"\",\"Clear text\":\"Počisti besedilo\",Close:\"Zapri\",\"Close modal\":\"Zapri pojavno okno\",\"Close navigation\":\"Zapri krmarjenje\",\"Close sidebar\":\"Zapri stransko vrstico\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Potrdi spremembe\",Custom:\"Po meri\",\"Edit item\":\"Uredi predmet\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Priljubljeno\",Flags:\"Zastavice\",\"Food & Drink\":\"Hrana in Pijača\",\"Frequently used\":\"Pogostost uporabe\",Global:\"Splošno\",\"Go back to the list\":\"Vrni se na seznam\",\"Hide password\":\"Skrij geslo\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Dosežena omejitev {count} znakov na sporočilo.\",\"More items …\":\"Več predmetov ...\",\"More options\":\"\",Next:\"Naslednji\",\"No emoji found\":\"Ni najdenih izraznih ikon\",\"No link provider found\":\"\",\"No results\":\"Ni zadetkov\",Objects:\"Predmeti\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Odpri krmarjenje\",\"Open settings menu\":\"\",\"Password is secure\":\"Geslo je varno\",\"Pause slideshow\":\"Ustavi predstavitev\",\"People & Body\":\"Ljudje in Telo\",\"Pick a date\":\"Izbor datuma\",\"Pick a date and a time\":\"Izbor datuma in časa\",\"Pick a month\":\"Izbor meseca\",\"Pick a time\":\"Izbor časa\",\"Pick a week\":\"Izbor tedna\",\"Pick a year\":\"Izbor leta\",\"Pick an emoji\":\"Izbor izrazne ikone\",\"Please select a time zone:\":\"Izbor časovnega pasu:\",Previous:\"Predhodni\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"Povezani viri\",Search:\"Iskanje\",\"Search emoji\":\"\",\"Search results\":\"Zadetki iskanja\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Izbor oznake\",\"Select provider\":\"\",Settings:\"Nastavitve\",\"Settings navigation\":\"Krmarjenje nastavitev\",\"Show password\":\"Pokaži geslo\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Izrazne ikone\",\"Start slideshow\":\"Začni predstavitev\",\"Start typing to search\":\"\",Submit:\"Pošlji\",Symbols:\"Simboli\",\"Travel & Places\":\"Potovanja in Kraji\",\"Type to search time zone\":\"Vpišite niz za iskanje časovnega pasu\",\"Unable to search the group\":\"Ni mogoče iskati po skupini\",\"Undo changes\":\"Razveljavi spremembe\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"sq\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"sr\",translations:{\"{tag} (invisible)\":\"{tag} (nevidljivo)\",\"{tag} (restricted)\":\"{tag} (ograničeno)\",\"a few seconds ago\":\"\",Actions:\"Radnje\",'Actions for item with name \"{name}\"':\"\",Activities:\"Aktivnosti\",\"Animals & Nature\":\"Životinje i Priroda\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"Avatar za {displayName}\",\"Avatar of {displayName}, {status}\":\"Avatar za {displayName}, {status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"Otkaži izmene\",\"Change name\":\"\",Choose:\"Изаберите\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"Затвори\",\"Close modal\":\"Zatvori modal\",\"Close navigation\":\"Zatvori navigaciju\",\"Close sidebar\":\"Zatvori bočnu traku\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"Potvrdite promene\",Custom:\"Po meri\",\"Edit item\":\"Uredi stavku\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"Omiljeni\",Flags:\"Zastave\",\"Food & Drink\":\"Hrana i Piće\",\"Frequently used\":\"Često korišćeno\",Global:\"Globalno\",\"Go back to the list\":\"Natrag na listu\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"Dostignuto je ograničenje za poruke od {count} znakova\",\"More items …\":\"\",\"More options\":\"\",Next:\"Следеће\",\"No emoji found\":\"Nije pronađen nijedan emodži\",\"No link provider found\":\"\",\"No results\":\"Нема резултата\",Objects:\"Objekti\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"Otvori navigaciju\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"Паузирај слајд шоу\",\"People & Body\":\"Ljudi i Telo\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"Izaberi emodži\",\"Please select a time zone:\":\"Molimo izaberite vremensku zonu:\",Previous:\"Претходно\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"Pretraži\",\"Search emoji\":\"\",\"Search results\":\"Rezultati pretrage\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"Изаберите ознаку\",\"Select provider\":\"\",Settings:\"Поставке\",\"Settings navigation\":\"Navigacija u podešavanjima\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"Smajli i Emocije\",\"Start slideshow\":\"Покрени слајд шоу\",\"Start typing to search\":\"\",Submit:\"Prihvati\",Symbols:\"Simboli\",\"Travel & Places\":\"Putovanja i Mesta\",\"Type to search time zone\":\"Ukucaj da pretražiš vremenske zone\",\"Unable to search the group\":\"Nije moguće pretražiti grupu\",\"Undo changes\":\"Poništi promene\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"sr@latin\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"sv\",translations:{\"{tag} (invisible)\":\"{tag} (osynlig)\",\"{tag} (restricted)\":\"{tag} (begränsad)\",\"a few seconds ago\":\"några sekunder sedan\",Actions:\"Åtgärder\",'Actions for item with name \"{name}\"':'Åtgärder för objekt med namn \"{name}\"',Activities:\"Aktiviteter\",\"Animals & Nature\":\"Djur & Natur\",\"Any link\":\"Vilken länk som helst\",\"Anything shared with the same group of people will show up here\":\"Något som delats med samma grupp av personer kommer att visas här\",\"Avatar of {displayName}\":\"{displayName}s avatar\",\"Avatar of {displayName}, {status}\":\"{displayName}s avatar, {status}\",Back:\"Tillbaka\",\"Back to provider selection\":\"Tillbaka till leverantörsval\",\"Cancel changes\":\"Avbryt ändringar\",\"Change name\":\"Ändra namn\",Choose:\"Välj\",\"Clear search\":\"Rensa sökning\",\"Clear text\":\"Ta bort text\",Close:\"Stäng\",\"Close modal\":\"Stäng modal\",\"Close navigation\":\"Stäng navigering\",\"Close sidebar\":\"Stäng sidopanel\",\"Close Smart Picker\":\"Stäng Smart Picker\",\"Collapse menu\":\"Komprimera menyn\",\"Confirm changes\":\"Bekräfta ändringar\",Custom:\"Anpassad\",\"Edit item\":\"Ändra\",\"Enter link\":\"Ange länk\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor.\",\"External documentation for {name}\":\"Extern dokumentation för {name}\",Favorite:\"Favorit\",Flags:\"Flaggor\",\"Food & Drink\":\"Mat & Dryck\",\"Frequently used\":\"Används ofta\",Global:\"Global\",\"Go back to the list\":\"Gå tillbaka till listan\",\"Hide password\":\"Göm lössenordet\",'Load more \"{options}\"\"':'Ladda fler \"{options}\"\"',\"Message limit of {count} characters reached\":\"Meddelandegräns {count} tecken används\",\"More items …\":\"Fler objekt\",\"More options\":\"Fler alternativ\",Next:\"Nästa\",\"No emoji found\":\"Hittade inga emojis\",\"No link provider found\":\"Ingen länkleverantör hittades\",\"No results\":\"Inga resultat\",Objects:\"Objekt\",\"Open contact menu\":\"Öppna kontaktmenyn\",'Open link to \"{resourceName}\"':'Öppna länken till \"{resourceName}\"',\"Open menu\":\"Öppna menyn\",\"Open navigation\":\"Öppna navigering\",\"Open settings menu\":\"Öppna inställningsmenyn\",\"Password is secure\":\"Lössenordet är säkert\",\"Pause slideshow\":\"Pausa bildspelet\",\"People & Body\":\"Kropp & Själ\",\"Pick a date\":\"Välj datum\",\"Pick a date and a time\":\"Välj datum och tid\",\"Pick a month\":\"Välj månad\",\"Pick a time\":\"Välj tid\",\"Pick a week\":\"Välj vecka\",\"Pick a year\":\"Välj år\",\"Pick an emoji\":\"Välj en emoji\",\"Please select a time zone:\":\"Välj tidszon:\",Previous:\"Föregående\",\"Provider icon\":\"Leverantörsikon\",\"Raw link {options}\":\"Oformaterad länk {options}\",\"Related resources\":\"Relaterade resurser\",Search:\"Sök\",\"Search emoji\":\"Sök emoji\",\"Search results\":\"Sökresultat\",\"sec. ago\":\"sek. sedan\",\"seconds ago\":\"sekunder sedan\",\"Select a tag\":\"Välj en tag\",\"Select provider\":\"Välj leverantör\",Settings:\"Inställningar\",\"Settings navigation\":\"Inställningsmeny\",\"Show password\":\"Visa lössenordet\",\"Smart Picker\":\"Smart Picker\",\"Smileys & Emotion\":\"Selfies & Känslor\",\"Start slideshow\":\"Starta bildspelet\",\"Start typing to search\":\"Börja skriva för att söka\",Submit:\"Skicka\",Symbols:\"Symboler\",\"Travel & Places\":\"Resor & Sevärdigheter\",\"Type to search time zone\":\"Skriv för att välja tidszon\",\"Unable to search the group\":\"Kunde inte söka i gruppen\",\"Undo changes\":\"Ångra ändringar\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Skriv meddelande, använd \"@\" för att nämna någon, använd \":\" för automatiska emojiförslag ...'}},{locale:\"sw\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"ta\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"th\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"tk\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"tr\",translations:{\"{tag} (invisible)\":\"{tag} (görünmez)\",\"{tag} (restricted)\":\"{tag} (kısıtlı)\",\"a few seconds ago\":\"birkaç saniye önce\",Actions:\"İşlemler\",'Actions for item with name \"{name}\"':\"{name} adındaki öge için işlemler\",Activities:\"Etkinlikler\",\"Animals & Nature\":\"Hayvanlar ve Doğa\",\"Any link\":\"Herhangi bir bağlantı\",\"Anything shared with the same group of people will show up here\":\"Aynı kişi grubu ile paylaşılan herşey burada görüntülenir\",\"Avatar of {displayName}\":\"{displayName} avatarı\",\"Avatar of {displayName}, {status}\":\"{displayName}, {status} avatarı\",Back:\"Geri\",\"Back to provider selection\":\"Sağlayıcı seçimine dön\",\"Cancel changes\":\"Değişiklikleri iptal et\",\"Change name\":\"Adı değiştir\",Choose:\"Seçin\",\"Clear search\":\"Aramayı temizle\",\"Clear text\":\"Metni temizle\",Close:\"Kapat\",\"Close modal\":\"Üste açılan pencereyi kapat\",\"Close navigation\":\"Gezinmeyi kapat\",\"Close sidebar\":\"Yan çubuğu kapat\",\"Close Smart Picker\":\"Akıllı seçimi kapat\",\"Collapse menu\":\"Menüyü daralt\",\"Confirm changes\":\"Değişiklikleri onayla\",Custom:\"Özel\",\"Edit item\":\"Ögeyi düzenle\",\"Enter link\":\"Bağlantıyı yazın\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün \",\"External documentation for {name}\":\"{name} için dış belgeler\",Favorite:\"Sık kullanılanlara ekle\",Flags:\"Bayraklar\",\"Food & Drink\":\"Yeme ve içme\",\"Frequently used\":\"Sık kullanılanlar\",Global:\"Evrensel\",\"Go back to the list\":\"Listeye dön\",\"Hide password\":\"Parolayı gizle\",'Load more \"{options}\"\"':'Diğer \"{options}\"',\"Message limit of {count} characters reached\":\"{count} karakter ileti sınırına ulaşıldı\",\"More items …\":\"Diğer ögeler…\",\"More options\":\"Diğer seçenekler\",Next:\"Sonraki\",\"No emoji found\":\"Herhangi bir emoji bulunamadı\",\"No link provider found\":\"Bağlantı sağlayıcısı bulunamadı\",\"No results\":\"Herhangi bir sonuç bulunamadı\",Objects:\"Nesneler\",\"Open contact menu\":\"İletişim menüsünü aç\",'Open link to \"{resourceName}\"':\"{resourceName} bağlantısını aç\",\"Open menu\":\"Menüyü aç\",\"Open navigation\":\"Gezinmeyi aç\",\"Open settings menu\":\"Ayarlar menüsünü aç\",\"Password is secure\":\"Parola güvenli\",\"Pause slideshow\":\"Slayt sunumunu duraklat\",\"People & Body\":\"İnsanlar ve beden\",\"Pick a date\":\"Bir tarih seçin\",\"Pick a date and a time\":\"Bir tarih ve saat seçin\",\"Pick a month\":\"Bir ay seçin\",\"Pick a time\":\"Bir saat seçin\",\"Pick a week\":\"Bir hafta seçin\",\"Pick a year\":\"Bir yıl seçin\",\"Pick an emoji\":\"Bir emoji seçin\",\"Please select a time zone:\":\"Lütfen bir saat dilimi seçin:\",Previous:\"Önceki\",\"Provider icon\":\"Sağlayıcı simgesi\",\"Raw link {options}\":\"Ham bağlantı {options}\",\"Related resources\":\"İlgili kaynaklar\",Search:\"Arama\",\"Search emoji\":\"Emoji ara\",\"Search results\":\"Arama sonuçları\",\"sec. ago\":\"sn. önce\",\"seconds ago\":\"saniye önce\",\"Select a tag\":\"Bir etiket seçin\",\"Select provider\":\"Sağlayıcı seçin\",Settings:\"Ayarlar\",\"Settings navigation\":\"Gezinme ayarları\",\"Show password\":\"Parolayı görüntüle\",\"Smart Picker\":\"Akıllı seçim\",\"Smileys & Emotion\":\"İfadeler ve duygular\",\"Start slideshow\":\"Slayt sunumunu başlat\",\"Start typing to search\":\"Aramak için yazmaya başlayın\",Submit:\"Gönder\",Symbols:\"Simgeler\",\"Travel & Places\":\"Gezi ve yerler\",\"Type to search time zone\":\"Saat dilimi aramak için yazmaya başlayın\",\"Unable to search the group\":\"Grupta arama yapılamadı\",\"Undo changes\":\"Değişiklikleri geri al\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'İleti yazın, birini anmak için @, otomatik emoji tamamlamak için \":\" kullanın…'}},{locale:\"ug\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"uk\",translations:{\"{tag} (invisible)\":\"{tag} (невидимий)\",\"{tag} (restricted)\":\"{tag} (обмежений)\",\"a few seconds ago\":\"декілька секунд тому\",Actions:\"Дії\",'Actions for item with name \"{name}\"':'Дії для об\\'єкту \"{name}\"',Activities:\"Діяльність\",\"Animals & Nature\":\"Тварини та природа\",\"Any link\":\"Будь-яке посилання\",\"Anything shared with the same group of people will show up here\":\"Будь-що доступне для цієї же групи людей буде показано тут\",\"Avatar of {displayName}\":\"Аватар {displayName}\",\"Avatar of {displayName}, {status}\":\"Аватар {displayName}, {status}\",Back:\"Назад\",\"Back to provider selection\":\"Назад до вибору постачальника\",\"Cancel changes\":\"Скасувати зміни\",\"Change name\":\"Змінити назву\",Choose:\"Виберіть\",\"Clear search\":\"Очистити пошук\",\"Clear text\":\"Очистити текст\",Close:\"Закрити\",\"Close modal\":\"Закрити модаль\",\"Close navigation\":\"Закрити навігацію\",\"Close sidebar\":\"Закрити бічну панель\",\"Close Smart Picker\":\"Закрити асистент вибору\",\"Collapse menu\":\"Згорнути меню\",\"Confirm changes\":\"Підтвердити зміни\",Custom:\"Власне\",\"Edit item\":\"Редагувати елемент\",\"Enter link\":\"Зазначте посилання\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання.\",\"External documentation for {name}\":\"Зовнішня документація для {name}\",Favorite:\"Із зірочкою\",Flags:\"Прапори\",\"Food & Drink\":\"Їжа та напої\",\"Frequently used\":\"Найчастіші\",Global:\"Глобальний\",\"Go back to the list\":\"Повернутися до списку\",\"Hide password\":\"Приховати пароль\",'Load more \"{options}\"\"':'Завантажити більше \"{options}\"',\"Message limit of {count} characters reached\":\"Вичерпано ліміт у {count} символів для повідомлення\",\"More items …\":\"Більше об'єктів...\",\"More options\":\"Більше об'єктів\",Next:\"Вперед\",\"No emoji found\":\"Емоційки відсутні\",\"No link provider found\":\"Не наведено посилання\",\"No results\":\"Відсутні результати\",Objects:\"Об'єкти\",\"Open contact menu\":\"Відкрити меню контактів\",'Open link to \"{resourceName}\"':'Відкрити посилання на \"{resourceName}\"',\"Open menu\":\"Відкрити меню\",\"Open navigation\":\"Відкрити навігацію\",\"Open settings menu\":\"Відкрити меню налаштувань\",\"Password is secure\":\"Пароль безпечний\",\"Pause slideshow\":\"Пауза у показі слайдів\",\"People & Body\":\"Люди та жести\",\"Pick a date\":\"Вибрати дату\",\"Pick a date and a time\":\"Виберіть дату та час\",\"Pick a month\":\"Виберіть місяць\",\"Pick a time\":\"Виберіть час\",\"Pick a week\":\"Виберіть тиждень\",\"Pick a year\":\"Виберіть рік\",\"Pick an emoji\":\"Виберіть емоційку\",\"Please select a time zone:\":\"Виберіть часовий пояс:\",Previous:\"Назад\",\"Provider icon\":\"Піктограма постачальника\",\"Raw link {options}\":\"Пряме посилання {options}\",\"Related resources\":\"Пов'язані ресурси\",Search:\"Пошук\",\"Search emoji\":\"Шукати емоційки\",\"Search results\":\"Результати пошуку\",\"sec. ago\":\"с тому\",\"seconds ago\":\"с тому\",\"Select a tag\":\"Виберіть позначку\",\"Select provider\":\"Виберіть постачальника\",Settings:\"Налаштування\",\"Settings navigation\":\"Навігація у налаштуваннях\",\"Show password\":\"Показати пароль\",\"Smart Picker\":\"Асистент вибору\",\"Smileys & Emotion\":\"Смайли та емоції\",\"Start slideshow\":\"Почати показ слайдів\",\"Start typing to search\":\"Почніть вводити для пошуку\",Submit:\"Надіслати\",Symbols:\"Символи\",\"Travel & Places\":\"Поїздки та місця\",\"Type to search time zone\":\"Введіть для пошуку часовий пояс\",\"Unable to search the group\":\"Неможливо шукати в групі\",\"Undo changes\":\"Скасувати зміни\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'Додайте \"@\", щоби згадати коористувача або \":\" для вибору емоційки...'}},{locale:\"ur_PK\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"uz\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"vi\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"zh_CN\",translations:{\"{tag} (invisible)\":\"{tag} (不可见)\",\"{tag} (restricted)\":\"{tag} (受限)\",\"a few seconds ago\":\"\",Actions:\"行为\",'Actions for item with name \"{name}\"':\"\",Activities:\"活动\",\"Animals & Nature\":\"动物 & 自然\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"与同组用户分享的所有内容都会显示于此\",\"Avatar of {displayName}\":\"{displayName}的头像\",\"Avatar of {displayName}, {status}\":\"{displayName}的头像,{status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"取消更改\",\"Change name\":\"\",Choose:\"选择\",\"Clear search\":\"\",\"Clear text\":\"清除文本\",Close:\"关闭\",\"Close modal\":\"关闭窗口\",\"Close navigation\":\"关闭导航\",\"Close sidebar\":\"关闭侧边栏\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"确认更改\",Custom:\"自定义\",\"Edit item\":\"编辑项目\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"喜爱\",Flags:\"旗帜\",\"Food & Drink\":\"食物 & 饮品\",\"Frequently used\":\"经常使用\",Global:\"全局\",\"Go back to the list\":\"返回至列表\",\"Hide password\":\"隐藏密码\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"已达到 {count} 个字符的消息限制\",\"More items …\":\"更多项目…\",\"More options\":\"\",Next:\"下一个\",\"No emoji found\":\"表情未找到\",\"No link provider found\":\"\",\"No results\":\"无结果\",Objects:\"物体\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"开启导航\",\"Open settings menu\":\"\",\"Password is secure\":\"密码安全\",\"Pause slideshow\":\"暂停幻灯片\",\"People & Body\":\"人 & 身体\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"选择一个表情\",\"Please select a time zone:\":\"请选择一个时区:\",Previous:\"上一个\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"相关资源\",Search:\"搜索\",\"Search emoji\":\"\",\"Search results\":\"搜索结果\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"选择一个标签\",\"Select provider\":\"\",Settings:\"设置\",\"Settings navigation\":\"设置向导\",\"Show password\":\"显示密码\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"笑脸 & 情感\",\"Start slideshow\":\"开始幻灯片\",\"Start typing to search\":\"\",Submit:\"提交\",Symbols:\"符号\",\"Travel & Places\":\"旅游 & 地点\",\"Type to search time zone\":\"打字以搜索时区\",\"Unable to search the group\":\"无法搜索分组\",\"Undo changes\":\"撤销更改\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'写信息,使用\"@\"来提及某人,使用\":\"进行表情符号自动完成 ...'}},{locale:\"zh_HK\",translations:{\"{tag} (invisible)\":\"{tag} (隱藏)\",\"{tag} (restricted)\":\"{tag} (受限)\",\"a few seconds ago\":\"\",Actions:\"動作\",'Actions for item with name \"{name}\"':\"\",Activities:\"活動\",\"Animals & Nature\":\"動物與自然\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"與同一組人共享的任何內容都會顯示在此處\",\"Avatar of {displayName}\":\"{displayName} 的頭像\",\"Avatar of {displayName}, {status}\":\"{displayName} 的頭像,{status}\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"取消更改\",\"Change name\":\"\",Choose:\"選擇\",\"Clear search\":\"\",\"Clear text\":\"清除文本\",Close:\"關閉\",\"Close modal\":\"關閉模態\",\"Close navigation\":\"關閉導航\",\"Close sidebar\":\"關閉側邊欄\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"確認更改\",Custom:\"自定義\",\"Edit item\":\"編輯項目\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"喜愛\",Flags:\"旗幟\",\"Food & Drink\":\"食物與飲料\",\"Frequently used\":\"經常使用\",Global:\"全球的\",\"Go back to the list\":\"返回清單\",\"Hide password\":\"隱藏密碼\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"已達到訊息最多 {count} 字元限制\",\"More items …\":\"更多項目 …\",\"More options\":\"\",Next:\"下一個\",\"No emoji found\":\"未找到表情符號\",\"No link provider found\":\"\",\"No results\":\"無結果\",Objects:\"物件\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"開啟導航\",\"Open settings menu\":\"\",\"Password is secure\":\"密碼是安全的\",\"Pause slideshow\":\"暫停幻燈片\",\"People & Body\":\"人物\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"選擇表情符號\",\"Please select a time zone:\":\"請選擇時區:\",Previous:\"上一個\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"相關資源\",Search:\"搜尋\",\"Search emoji\":\"\",\"Search results\":\"搜尋結果\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"選擇標籤\",\"Select provider\":\"\",Settings:\"設定\",\"Settings navigation\":\"設定值導覽\",\"Show password\":\"顯示密碼\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"表情\",\"Start slideshow\":\"開始幻燈片\",\"Start typing to search\":\"\",Submit:\"提交\",Symbols:\"標誌\",\"Travel & Places\":\"旅遊與景點\",\"Type to search time zone\":\"鍵入以搜索時區\",\"Unable to search the group\":\"無法搜尋群組\",\"Undo changes\":\"取消更改\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':'寫訊息,使用 \"@\" 來指代某人,使用 \":\" 用於表情符號自動填充 ...'}},{locale:\"zh_TW\",translations:{\"{tag} (invisible)\":\"{tag}(隱藏)\",\"{tag} (restricted)\":\"{tag}(受限)\",\"a few seconds ago\":\"幾秒前\",Actions:\"動作\",'Actions for item with name \"{name}\"':\"\",Activities:\"活動\",\"Animals & Nature\":\"動物與自然\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"選擇\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"關閉\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"自定義\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"旗幟\",\"Food & Drink\":\"食物與飲料\",\"Frequently used\":\"最近使用\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"已達到訊息最多 {count} 字元限制\",\"More items …\":\"\",\"More options\":\"\",Next:\"下一個\",\"No emoji found\":\"未找到表情符號\",\"No link provider found\":\"\",\"No results\":\"無結果\",Objects:\"物件\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"暫停幻燈片\",\"People & Body\":\"人物\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"選擇表情符號\",\"Please select a time zone:\":\"\",Previous:\"上一個\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"搜尋\",\"Search emoji\":\"\",\"Search results\":\"搜尋結果\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"選擇標籤\",\"Select provider\":\"\",Settings:\"設定\",\"Settings navigation\":\"設定值導覽\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"表情\",\"Start slideshow\":\"開始幻燈片\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"標誌\",\"Travel & Places\":\"旅遊與景點\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"無法搜尋群組\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}},{locale:\"zu_ZA\",translations:{\"{tag} (invisible)\":\"\",\"{tag} (restricted)\":\"\",\"a few seconds ago\":\"\",Actions:\"\",'Actions for item with name \"{name}\"':\"\",Activities:\"\",\"Animals & Nature\":\"\",\"Any link\":\"\",\"Anything shared with the same group of people will show up here\":\"\",\"Avatar of {displayName}\":\"\",\"Avatar of {displayName}, {status}\":\"\",Back:\"\",\"Back to provider selection\":\"\",\"Cancel changes\":\"\",\"Change name\":\"\",Choose:\"\",\"Clear search\":\"\",\"Clear text\":\"\",Close:\"\",\"Close modal\":\"\",\"Close navigation\":\"\",\"Close sidebar\":\"\",\"Close Smart Picker\":\"\",\"Collapse menu\":\"\",\"Confirm changes\":\"\",Custom:\"\",\"Edit item\":\"\",\"Enter link\":\"\",\"Error getting related resources. Please contact your system administrator if you have any questions.\":\"\",\"External documentation for {name}\":\"\",Favorite:\"\",Flags:\"\",\"Food & Drink\":\"\",\"Frequently used\":\"\",Global:\"\",\"Go back to the list\":\"\",\"Hide password\":\"\",'Load more \"{options}\"\"':\"\",\"Message limit of {count} characters reached\":\"\",\"More items …\":\"\",\"More options\":\"\",Next:\"\",\"No emoji found\":\"\",\"No link provider found\":\"\",\"No results\":\"\",Objects:\"\",\"Open contact menu\":\"\",'Open link to \"{resourceName}\"':\"\",\"Open menu\":\"\",\"Open navigation\":\"\",\"Open settings menu\":\"\",\"Password is secure\":\"\",\"Pause slideshow\":\"\",\"People & Body\":\"\",\"Pick a date\":\"\",\"Pick a date and a time\":\"\",\"Pick a month\":\"\",\"Pick a time\":\"\",\"Pick a week\":\"\",\"Pick a year\":\"\",\"Pick an emoji\":\"\",\"Please select a time zone:\":\"\",Previous:\"\",\"Provider icon\":\"\",\"Raw link {options}\":\"\",\"Related resources\":\"\",Search:\"\",\"Search emoji\":\"\",\"Search results\":\"\",\"sec. ago\":\"\",\"seconds ago\":\"\",\"Select a tag\":\"\",\"Select provider\":\"\",Settings:\"\",\"Settings navigation\":\"\",\"Show password\":\"\",\"Smart Picker\":\"\",\"Smileys & Emotion\":\"\",\"Start slideshow\":\"\",\"Start typing to search\":\"\",Submit:\"\",Symbols:\"\",\"Travel & Places\":\"\",\"Type to search time zone\":\"\",\"Unable to search the group\":\"\",\"Undo changes\":\"\",'Write message, use \"@\" to mention someone, use \":\" for emoji autocompletion …':\"\"}}].forEach((function(e){var a={};for(var t in e.translations)e.translations[t].pluralId?a[t]={msgid:t,msgid_plural:e.translations[t].pluralId,msgstr:e.translations[t].msgstr}:a[t]={msgid:t,msgstr:[e.translations[t]]};i.addTranslation(e.locale,{translations:{\"\":a}})}));var n=i.build(),s=(n.ngettext.bind(n),n.gettext.bind(n));function r(e,a,t){this.r=e,this.g=a,this.b=t}function l(e,a,t){var o=[];o.push(a);for(var i=function(e,a){var t=new Array(3);return t[0]=(a[1].r-a[0].r)/e,t[1]=(a[1].g-a[0].g)/e,t[2]=(a[1].b-a[0].b)/e,t}(e,[a,t]),n=1;n<e;n++){var s=parseInt(a.r+i[0]*n,10),l=parseInt(a.g+i[1]*n,10),c=parseInt(a.b+i[2]*n,10);o.push(new r(s,l,c))}return o}const c=function(e){e||(e=6);var a=new r(182,70,157),t=new r(221,203,85),o=new r(0,130,201),i=l(e,a,t),n=l(e,t,o),s=l(e,o,a);return i.concat(n).concat(s)},m=require(\"vue-material-design-icons/ArrowLeft.vue\");var d=t.n(m);const u=require(\"vue-material-design-icons/Check.vue\");var p=t.n(u);const h=require(\"vue-material-design-icons/DotsHorizontal.vue\");var g=t.n(h);const v=require(\"vue-color\");var k=function(e){var a=e.toString(16);return 1===a.length?\"0\"+a:a};const y={name:\"NcColorPicker\",components:{ArrowLeft:d(),Check:p(),Chrome:v.Chrome,DotsHorizontal:g(),NcButton:e.default,NcPopover:a.default},props:{value:{type:String,required:!0},advancedFields:{type:Boolean,default:!1},palette:{type:Array,default:function(){return c(4).map((function(e){return\"#\"+k(e.r)+k(e.g)+k(e.b)}))},validator:function(e){return e.every((function(e){return/^#([a-f0-9]{3}|[a-f0-9]{6})$/i.test(e)}))}}},emits:[\"submit\",\"close\",\"update:open\",\"update:value\",\"input\"],data:function(){return{currentColor:this.value,advanced:!1,ariaBack:s(\"Back\"),ariaMore:s(\"More options\")}},watch:{value:function(e){this.currentColor=e}},methods:{t:s,handleConfirm:function(){this.$emit(\"submit\",this.currentColor),this.handleClose(),this.advanced=!1},handleClose:function(){this.$emit(\"close\"),this.$emit(\"update:open\",!1)},handleBack:function(){this.advanced=!1},handleMoreSettings:function(){this.advanced=!0},pickColor:function(e){\"string\"!=typeof e&&(e=this.currentColor.hex),this.currentColor=e,this.$emit(\"update:value\",e),this.$emit(\"input\",e)}}};var A=t(3379),f=t.n(A),C=t(7795),P=t.n(C),S=t(569),w=t.n(S),b=t(3565),N=t.n(b),j=t(9216),O=t.n(j),E=t(4589),x=t.n(E),z=t(3246),F={};F.styleTagTransform=x(),F.setAttributes=N(),F.insert=w().bind(null,\"head\"),F.domAPI=P(),F.insertStyleElement=O();f()(z.Z,F);z.Z&&z.Z.locals&&z.Z.locals;var B=t(1900),M=t(1554),T=t.n(M),G=(0,B.Z)(y,(function(){var e=this,a=e._self._c;return a(\"NcPopover\",e._g(e._b({on:{\"apply-hide\":e.handleClose},scopedSlots:e._u([{key:\"trigger\",fn:function(){return[e._t(\"default\")]},proxy:!0}],null,!0)},\"NcPopover\",e.$attrs,!1),e.$listeners),[e._v(\" \"),a(\"div\",{staticClass:\"color-picker\",class:{\"color-picker--advanced-fields\":e.advanced&&e.advancedFields}},[a(\"transition\",{attrs:{name:\"slide\",mode:\"out-in\"}},[e.advanced?e._e():a(\"div\",{staticClass:\"color-picker__simple\"},e._l(e.palette,(function(t,o){return a(\"button\",{key:o,staticClass:\"color-picker__simple-color-circle\",class:{\"color-picker__simple-color-circle--active\":t===e.currentColor},style:{\"background-color\":t},attrs:{type:\"button\"},on:{click:function(a){return e.pickColor(t)}}},[t===e.currentColor?a(\"Check\",{attrs:{size:20}}):e._e()],1)})),0),e._v(\" \"),e.advanced?a(\"Chrome\",{staticClass:\"color-picker__advanced\",attrs:{\"disable-alpha\":!0,\"disable-fields\":!e.advancedFields},on:{input:e.pickColor},model:{value:e.currentColor,callback:function(a){e.currentColor=a},expression:\"currentColor\"}}):e._e()],1),e._v(\" \"),a(\"div\",{staticClass:\"color-picker__navigation\"},[e.advanced?a(\"NcButton\",{attrs:{type:\"tertiary\",\"aria-label\":e.ariaBack},on:{click:e.handleBack},scopedSlots:e._u([{key:\"icon\",fn:function(){return[a(\"ArrowLeft\",{attrs:{size:20}})]},proxy:!0}],null,!1,1821202730)}):e._e(),e._v(\" \"),e.advanced?e._e():a(\"NcButton\",{attrs:{type:\"tertiary\",\"aria-label\":e.ariaMore},on:{click:e.handleMoreSettings},scopedSlots:e._u([{key:\"icon\",fn:function(){return[a(\"DotsHorizontal\",{attrs:{size:20}})]},proxy:!0}],null,!1,1056868794)}),e._v(\" \"),e.advanced?a(\"NcButton\",{attrs:{type:\"primary\"},on:{click:e.handleConfirm}},[e._v(\"\\n\\t\\t\\t\\t\"+e._s(e.t(\"Choose\"))+\"\\n\\t\\t\\t\")]):e._e()],1)],1)])}),[],!1,null,\"6cccc0ac\",null);\"function\"==typeof T()&&T()(G);const R=G.exports})(),o})()));\n//# sourceMappingURL=NcColorPicker.js.map","/**\n * @copyright 2022 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport const refreshStyles = () => {\n\t// Refresh server-side generated theming CSS\n\t[...document.head.querySelectorAll('link.theme')].forEach(theme => {\n\t\tconst url = new URL(theme.href)\n\t\turl.searchParams.set('v', Date.now())\n\t\tconst newTheme = theme.cloneNode()\n\t\tnewTheme.href = url.toString()\n\t\tnewTheme.onload = () => theme.remove()\n\t\tdocument.head.append(newTheme)\n\t})\n}\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageEdit.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageEdit.vue?vue&type=script&lang=js&\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon image-edit-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ImageEditIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./ImageEdit.vue?vue&type=template&id=7bb2aa9c&\"\nimport script from \"./ImageEdit.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageEdit.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon image-edit-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n -\n - @author Christopher Ng <chrng8@gmail.com>\n - @author Greta Doci <gretadoci@gmail.com>\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div class=\"background-selector\" data-user-theming-background-settings>\n\t\t<!-- Custom background -->\n\t\t<button class=\"background background__filepicker\"\n\t\t\t:class=\"{ 'icon-loading': loading === 'custom', 'background--active': backgroundImage === 'custom' }\"\n\t\t\t:data-color-bright=\"invertTextColor(Theming.color)\"\n\t\t\tdata-user-theming-background-custom\n\t\t\ttabindex=\"0\"\n\t\t\t@click=\"pickFile\">\n\t\t\t{{ t('theming', 'Custom background') }}\n\t\t\t<ImageEdit v-if=\"backgroundImage !== 'custom'\" :size=\"26\" />\n\t\t\t<Check :size=\"44\" />\n\t\t</button>\n\n\t\t<!-- Default background -->\n\t\t<button class=\"background background__default\"\n\t\t\t:class=\"{ 'icon-loading': loading === 'default', 'background--active': backgroundImage === 'default' }\"\n\t\t\t:data-color-bright=\"invertTextColor(Theming.defaultColor)\"\n\t\t\t:style=\"{ '--border-color': Theming.defaultColor }\"\n\t\t\tdata-user-theming-background-default\n\t\t\ttabindex=\"0\"\n\t\t\t@click=\"setDefault\">\n\t\t\t{{ t('theming', 'Default background') }}\n\t\t\t<Check :size=\"44\" />\n\t\t</button>\n\n\t\t<!-- Custom color picker -->\n\t\t<NcColorPicker v-model=\"Theming.color\" @input=\"debouncePickColor\">\n\t\t\t<button class=\"background background__color\"\n\t\t\t\t:data-color=\"Theming.color\"\n\t\t\t\t:data-color-bright=\"invertTextColor(Theming.color)\"\n\t\t\t\t:style=\"{ backgroundColor: Theming.color, '--border-color': Theming.color}\"\n\t\t\t\tdata-user-theming-background-color\n\t\t\t\ttabindex=\"0\">\n\t\t\t\t{{ t('theming', 'Change color') }}\n\t\t\t</button>\n\t\t</NcColorPicker>\n\n\t\t<!-- Remove background -->\n\t\t<button class=\"background background__delete\"\n\t\t\t:class=\"{ 'background--active': isBackgroundDisabled }\"\n\t\t\tdata-user-theming-background-clear\n\t\t\ttabindex=\"0\"\n\t\t\t@click=\"removeBackground\">\n\t\t\t{{ t('theming', 'No background') }}\n\t\t\t<Close v-if=\"!isBackgroundDisabled\" :size=\"32\" />\n\t\t\t<Check :size=\"44\" />\n\t\t</button>\n\n\t\t<!-- Background set selection -->\n\t\t<button v-for=\"shippedBackground in shippedBackgrounds\"\n\t\t\t:key=\"shippedBackground.name\"\n\t\t\t:title=\"shippedBackground.details.attribution\"\n\t\t\t:aria-label=\"shippedBackground.details.attribution\"\n\t\t\t:class=\"{ 'icon-loading': loading === shippedBackground.name, 'background--active': backgroundImage === shippedBackground.name }\"\n\t\t\t:data-color-bright=\"shippedBackground.details.theming === 'dark'\"\n\t\t\t:data-user-theming-background-shipped=\"shippedBackground.name\"\n\t\t\t:style=\"{ backgroundImage: 'url(' + shippedBackground.preview + ')', '--border-color': shippedBackground.details.primary_color }\"\n\t\t\tclass=\"background background__shipped\"\n\t\t\ttabindex=\"0\"\n\t\t\t@click=\"setShipped(shippedBackground.name)\">\n\t\t\t<Check :size=\"44\" />\n\t\t</button>\n\t</div>\n</template>\n\n<script>\nimport { generateFilePath, generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getFilePickerBuilder, showError } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { Palette } from 'node-vibrant/lib/color.js'\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport NcColorPicker from '@nextcloud/vue/dist/Components/NcColorPicker.js'\nimport Vibrant from 'node-vibrant'\n\nimport Check from 'vue-material-design-icons/Check.vue'\nimport Close from 'vue-material-design-icons/Close.vue'\nimport ImageEdit from 'vue-material-design-icons/ImageEdit.vue'\n\nconst backgroundImage = loadState('theming', 'backgroundImage')\nconst shippedBackgroundList = loadState('theming', 'shippedBackgrounds')\nconst themingDefaultBackground = loadState('theming', 'themingDefaultBackground')\nconst defaultShippedBackground = loadState('theming', 'defaultShippedBackground')\n\nconst prefixWithBaseUrl = (url) => generateFilePath('theming', '', 'img/background/') + url\n\nexport default {\n\tname: 'BackgroundSettings',\n\n\tcomponents: {\n\t\tCheck,\n\t\tClose,\n\t\tImageEdit,\n\t\tNcColorPicker,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tTheming: loadState('theming', 'data', {}),\n\n\t\t\t// User background image and color settings\n\t\t\tbackgroundImage,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tshippedBackgrounds() {\n\t\t\treturn Object.keys(shippedBackgroundList)\n\t\t\t\t.map(fileName => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: fileName,\n\t\t\t\t\t\turl: prefixWithBaseUrl(fileName),\n\t\t\t\t\t\tpreview: prefixWithBaseUrl('preview/' + fileName),\n\t\t\t\t\t\tdetails: shippedBackgroundList[fileName],\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.filter(background => {\n\t\t\t\t\t// If the admin did not changed the global background\n\t\t\t\t\t// let's hide the default background to not show it twice\n\t\t\t\t\tif (!this.isGlobalBackgroundDeleted && !this.isGlobalBackgroundDefault) {\n\t\t\t\t\t\treturn background.name !== defaultShippedBackground\n\t\t\t\t\t}\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t},\n\n\t\tisGlobalBackgroundDefault() {\n\t\t\treturn !!themingDefaultBackground\n\t\t},\n\n\t\tisGlobalBackgroundDeleted() {\n\t\t\treturn themingDefaultBackground === 'backgroundColor'\n\t\t},\n\n\t\tisBackgroundDisabled() {\n\t\t\treturn this.backgroundImage === 'disabled'\n\t\t\t|| !this.backgroundImage\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Do we need to invert the text if color is too bright?\n\t\t *\n\t\t * @param {string} color the hex color\n\t\t */\n\t\tinvertTextColor(color) {\n\t\t\treturn this.calculateLuma(color) > 0.6\n\t\t},\n\n\t\t/**\n\t\t * Calculate luminance of provided hex color\n\t\t *\n\t\t * @param {string} color the hex color\n\t\t */\n\t\tcalculateLuma(color) {\n\t\t\tconst [red, green, blue] = this.hexToRGB(color)\n\t\t\treturn (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255\n\t\t},\n\n\t\t/**\n\t\t * Convert hex color to RGB\n\t\t *\n\t\t * @param {string} hex the hex color\n\t\t */\n\t\thexToRGB(hex) {\n\t\t\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\t\t\treturn result\n\t\t\t\t? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)]\n\t\t\t\t: null\n\t\t},\n\n\t\t/**\n\t\t * Update local state\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.backgroundColor background color value\n\t\t * @param {string} data.backgroundImage background image value\n\t\t * @param {string} data.version cache buster number\n\t\t * @see https://github.com/nextcloud/server/blob/c78bd45c64d9695724fc44fe8453a88824b85f2f/apps/theming/lib/Controller/UserThemeController.php#L187-L191\n\t\t */\n\t\tasync update(data) {\n\t\t\t// Update state\n\t\t\tthis.backgroundImage = data.backgroundImage\n\t\t\tthis.Theming.color = data.backgroundColor\n\n\t\t\t// Notify parent and reload style\n\t\t\tthis.$emit('update:background')\n\t\t\tthis.loading = false\n\t\t},\n\n\t\tasync setDefault() {\n\t\t\tthis.loading = 'default'\n\t\t\tconst result = await axios.post(generateUrl('/apps/theming/background/default'))\n\t\t\tthis.update(result.data)\n\t\t},\n\n\t\tasync setShipped(shipped) {\n\t\t\tthis.loading = shipped\n\t\t\tconst result = await axios.post(generateUrl('/apps/theming/background/shipped'), { value: shipped })\n\t\t\tthis.update(result.data)\n\t\t},\n\n\t\tasync setFile(path, color = null) {\n\t\t\tthis.loading = 'custom'\n\t\t\tconst result = await axios.post(generateUrl('/apps/theming/background/custom'), { value: path, color })\n\t\t\tthis.update(result.data)\n\t\t},\n\n\t\tasync removeBackground() {\n\t\t\tthis.loading = 'remove'\n\t\t\tconst result = await axios.delete(generateUrl('/apps/theming/background/custom'))\n\t\t\tthis.update(result.data)\n\t\t},\n\n\t\tasync pickColor(event) {\n\t\t\tthis.loading = 'color'\n\t\t\tconst color = event?.target?.dataset?.color || this.Theming?.color || '#0082c9'\n\t\t\tconst result = await axios.post(generateUrl('/apps/theming/background/color'), { color })\n\t\t\tthis.update(result.data)\n\t\t},\n\t\tdebouncePickColor: debounce(function(...args) {\n\t\t\tthis.pickColor(...args)\n\t\t}, 200),\n\n\t\tpickFile() {\n\t\t\tconst picker = getFilePickerBuilder(t('theming', 'Select a background from your files'))\n\t\t\t\t.allowDirectories(false)\n\t\t\t\t.setMimeTypeFilter(['image/png', 'image/gif', 'image/jpeg', 'image/svg+xml', 'image/svg'])\n\t\t\t\t.setMultiSelect(false)\n\t\t\t\t.addButton({\n\t\t\t\t\tid: 'select',\n\t\t\t\t\tlabel: t('theming', 'Select background'),\n\t\t\t\t\tcallback: (nodes) => {\n\t\t\t\t\t\tthis.applyFile(nodes[0]?.path)\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'primary',\n\t\t\t\t})\n\t\t\t\t.build()\n\t\t\tpicker.pick()\n\t\t},\n\n\t\tasync applyFile(path) {\n\t\t\tif (!path || typeof path !== 'string' || path.trim().length === 0 || path === '/') {\n\t\t\t\tconsole.error('No valid background have been selected', { path })\n\t\t\t\tshowError(t('theming', 'No background have been selected'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = 'custom'\n\n\t\t\t// Extract primary color from image\n\t\t\tlet response = null\n\t\t\tlet color = null\n\t\t\ttry {\n\t\t\t\tconst fileUrl = generateRemoteUrl('dav/files/' + getCurrentUser().uid + path)\n\t\t\t\tresponse = await axios.get(fileUrl, { responseType: 'blob' })\n\t\t\t\tconst blobUrl = URL.createObjectURL(response.data)\n\t\t\t\tconst palette = await this.getColorPaletteFromBlob(blobUrl)\n\n\t\t\t\t// DarkVibrant is accessible AND visually pleasing\n\t\t\t\t// Vibrant is not accessible enough and others are boring\n\t\t\t\tcolor = palette?.DarkVibrant?.hex\n\t\t\t\tthis.setFile(path, color)\n\n\t\t\t\t// Log data\n\t\t\t\tconsole.debug('Extracted colour', color, 'from custom image', path, palette)\n\t\t\t} catch (error) {\n\t\t\t\tthis.setFile(path)\n\t\t\t\tconsole.error('Unable to extract colour from custom image', { error, path, response, color })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Extract a Vibrant color palette from a blob URL\n\t\t *\n\t\t * @param {string} blobUrl the blob URL\n\t\t * @return {Promise<Palette>}\n\t\t */\n\t\tgetColorPaletteFromBlob(blobUrl) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst vibrant = new Vibrant(blobUrl)\n\t\t\t\tvibrant.getPalette((error, palette) => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(palette)\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background-selector {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\n\t.background {\n\t\toverflow: hidden;\n\t\twidth: 176px;\n\t\theight: 96px;\n\t\tmargin: 8px;\n\t\ttext-align: center;\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-position: center center;\n\t\tbackground-size: cover;\n\n\t\t&__filepicker {\n\t\t\t&.background--active {\n\t\t\t\tcolor: white;\n\t\t\t\tbackground-image: var(--image-background);\n\t\t\t}\n\t\t}\n\n\t\t&__default {\n\t\t\tbackground-color: var(--color-primary-default);\n\t\t\tbackground-image: var(--image-background-plain, var(--image-background-default));\n\t\t}\n\n\t\t&__filepicker, &__default, &__color {\n\t\t\tborder-color: var(--color-border);\n\t\t}\n\n\t\t&__color {\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tbackground-color: var(--color-primary-default);\n\t\t}\n\n\t\t// Over a background image\n\t\t&__default,\n\t\t&__shipped {\n\t\t\tcolor: white;\n\t\t}\n\n\t\t// Text and svg icon dark on bright background\n\t\t&[data-color-bright] {\n\t\t\tcolor: black;\n\t\t}\n\n\t\t&--active,\n\t\t&:hover,\n\t\t&:focus {\n\t\t\t// Use theme color primary, see inline css variable in template\n\t\t\tborder: 2px solid var(--border-color, var(--color-primary-element)) !important;\n\t\t}\n\n\t\t// Icon\n\t\tspan {\n\t\t\tmargin: 4px;\n\t\t}\n\n\t\t.check-icon {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&--active:not(.icon-loading) {\n\t\t\t.check-icon {\n\t\t\t\t// Show checkmark\n\t\t\t\tdisplay: block !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=style&index=0&id=1f090252&prod&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=style&index=0&id=1f090252&prod&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BackgroundSettings.vue?vue&type=template&id=1f090252&scoped=true&\"\nimport script from \"./BackgroundSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./BackgroundSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BackgroundSettings.vue?vue&type=style&index=0&id=1f090252&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f090252\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"background-selector\",attrs:{\"data-user-theming-background-settings\":\"\"}},[_c('button',{staticClass:\"background background__filepicker\",class:{ 'icon-loading': _vm.loading === 'custom', 'background--active': _vm.backgroundImage === 'custom' },attrs:{\"data-color-bright\":_vm.invertTextColor(_vm.Theming.color),\"data-user-theming-background-custom\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.pickFile}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Custom background'))+\"\\n\\t\\t\"),(_vm.backgroundImage !== 'custom')?_c('ImageEdit',{attrs:{\"size\":26}}):_vm._e(),_vm._v(\" \"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_c('button',{staticClass:\"background background__default\",class:{ 'icon-loading': _vm.loading === 'default', 'background--active': _vm.backgroundImage === 'default' },style:({ '--border-color': _vm.Theming.defaultColor }),attrs:{\"data-color-bright\":_vm.invertTextColor(_vm.Theming.defaultColor),\"data-user-theming-background-default\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.setDefault}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Default background'))+\"\\n\\t\\t\"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_c('NcColorPicker',{on:{\"input\":_vm.debouncePickColor},model:{value:(_vm.Theming.color),callback:function ($$v) {_vm.$set(_vm.Theming, \"color\", $$v)},expression:\"Theming.color\"}},[_c('button',{staticClass:\"background background__color\",style:({ backgroundColor: _vm.Theming.color, '--border-color': _vm.Theming.color}),attrs:{\"data-color\":_vm.Theming.color,\"data-color-bright\":_vm.invertTextColor(_vm.Theming.color),\"data-user-theming-background-color\":\"\",\"tabindex\":\"0\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Change color'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('button',{staticClass:\"background background__delete\",class:{ 'background--active': _vm.isBackgroundDisabled },attrs:{\"data-user-theming-background-clear\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.removeBackground}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'No background'))+\"\\n\\t\\t\"),(!_vm.isBackgroundDisabled)?_c('Close',{attrs:{\"size\":32}}):_vm._e(),_vm._v(\" \"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_vm._l((_vm.shippedBackgrounds),function(shippedBackground){return _c('button',{key:shippedBackground.name,staticClass:\"background background__shipped\",class:{ 'icon-loading': _vm.loading === shippedBackground.name, 'background--active': _vm.backgroundImage === shippedBackground.name },style:({ backgroundImage: 'url(' + shippedBackground.preview + ')', '--border-color': shippedBackground.details.primary_color }),attrs:{\"title\":shippedBackground.details.attribution,\"aria-label\":shippedBackground.details.attribution,\"data-color-bright\":shippedBackground.details.theming === 'dark',\"data-user-theming-background-shipped\":shippedBackground.name,\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.setShipped(shippedBackground.name)}}},[_c('Check',{attrs:{\"size\":44}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.vue?vue&type=script&lang=js&\"","<template>\n\t<div :class=\"'theming__preview--' + theme.id\" class=\"theming__preview\">\n\t\t<div class=\"theming__preview-image\" :style=\"{ backgroundImage: 'url(' + img + ')' }\" @click=\"onToggle\" />\n\t\t<div class=\"theming__preview-description\">\n\t\t\t<h3>{{ theme.title }}</h3>\n\t\t\t<p class=\"theming__preview-explanation\">{{ theme.description }}</p>\n\t\t\t<span v-if=\"enforced\" class=\"theming__preview-warning\" role=\"note\">\n\t\t\t\t{{ t('theming', 'Theme selection is enforced') }}\n\t\t\t</span>\n\t\t\t<NcCheckboxRadioSwitch class=\"theming__preview-toggle\"\n\t\t\t\t:checked.sync=\"checked\"\n\t\t\t\t:disabled=\"enforced\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:type=\"switchType\">\n\t\t\t\t{{ theme.enableLabel }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { generateFilePath } from '@nextcloud/router'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\n\nexport default {\n\tname: 'ItemPreview',\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t},\n\tprops: {\n\t\tenforced: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tselected: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\ttheme: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tunique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tswitchType() {\n\t\t\treturn this.unique ? 'switch' : 'radio'\n\t\t},\n\n\t\tname() {\n\t\t\treturn !this.unique ? this.type : null\n\t\t},\n\n\t\timg() {\n\t\t\treturn generateFilePath('theming', 'img', this.theme.id + '.jpg')\n\t\t},\n\n\t\tchecked: {\n\t\t\tget() {\n\t\t\t\treturn this.selected\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tconsole.debug('Changed theme', this.theme.id, checked)\n\n\t\t\t\t// If this is a radio, we can only enable\n\t\t\t\tif (!this.unique) {\n\t\t\t\t\tthis.$emit('change', { enabled: true, id: this.theme.id })\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// If this is a switch, we can disable the theme\n\t\t\t\tthis.$emit('change', { enabled: checked === true, id: this.theme.id })\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonToggle() {\n\t\t\tif (this.switchType === 'radio') {\n\t\t\t\tthis.checked = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Invert state\n\t\t\tthis.checked = !this.checked\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n@use 'sass:math';\n\n.theming__preview {\n\t// We make previews on 16/10 screens\n\t--ratio: 16;\n\n\tposition: relative;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\tmax-width: 800px;\n\n\t&,\n\t* {\n\t\tuser-select: none;\n\t}\n\n\t&-image {\n\t\tflex-basis: calc(16px * var(--ratio));\n\t\tflex-shrink: 0;\n\t\theight: calc(10px * var(--ratio));\n\t\tmargin-right: var(--gap);\n\t\tcursor: pointer;\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: top left;\n\t\tbackground-size: cover;\n\t}\n\n\t&-explanation {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t&-description {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\tlabel {\n\t\t\tpadding: 12px 0;\n\t\t}\n\t}\n\n\t&--default {\n\t\tgrid-column: span 2;\n\t}\n\n\t&-warning {\n\t\tcolor: var(--color-warning);\n\t}\n}\n\n@media (max-width: math.div(1024px, 1.5)) {\n\t.theming__preview {\n\t\tflex-direction: column;\n\n\t\t&-image {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n}\n\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ItemPreview.vue?vue&type=template&id=1a08e35a&scoped=true&\"\nimport script from \"./ItemPreview.vue?vue&type=script&lang=js&\"\nexport * from \"./ItemPreview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a08e35a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"theming__preview\",class:'theming__preview--' + _vm.theme.id},[_c('div',{staticClass:\"theming__preview-image\",style:({ backgroundImage: 'url(' + _vm.img + ')' }),on:{\"click\":_vm.onToggle}}),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-description\"},[_c('h3',[_vm._v(_vm._s(_vm.theme.title))]),_vm._v(\" \"),_c('p',{staticClass:\"theming__preview-explanation\"},[_vm._v(_vm._s(_vm.theme.description))]),_vm._v(\" \"),(_vm.enforced)?_c('span',{staticClass:\"theming__preview-warning\",attrs:{\"role\":\"note\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Theme selection is enforced'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{staticClass:\"theming__preview-toggle\",attrs:{\"checked\":_vm.checked,\"disabled\":_vm.enforced,\"name\":_vm.name,\"type\":_vm.switchType},on:{\"update:checked\":function($event){_vm.checked=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.theme.enableLabel)+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n - @copyright Copyright (c) 2022 Greta Doci <gretadoci@gmail.com>\n -\n - @author Christopher Ng <chrng8@gmail.com>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n-->\n\n<template>\n\t<section>\n\t\t<NcSettingsSection :name=\"t('theming', 'Appearance and accessibility')\"\n\t\t\t:limit-width=\"false\"\n\t\t\tclass=\"theming\">\n\t\t\t<p v-html=\"description\" />\n\t\t\t<p v-html=\"descriptionDetail\" />\n\n\t\t\t<div class=\"theming__preview-list\">\n\t\t\t\t<ItemPreview v-for=\"theme in themes\"\n\t\t\t\t\t:key=\"theme.id\"\n\t\t\t\t\t:enforced=\"theme.id === enforceTheme\"\n\t\t\t\t\t:selected=\"selectedTheme.id === theme.id\"\n\t\t\t\t\t:theme=\"theme\"\n\t\t\t\t\t:unique=\"themes.length === 1\"\n\t\t\t\t\ttype=\"theme\"\n\t\t\t\t\t@change=\"changeTheme\" />\n\t\t\t</div>\n\n\t\t\t<div class=\"theming__preview-list\">\n\t\t\t\t<ItemPreview v-for=\"theme in fonts\"\n\t\t\t\t\t:key=\"theme.id\"\n\t\t\t\t\t:selected=\"theme.enabled\"\n\t\t\t\t\t:theme=\"theme\"\n\t\t\t\t\t:unique=\"fonts.length === 1\"\n\t\t\t\t\ttype=\"font\"\n\t\t\t\t\t@change=\"changeFont\" />\n\t\t\t</div>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection :name=\"t('theming', 'Keyboard shortcuts')\">\n\t\t\t<p>{{ t('theming', 'In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.') }}</p>\n\t\t\t<NcCheckboxRadioSwitch class=\"theming__preview-toggle\"\n\t\t\t\t:checked.sync=\"shortcutsDisabled\"\n\t\t\t\tname=\"shortcuts_disabled\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\t@change=\"changeShortcutsDisabled\">\n\t\t\t\t{{ t('theming', 'Disable all keyboard shortcuts') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection :name=\"t('theming', 'Background')\"\n\t\t\tclass=\"background\"\n\t\t\tdata-user-theming-background-disabled>\n\t\t\t<template v-if=\"isUserThemingDisabled\">\n\t\t\t\t<p>{{ t('theming', 'Customization has been disabled by your administrator') }}</p>\n\t\t\t</template>\n\t\t\t<template v-else>\n\t\t\t\t<p>{{ t('theming', 'Set a custom background') }}</p>\n\t\t\t\t<BackgroundSettings class=\"background__grid\" @update:background=\"refreshGlobalStyles\" />\n\t\t\t</template>\n\t\t</NcSettingsSection>\n\t</section>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\n\nimport BackgroundSettings from './components/BackgroundSettings.vue'\nimport ItemPreview from './components/ItemPreview.vue'\n\nconst availableThemes = loadState('theming', 'themes', [])\nconst enforceTheme = loadState('theming', 'enforceTheme', '')\nconst shortcutsDisabled = loadState('theming', 'shortcutsDisabled', false)\n\nconst isUserThemingDisabled = loadState('theming', 'isUserThemingDisabled')\n\nconsole.debug('Available themes', availableThemes)\n\nexport default {\n\tname: 'UserThemes',\n\n\tcomponents: {\n\t\tItemPreview,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSettingsSection,\n\t\tBackgroundSettings,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tavailableThemes,\n\n\t\t\t// Admin defined configs\n\t\t\tenforceTheme,\n\t\t\tshortcutsDisabled,\n\t\t\tisUserThemingDisabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tthemes() {\n\t\t\treturn this.availableThemes.filter(theme => theme.type === 1)\n\t\t},\n\n\t\tfonts() {\n\t\t\treturn this.availableThemes.filter(theme => theme.type === 2)\n\t\t},\n\n\t\t// Selected theme, fallback on first (default) if none\n\t\tselectedTheme() {\n\t\t\treturn this.themes.find(theme => theme.enabled === true) || this.themes[0]\n\t\t},\n\n\t\tdescription() {\n\t\t\t// using the `t` replace method escape html, we have to do it manually :/\n\t\t\treturn t(\n\t\t\t\t'theming',\n\t\t\t\t'Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.'\n\t\t\t)\n\t\t\t\t.replace('{guidelines}', this.guidelinesLink)\n\t\t\t\t.replace('{linkend}', '</a>')\n\t\t},\n\n\t\tguidelinesLink() {\n\t\t\treturn '<a target=\"_blank\" href=\"https://www.w3.org/WAI/standards-guidelines/wcag/\" rel=\"noreferrer nofollow\">'\n\t\t},\n\n\t\tdescriptionDetail() {\n\t\t\treturn t(\n\t\t\t\t'theming',\n\t\t\t\t'If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!'\n\t\t\t)\n\t\t\t\t.replace('{issuetracker}', this.issuetrackerLink)\n\t\t\t\t.replace('{designteam}', this.designteamLink)\n\t\t\t\t.replace(/\\{linkend\\}/g, '</a>')\n\t\t},\n\n\t\tissuetrackerLink() {\n\t\t\treturn '<a target=\"_blank\" href=\"https://github.com/nextcloud/server/issues/\" rel=\"noreferrer nofollow\">'\n\t\t},\n\n\t\tdesignteamLink() {\n\t\t\treturn '<a target=\"_blank\" href=\"https://nextcloud.com/design\" rel=\"noreferrer nofollow\">'\n\t\t},\n\t},\n\n\twatch: {\n\t\tshortcutsDisabled(newState) {\n\t\t\tthis.changeShortcutsDisabled(newState)\n\t\t},\n\t},\n\n\tmethods: {\n\t\t// Refresh server-side generated theming CSS\n\t\trefreshGlobalStyles() {\n\t\t\t[...document.head.querySelectorAll('link.theme')].forEach(theme => {\n\t\t\t\tconst url = new URL(theme.href)\n\t\t\t\turl.searchParams.set('v', Date.now())\n\t\t\t\tconst newTheme = theme.cloneNode()\n\t\t\t\tnewTheme.href = url.toString()\n\t\t\t\tnewTheme.onload = () => theme.remove()\n\t\t\t\tdocument.head.append(newTheme)\n\t\t\t})\n\t\t},\n\n\t\tupdateBackground(data) {\n\t\t\tthis.background = (data.type === 'custom' || data.type === 'default') ? data.type : data.value\n\t\t\tthis.refreshGlobalStyles()\n\t\t},\n\n\t\tchangeTheme({ enabled, id }) {\n\t\t\t// Reset selected and select new one\n\t\t\tthis.themes.forEach(theme => {\n\t\t\t\tif (theme.id === id && enabled) {\n\t\t\t\t\ttheme.enabled = true\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttheme.enabled = false\n\t\t\t})\n\n\t\t\tthis.updateBodyAttributes()\n\t\t\tthis.selectItem(enabled, id)\n\t\t},\n\n\t\tchangeFont({ enabled, id }) {\n\t\t\t// Reset selected and select new one\n\t\t\tthis.fonts.forEach(font => {\n\t\t\t\tif (font.id === id && enabled) {\n\t\t\t\t\tfont.enabled = true\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tfont.enabled = false\n\t\t\t})\n\n\t\t\tthis.updateBodyAttributes()\n\t\t\tthis.selectItem(enabled, id)\n\t\t},\n\n\t\tasync changeShortcutsDisabled(newState) {\n\t\t\tif (newState) {\n\t\t\t\tawait axios({\n\t\t\t\t\turl: generateOcsUrl('apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\t\t\t\tappId: 'theming',\n\t\t\t\t\t\tconfigKey: 'shortcuts_disabled',\n\t\t\t\t\t}),\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tconfigValue: 'yes',\n\t\t\t\t\t},\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tawait axios({\n\t\t\t\t\turl: generateOcsUrl('apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\t\t\t\tappId: 'theming',\n\t\t\t\t\t\tconfigKey: 'shortcuts_disabled',\n\t\t\t\t\t}),\n\t\t\t\t\tmethod: 'DELETE',\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tupdateBodyAttributes() {\n\t\t\tconst enabledThemesIDs = this.themes.filter(theme => theme.enabled === true).map(theme => theme.id)\n\t\t\tconst enabledFontsIDs = this.fonts.filter(font => font.enabled === true).map(font => font.id)\n\n\t\t\tthis.themes.forEach(theme => {\n\t\t\t\tdocument.body.toggleAttribute(`data-theme-${theme.id}`, theme.enabled)\n\t\t\t})\n\t\t\tthis.fonts.forEach(font => {\n\t\t\t\tdocument.body.toggleAttribute(`data-theme-${font.id}`, font.enabled)\n\t\t\t})\n\n\t\t\tdocument.body.setAttribute('data-themes', [...enabledThemesIDs, ...enabledFontsIDs].join(','))\n\t\t},\n\n\t\t/**\n\t\t * Commit a change and force reload css\n\t\t * Fetching the file again will trigger the server update\n\t\t *\n\t\t * @param {boolean} enabled the theme state\n\t\t * @param {string} themeId the theme ID to change\n\t\t */\n\t\tasync selectItem(enabled, themeId) {\n\t\t\ttry {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tawait axios({\n\t\t\t\t\t\turl: generateOcsUrl('apps/theming/api/v1/theme/{themeId}/enable', { themeId }),\n\t\t\t\t\t\tmethod: 'PUT',\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tawait axios({\n\t\t\t\t\t\turl: generateOcsUrl('apps/theming/api/v1/theme/{themeId}', { themeId }),\n\t\t\t\t\t\tmethod: 'DELETE',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(err, err.response)\n\t\t\t\tOC.Notification.showTemporary(t('theming', err.response.data.ocs.meta.message + '. Unable to apply the setting.'))\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.theming {\n\t// Limit width of settings sections for readability\n\tp {\n\t\tmax-width: 800px;\n\t}\n\n\t// Proper highlight for links and focus feedback\n\t&::v-deep a {\n\t\tfont-weight: bold;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n\n\t&__preview-list {\n\t\t--gap: 30px;\n\n\t\tdisplay: grid;\n\t\tmargin-top: var(--gap);\n\t\tcolumn-gap: var(--gap);\n\t\trow-gap: var(--gap);\n\t\tgrid-template-columns: 1fr 1fr;\n\t}\n}\n\n.background {\n\t&__grid {\n\t\tmargin-top: 30px;\n\t}\n}\n\n@media (max-width: 1440px) {\n\t.theming__preview-list {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserThemes.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserThemes.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserThemes.vue?vue&type=style&index=0&id=12a60840&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserThemes.vue?vue&type=style&index=0&id=12a60840&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserThemes.vue?vue&type=template&id=12a60840&scoped=true&\"\nimport script from \"./UserThemes.vue?vue&type=script&lang=js&\"\nexport * from \"./UserThemes.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UserThemes.vue?vue&type=style&index=0&id=12a60840&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12a60840\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('NcSettingsSection',{staticClass:\"theming\",attrs:{\"name\":_vm.t('theming', 'Appearance and accessibility'),\"limit-width\":false}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.description)}}),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.descriptionDetail)}}),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-list\"},_vm._l((_vm.themes),function(theme){return _c('ItemPreview',{key:theme.id,attrs:{\"enforced\":theme.id === _vm.enforceTheme,\"selected\":_vm.selectedTheme.id === theme.id,\"theme\":theme,\"unique\":_vm.themes.length === 1,\"type\":\"theme\"},on:{\"change\":_vm.changeTheme}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-list\"},_vm._l((_vm.fonts),function(theme){return _c('ItemPreview',{key:theme.id,attrs:{\"selected\":theme.enabled,\"theme\":theme,\"unique\":_vm.fonts.length === 1,\"type\":\"font\"},on:{\"change\":_vm.changeFont}})}),1)]),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Keyboard shortcuts')}},[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{staticClass:\"theming__preview-toggle\",attrs:{\"checked\":_vm.shortcutsDisabled,\"name\":\"shortcuts_disabled\",\"type\":\"switch\"},on:{\"update:checked\":function($event){_vm.shortcutsDisabled=$event},\"change\":_vm.changeShortcutsDisabled}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Disable all keyboard shortcuts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcSettingsSection',{staticClass:\"background\",attrs:{\"name\":_vm.t('theming', 'Background'),\"data-user-theming-background-disabled\":\"\"}},[(_vm.isUserThemingDisabled)?[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'Customization has been disabled by your administrator')))])]:[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'Set a custom background')))]),_vm._v(\" \"),_c('BackgroundSettings',{staticClass:\"background__grid\",on:{\"update:background\":_vm.refreshGlobalStyles}})]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getRequestToken } from '@nextcloud/auth'\nimport Vue from 'vue'\n\nimport { refreshStyles } from './helpers/refreshStyles.js'\nimport App from './UserThemes.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.OC = OC\nVue.prototype.t = t\n\nconst View = Vue.extend(App)\nconst theming = new View()\ntheming.$mount('#theming')\ntheming.$on('update:background', refreshStyles)\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".theming p[data-v-12a60840]{max-width:800px}.theming[data-v-12a60840] a{font-weight:bold}.theming[data-v-12a60840] a:hover,.theming[data-v-12a60840] a:focus{text-decoration:underline}.theming__preview-list[data-v-12a60840]{--gap: 30px;display:grid;margin-top:var(--gap);column-gap:var(--gap);row-gap:var(--gap);grid-template-columns:1fr 1fr}.background__grid[data-v-12a60840]{margin-top:30px}@media(max-width: 1440px){.theming__preview-list[data-v-12a60840]{display:flex;flex-direction:column}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/UserThemes.vue\"],\"names\":[],\"mappings\":\"AAGC,4BACC,eAAA,CAID,4BACC,gBAAA,CAEA,oEAEC,yBAAA,CAIF,wCACC,WAAA,CAEA,YAAA,CACA,qBAAA,CACA,qBAAA,CACA,kBAAA,CACA,6BAAA,CAKD,mCACC,eAAA,CAIF,0BACC,wCACC,YAAA,CACA,qBAAA,CAAA\",\"sourcesContent\":[\"\\n.theming {\\n\\t// Limit width of settings sections for readability\\n\\tp {\\n\\t\\tmax-width: 800px;\\n\\t}\\n\\n\\t// Proper highlight for links and focus feedback\\n\\t&::v-deep a {\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\ttext-decoration: underline;\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview-list {\\n\\t\\t--gap: 30px;\\n\\n\\t\\tdisplay: grid;\\n\\t\\tmargin-top: var(--gap);\\n\\t\\tcolumn-gap: var(--gap);\\n\\t\\trow-gap: var(--gap);\\n\\t\\tgrid-template-columns: 1fr 1fr;\\n\\t}\\n}\\n\\n.background {\\n\\t&__grid {\\n\\t\\tmargin-top: 30px;\\n\\t}\\n}\\n\\n@media (max-width: 1440px) {\\n\\t.theming__preview-list {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".background-selector[data-v-1f090252]{display:flex;flex-wrap:wrap;justify-content:center}.background-selector .background[data-v-1f090252]{overflow:hidden;width:176px;height:96px;margin:8px;text-align:center;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-position:center center;background-size:cover}.background-selector .background__filepicker.background--active[data-v-1f090252]{color:#fff;background-image:var(--image-background)}.background-selector .background__default[data-v-1f090252]{background-color:var(--color-primary-default);background-image:var(--image-background-plain, var(--image-background-default))}.background-selector .background__filepicker[data-v-1f090252],.background-selector .background__default[data-v-1f090252],.background-selector .background__color[data-v-1f090252]{border-color:var(--color-border)}.background-selector .background__color[data-v-1f090252]{color:var(--color-primary-text);background-color:var(--color-primary-default)}.background-selector .background__default[data-v-1f090252],.background-selector .background__shipped[data-v-1f090252]{color:#fff}.background-selector .background[data-color-bright][data-v-1f090252]{color:#000}.background-selector .background--active[data-v-1f090252],.background-selector .background[data-v-1f090252]:hover,.background-selector .background[data-v-1f090252]:focus{border:2px solid var(--border-color, var(--color-primary-element)) !important}.background-selector .background span[data-v-1f090252]{margin:4px}.background-selector .background .check-icon[data-v-1f090252]{display:none}.background-selector .background--active:not(.icon-loading) .check-icon[data-v-1f090252]{display:block !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/BackgroundSettings.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,cAAA,CACA,sBAAA,CAEA,kDACC,eAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,iCAAA,CACA,qBAAA,CAGC,iFACC,UAAA,CACA,wCAAA,CAIF,2DACC,6CAAA,CACA,+EAAA,CAGD,kLACC,gCAAA,CAGD,yDACC,+BAAA,CACA,6CAAA,CAID,sHAEC,UAAA,CAID,qEACC,UAAA,CAGD,0KAIC,6EAAA,CAID,uDACC,UAAA,CAGD,8DACC,YAAA,CAIA,yFAEC,wBAAA\",\"sourcesContent\":[\"\\n.background-selector {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tjustify-content: center;\\n\\n\\t.background {\\n\\t\\toverflow: hidden;\\n\\t\\twidth: 176px;\\n\\t\\theight: 96px;\\n\\t\\tmargin: 8px;\\n\\t\\ttext-align: center;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-position: center center;\\n\\t\\tbackground-size: cover;\\n\\n\\t\\t&__filepicker {\\n\\t\\t\\t&.background--active {\\n\\t\\t\\t\\tcolor: white;\\n\\t\\t\\t\\tbackground-image: var(--image-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__default {\\n\\t\\t\\tbackground-color: var(--color-primary-default);\\n\\t\\t\\tbackground-image: var(--image-background-plain, var(--image-background-default));\\n\\t\\t}\\n\\n\\t\\t&__filepicker, &__default, &__color {\\n\\t\\t\\tborder-color: var(--color-border);\\n\\t\\t}\\n\\n\\t\\t&__color {\\n\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\tbackground-color: var(--color-primary-default);\\n\\t\\t}\\n\\n\\t\\t// Over a background image\\n\\t\\t&__default,\\n\\t\\t&__shipped {\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t// Text and svg icon dark on bright background\\n\\t\\t&[data-color-bright] {\\n\\t\\t\\tcolor: black;\\n\\t\\t}\\n\\n\\t\\t&--active,\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\t// Use theme color primary, see inline css variable in template\\n\\t\\t\\tborder: 2px solid var(--border-color, var(--color-primary-element)) !important;\\n\\t\\t}\\n\\n\\t\\t// Icon\\n\\t\\tspan {\\n\\t\\t\\tmargin: 4px;\\n\\t\\t}\\n\\n\\t\\t.check-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t&--active:not(.icon-loading) {\\n\\t\\t\\t.check-icon {\\n\\t\\t\\t\\t// Show checkmark\\n\\t\\t\\t\\tdisplay: block !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".theming__preview[data-v-1a08e35a]{--ratio: 16;position:relative;display:flex;justify-content:flex-start;max-width:800px}.theming__preview[data-v-1a08e35a],.theming__preview *[data-v-1a08e35a]{user-select:none}.theming__preview-image[data-v-1a08e35a]{flex-basis:calc(16px*var(--ratio));flex-shrink:0;height:calc(10px*var(--ratio));margin-right:var(--gap);cursor:pointer;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:top left;background-size:cover}.theming__preview-explanation[data-v-1a08e35a]{margin-bottom:10px}.theming__preview-description[data-v-1a08e35a]{display:flex;flex-direction:column}.theming__preview-description h3[data-v-1a08e35a]{font-weight:bold;margin-bottom:0}.theming__preview-description label[data-v-1a08e35a]{padding:12px 0}.theming__preview--default[data-v-1a08e35a]{grid-column:span 2}.theming__preview-warning[data-v-1a08e35a]{color:var(--color-warning)}@media(max-width: 682.6666666667px){.theming__preview[data-v-1a08e35a]{flex-direction:column}.theming__preview-image[data-v-1a08e35a]{margin:0}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/ItemPreview.vue\"],\"names\":[],\"mappings\":\"AAGA,mCAEC,WAAA,CAEA,iBAAA,CACA,YAAA,CACA,0BAAA,CACA,eAAA,CAEA,wEAEC,gBAAA,CAGD,yCACC,kCAAA,CACA,aAAA,CACA,8BAAA,CACA,uBAAA,CACA,cAAA,CACA,kCAAA,CACA,2BAAA,CACA,4BAAA,CACA,qBAAA,CAGD,+CACC,kBAAA,CAGD,+CACC,YAAA,CACA,qBAAA,CAEA,kDACC,gBAAA,CACA,eAAA,CAGD,qDACC,cAAA,CAIF,4CACC,kBAAA,CAGD,2CACC,0BAAA,CAIF,oCACC,mCACC,qBAAA,CAEA,yCACC,QAAA,CAAA\",\"sourcesContent\":[\"\\n@use 'sass:math';\\n\\n.theming__preview {\\n\\t// We make previews on 16/10 screens\\n\\t--ratio: 16;\\n\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tjustify-content: flex-start;\\n\\tmax-width: 800px;\\n\\n\\t&,\\n\\t* {\\n\\t\\tuser-select: none;\\n\\t}\\n\\n\\t&-image {\\n\\t\\tflex-basis: calc(16px * var(--ratio));\\n\\t\\tflex-shrink: 0;\\n\\t\\theight: calc(10px * var(--ratio));\\n\\t\\tmargin-right: var(--gap);\\n\\t\\tcursor: pointer;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: top left;\\n\\t\\tbackground-size: cover;\\n\\t}\\n\\n\\t&-explanation {\\n\\t\\tmargin-bottom: 10px;\\n\\t}\\n\\n\\t&-description {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\th3 {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\n\\t\\tlabel {\\n\\t\\t\\tpadding: 12px 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&--default {\\n\\t\\tgrid-column: span 2;\\n\\t}\\n\\n\\t&-warning {\\n\\t\\tcolor: var(--color-warning);\\n\\t}\\n}\\n\\n@media (max-width: math.div(1024px, 1.5)) {\\n\\t.theming__preview {\\n\\t\\tflex-direction: column;\\n\\n\\t\\t&-image {\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar vibrant_1 = __importDefault(require(\"./vibrant\"));\nvar browser_1 = __importDefault(require(\"./image/browser\"));\nvibrant_1.default.DefaultOpts.ImageClass = browser_1.default;\nmodule.exports = vibrant_1.default;\n//# sourceMappingURL=browser.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar vibrant_1 = __importDefault(require(\"./vibrant\"));\nvar clone = require(\"lodash/clone\");\nvar Builder = /** @class */ (function () {\n function Builder(src, opts) {\n if (opts === void 0) { opts = {}; }\n this._src = src;\n this._opts = opts;\n this._opts.filters = clone(vibrant_1.default.DefaultOpts.filters);\n }\n Builder.prototype.maxColorCount = function (n) {\n this._opts.colorCount = n;\n return this;\n };\n Builder.prototype.maxDimension = function (d) {\n this._opts.maxDimension = d;\n return this;\n };\n Builder.prototype.addFilter = function (f) {\n this._opts.filters.push(f);\n return this;\n };\n Builder.prototype.removeFilter = function (f) {\n var i = this._opts.filters.indexOf(f);\n if (i > 0)\n this._opts.filters.splice(i);\n return this;\n };\n Builder.prototype.clearFilters = function () {\n this._opts.filters = [];\n return this;\n };\n Builder.prototype.quality = function (q) {\n this._opts.quality = q;\n return this;\n };\n Builder.prototype.useImageClass = function (imageClass) {\n this._opts.ImageClass = imageClass;\n return this;\n };\n Builder.prototype.useGenerator = function (generator) {\n this._opts.generator = generator;\n return this;\n };\n Builder.prototype.useQuantizer = function (quantizer) {\n this._opts.quantizer = quantizer;\n return this;\n };\n Builder.prototype.build = function () {\n return new vibrant_1.default(this._src, this._opts);\n };\n Builder.prototype.getPalette = function (cb) {\n return this.build().getPalette(cb);\n };\n Builder.prototype.getSwatches = function (cb) {\n return this.build().getPalette(cb);\n };\n return Builder;\n}());\nexports.default = Builder;\n//# sourceMappingURL=builder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Swatch = void 0;\nvar util_1 = require(\"./util\");\nvar filter = require(\"lodash/filter\");\nvar Swatch = /** @class */ (function () {\n function Swatch(rgb, population) {\n this._rgb = rgb;\n this._population = population;\n }\n Swatch.applyFilter = function (colors, f) {\n return typeof f === 'function'\n ? filter(colors, function (_a) {\n var r = _a.r, g = _a.g, b = _a.b;\n return f(r, g, b, 255);\n })\n : colors;\n };\n Object.defineProperty(Swatch.prototype, \"r\", {\n get: function () { return this._rgb[0]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"g\", {\n get: function () { return this._rgb[1]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"b\", {\n get: function () { return this._rgb[2]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"rgb\", {\n get: function () { return this._rgb; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"hsl\", {\n get: function () {\n if (!this._hsl) {\n var _a = this._rgb, r = _a[0], g = _a[1], b = _a[2];\n this._hsl = util_1.rgbToHsl(r, g, b);\n }\n return this._hsl;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"hex\", {\n get: function () {\n if (!this._hex) {\n var _a = this._rgb, r = _a[0], g = _a[1], b = _a[2];\n this._hex = util_1.rgbToHex(r, g, b);\n }\n return this._hex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"population\", {\n get: function () { return this._population; },\n enumerable: false,\n configurable: true\n });\n Swatch.prototype.toJSON = function () {\n return {\n rgb: this.rgb,\n population: this.population\n };\n };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getRgb = function () { return this._rgb; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getHsl = function () { return this.hsl; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getPopulation = function () { return this._population; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getHex = function () { return this.hex; };\n Swatch.prototype.getYiq = function () {\n if (!this._yiq) {\n var rgb = this._rgb;\n this._yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n }\n return this._yiq;\n };\n Object.defineProperty(Swatch.prototype, \"titleTextColor\", {\n get: function () {\n if (!this._titleTextColor) {\n this._titleTextColor = this.getYiq() < 200 ? '#fff' : '#000';\n }\n return this._titleTextColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"bodyTextColor\", {\n get: function () {\n if (!this._bodyTextColor) {\n this._bodyTextColor = this.getYiq() < 150 ? '#fff' : '#000';\n }\n return this._bodyTextColor;\n },\n enumerable: false,\n configurable: true\n });\n Swatch.prototype.getTitleTextColor = function () {\n return this.titleTextColor;\n };\n Swatch.prototype.getBodyTextColor = function () {\n return this.bodyTextColor;\n };\n return Swatch;\n}());\nexports.Swatch = Swatch;\n//# sourceMappingURL=color.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction defaultFilter(r, g, b, a) {\n return a >= 125 &&\n !(r > 250 && g > 250 && b > 250);\n}\nexports.default = defaultFilter;\n//# sourceMappingURL=default.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineFilters = void 0;\nvar default_1 = require(\"./default\");\nObject.defineProperty(exports, \"Default\", { enumerable: true, get: function () { return default_1.default; } });\nfunction combineFilters(filters) {\n // TODO: caching\n if (!Array.isArray(filters) || filters.length === 0)\n return null;\n return function (r, g, b, a) {\n if (a === 0)\n return false;\n for (var i = 0; i < filters.length; i++) {\n if (!filters[i](r, g, b, a))\n return false;\n }\n return true;\n };\n}\nexports.combineFilters = combineFilters;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../color\");\nvar util_1 = require(\"../util\");\nvar defaults = require(\"lodash/defaults\");\nvar DefaultOpts = {\n targetDarkLuma: 0.26,\n maxDarkLuma: 0.45,\n minLightLuma: 0.55,\n targetLightLuma: 0.74,\n minNormalLuma: 0.3,\n targetNormalLuma: 0.5,\n maxNormalLuma: 0.7,\n targetMutesSaturation: 0.3,\n maxMutesSaturation: 0.4,\n targetVibrantSaturation: 1.0,\n minVibrantSaturation: 0.35,\n weightSaturation: 3,\n weightLuma: 6.5,\n weightPopulation: 0.5\n};\nfunction _findMaxPopulation(swatches) {\n var p = 0;\n swatches.forEach(function (s) {\n p = Math.max(p, s.getPopulation());\n });\n return p;\n}\nfunction _isAlreadySelected(palette, s) {\n return palette.Vibrant === s ||\n palette.DarkVibrant === s ||\n palette.LightVibrant === s ||\n palette.Muted === s ||\n palette.DarkMuted === s ||\n palette.LightMuted === s;\n}\nfunction _createComparisonValue(saturation, targetSaturation, luma, targetLuma, population, maxPopulation, opts) {\n function weightedMean() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var sum = 0;\n var weightSum = 0;\n for (var i = 0; i < values.length; i += 2) {\n var value = values[i];\n var weight = values[i + 1];\n sum += value * weight;\n weightSum += weight;\n }\n return sum / weightSum;\n }\n function invertDiff(value, targetValue) {\n return 1 - Math.abs(value - targetValue);\n }\n return weightedMean(invertDiff(saturation, targetSaturation), opts.weightSaturation, invertDiff(luma, targetLuma), opts.weightLuma, population / maxPopulation, opts.weightPopulation);\n}\nfunction _findColorVariation(palette, swatches, maxPopulation, targetLuma, minLuma, maxLuma, targetSaturation, minSaturation, maxSaturation, opts) {\n var max = null;\n var maxValue = 0;\n swatches.forEach(function (swatch) {\n var _a = swatch.getHsl(), s = _a[1], l = _a[2];\n if (s >= minSaturation && s <= maxSaturation &&\n l >= minLuma && l <= maxLuma &&\n !_isAlreadySelected(palette, swatch)) {\n var value = _createComparisonValue(s, targetSaturation, l, targetLuma, swatch.getPopulation(), maxPopulation, opts);\n if (max === null || value > maxValue) {\n max = swatch;\n maxValue = value;\n }\n }\n });\n return max;\n}\nfunction _generateVariationColors(swatches, maxPopulation, opts) {\n var palette = {};\n // mVibrantSwatch = findColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.Vibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetNormalLuma, opts.minNormalLuma, opts.maxNormalLuma, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mLightVibrantSwatch = findColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.LightVibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetLightLuma, opts.minLightLuma, 1, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mDarkVibrantSwatch = findColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.DarkVibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetDarkLuma, 0, opts.maxDarkLuma, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mMutedSwatch = findColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.Muted = _findColorVariation(palette, swatches, maxPopulation, opts.targetNormalLuma, opts.minNormalLuma, opts.maxNormalLuma, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n // mLightMutedColor = findColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.LightMuted = _findColorVariation(palette, swatches, maxPopulation, opts.targetLightLuma, opts.minLightLuma, 1, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n // mDarkMutedSwatch = findColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.DarkMuted = _findColorVariation(palette, swatches, maxPopulation, opts.targetDarkLuma, 0, opts.maxDarkLuma, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n return palette;\n}\nfunction _generateEmptySwatches(palette, maxPopulation, opts) {\n if (palette.Vibrant === null && palette.DarkVibrant === null && palette.LightVibrant === null) {\n if (palette.DarkVibrant === null && palette.DarkMuted !== null) {\n var _a = palette.DarkMuted.getHsl(), h = _a[0], s = _a[1], l = _a[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightVibrant === null && palette.LightMuted !== null) {\n var _b = palette.LightMuted.getHsl(), h = _b[0], s = _b[1], l = _b[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n }\n if (palette.Vibrant === null && palette.DarkVibrant !== null) {\n var _c = palette.DarkVibrant.getHsl(), h = _c[0], s = _c[1], l = _c[2];\n l = opts.targetNormalLuma;\n palette.Vibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n else if (palette.Vibrant === null && palette.LightVibrant !== null) {\n var _d = palette.LightVibrant.getHsl(), h = _d[0], s = _d[1], l = _d[2];\n l = opts.targetNormalLuma;\n palette.Vibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.DarkVibrant === null && palette.Vibrant !== null) {\n var _e = palette.Vibrant.getHsl(), h = _e[0], s = _e[1], l = _e[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightVibrant === null && palette.Vibrant !== null) {\n var _f = palette.Vibrant.getHsl(), h = _f[0], s = _f[1], l = _f[2];\n l = opts.targetLightLuma;\n palette.LightVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.Muted === null && palette.Vibrant !== null) {\n var _g = palette.Vibrant.getHsl(), h = _g[0], s = _g[1], l = _g[2];\n l = opts.targetMutesSaturation;\n palette.Muted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.DarkMuted === null && palette.DarkVibrant !== null) {\n var _h = palette.DarkVibrant.getHsl(), h = _h[0], s = _h[1], l = _h[2];\n l = opts.targetMutesSaturation;\n palette.DarkMuted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightMuted === null && palette.LightVibrant !== null) {\n var _j = palette.LightVibrant.getHsl(), h = _j[0], s = _j[1], l = _j[2];\n l = opts.targetMutesSaturation;\n palette.LightMuted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n}\nvar DefaultGenerator = function (swatches, opts) {\n opts = defaults({}, opts, DefaultOpts);\n var maxPopulation = _findMaxPopulation(swatches);\n var palette = _generateVariationColors(swatches, maxPopulation, opts);\n _generateEmptySwatches(palette, maxPopulation, opts);\n return palette;\n};\nexports.default = DefaultGenerator;\n//# sourceMappingURL=default.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar default_1 = require(\"./default\");\nObject.defineProperty(exports, \"Default\", { enumerable: true, get: function () { return default_1.default; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageBase = void 0;\nvar ImageBase = /** @class */ (function () {\n function ImageBase() {\n }\n ImageBase.prototype.scaleDown = function (opts) {\n var width = this.getWidth();\n var height = this.getHeight();\n var ratio = 1;\n if (opts.maxDimension > 0) {\n var maxSide = Math.max(width, height);\n if (maxSide > opts.maxDimension)\n ratio = opts.maxDimension / maxSide;\n }\n else {\n ratio = 1 / opts.quality;\n }\n if (ratio < 1)\n this.resize(width * ratio, height * ratio, ratio);\n };\n ImageBase.prototype.applyFilter = function (filter) {\n var imageData = this.getImageData();\n if (typeof filter === 'function') {\n var pixels = imageData.data;\n var n = pixels.length / 4;\n var offset = void 0, r = void 0, g = void 0, b = void 0, a = void 0;\n for (var i = 0; i < n; i++) {\n offset = i * 4;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n // Mark ignored color\n if (!filter(r, g, b, a))\n pixels[offset + 3] = 0;\n }\n }\n return Promise.resolve(imageData);\n };\n return ImageBase;\n}());\nexports.ImageBase = ImageBase;\n//# sourceMappingURL=base.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar base_1 = require(\"./base\");\nvar Url = __importStar(require(\"url\"));\nfunction isRelativeUrl(url) {\n var u = Url.parse(url);\n return u.protocol === null &&\n u.host === null &&\n u.port === null;\n}\nfunction isSameOrigin(a, b) {\n var ua = Url.parse(a);\n var ub = Url.parse(b);\n // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n return ua.protocol === ub.protocol &&\n ua.hostname === ub.hostname &&\n ua.port === ub.port;\n}\nvar BrowserImage = /** @class */ (function (_super) {\n __extends(BrowserImage, _super);\n function BrowserImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BrowserImage.prototype._initCanvas = function () {\n var img = this.image;\n var canvas = this._canvas = document.createElement('canvas');\n var context = this._context = canvas.getContext('2d');\n canvas.className = 'vibrant-canvas';\n canvas.style.display = 'none';\n this._width = canvas.width = img.width;\n this._height = canvas.height = img.height;\n context.drawImage(img, 0, 0);\n document.body.appendChild(canvas);\n };\n BrowserImage.prototype.load = function (image) {\n var _this = this;\n var img = null;\n var src = null;\n if (typeof image === 'string') {\n img = document.createElement('img');\n if (!isRelativeUrl(image) && !isSameOrigin(window.location.href, image)) {\n img.crossOrigin = 'anonymous';\n }\n src = img.src = image;\n }\n else if (image instanceof HTMLImageElement) {\n img = image;\n src = image.src;\n }\n else {\n return Promise.reject(new Error(\"Cannot load buffer as an image in browser\"));\n }\n this.image = img;\n return new Promise(function (resolve, reject) {\n var onImageLoad = function () {\n _this._initCanvas();\n resolve(_this);\n };\n if (img.complete) {\n // Already loaded\n onImageLoad();\n }\n else {\n img.onload = onImageLoad;\n img.onerror = function (e) { return reject(new Error(\"Fail to load image: \" + src)); };\n }\n });\n };\n BrowserImage.prototype.clear = function () {\n this._context.clearRect(0, 0, this._width, this._height);\n };\n BrowserImage.prototype.update = function (imageData) {\n this._context.putImageData(imageData, 0, 0);\n };\n BrowserImage.prototype.getWidth = function () {\n return this._width;\n };\n BrowserImage.prototype.getHeight = function () {\n return this._height;\n };\n BrowserImage.prototype.resize = function (targetWidth, targetHeight, ratio) {\n var _a = this, canvas = _a._canvas, context = _a._context, img = _a.image;\n this._width = canvas.width = targetWidth;\n this._height = canvas.height = targetHeight;\n context.scale(ratio, ratio);\n context.drawImage(img, 0, 0);\n };\n BrowserImage.prototype.getPixelCount = function () {\n return this._width * this._height;\n };\n BrowserImage.prototype.getImageData = function () {\n return this._context.getImageData(0, 0, this._width, this._height);\n };\n BrowserImage.prototype.remove = function () {\n if (this._canvas && this._canvas.parentNode) {\n this._canvas.parentNode.removeChild(this._canvas);\n }\n };\n return BrowserImage;\n}(base_1.ImageBase));\nexports.default = BrowserImage;\n//# sourceMappingURL=browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebWorker = void 0;\nvar mmcq_1 = require(\"./mmcq\");\nObject.defineProperty(exports, \"MMCQ\", { enumerable: true, get: function () { return mmcq_1.default; } });\nexports.WebWorker = null;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../color\");\nvar vbox_1 = __importDefault(require(\"./vbox\"));\nvar pqueue_1 = __importDefault(require(\"./pqueue\"));\nvar fractByPopulations = 0.75;\nfunction _splitBoxes(pq, target) {\n var lastSize = pq.size();\n while (pq.size() < target) {\n var vbox = pq.pop();\n if (vbox && vbox.count() > 0) {\n var _a = vbox.split(), vbox1 = _a[0], vbox2 = _a[1];\n pq.push(vbox1);\n if (vbox2 && vbox2.count() > 0)\n pq.push(vbox2);\n // No more new boxes, converged\n if (pq.size() === lastSize) {\n break;\n }\n else {\n lastSize = pq.size();\n }\n }\n else {\n break;\n }\n }\n}\nvar MMCQ = function (pixels, opts) {\n if (pixels.length === 0 || opts.colorCount < 2 || opts.colorCount > 256) {\n throw new Error('Wrong MMCQ parameters');\n }\n var vbox = vbox_1.default.build(pixels);\n var hist = vbox.hist;\n var colorCount = Object.keys(hist).length;\n var pq = new pqueue_1.default(function (a, b) { return a.count() - b.count(); });\n pq.push(vbox);\n // first set of colors, sorted by population\n _splitBoxes(pq, fractByPopulations * opts.colorCount);\n // Re-order\n var pq2 = new pqueue_1.default(function (a, b) { return a.count() * a.volume() - b.count() * b.volume(); });\n pq2.contents = pq.contents;\n // next set - generate the median cuts using the (npix * vol) sorting.\n _splitBoxes(pq2, opts.colorCount - pq2.size());\n // calculate the actual colors\n return generateSwatches(pq2);\n};\nfunction generateSwatches(pq) {\n var swatches = [];\n while (pq.size()) {\n var v = pq.pop();\n var color = v.avg();\n var r = color[0], g = color[1], b = color[2];\n swatches.push(new color_1.Swatch(color, v.count()));\n }\n return swatches;\n}\nexports.default = MMCQ;\n//# sourceMappingURL=mmcq.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PQueue = /** @class */ (function () {\n function PQueue(comparator) {\n this._comparator = comparator;\n this.contents = [];\n this._sorted = false;\n }\n PQueue.prototype._sort = function () {\n if (!this._sorted) {\n this.contents.sort(this._comparator);\n this._sorted = true;\n }\n };\n PQueue.prototype.push = function (item) {\n this.contents.push(item);\n this._sorted = false;\n };\n PQueue.prototype.peek = function (index) {\n this._sort();\n index = typeof index === 'number' ? index : this.contents.length - 1;\n return this.contents[index];\n };\n PQueue.prototype.pop = function () {\n this._sort();\n return this.contents.pop();\n };\n PQueue.prototype.size = function () {\n return this.contents.length;\n };\n PQueue.prototype.map = function (mapper) {\n this._sort();\n return this.contents.map(mapper);\n };\n return PQueue;\n}());\nexports.default = PQueue;\n//# sourceMappingURL=pqueue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = require(\"../util\");\nvar VBox = /** @class */ (function () {\n function VBox(r1, r2, g1, g2, b1, b2, hist) {\n this._volume = -1;\n this._count = -1;\n this.dimension = { r1: r1, r2: r2, g1: g1, g2: g2, b1: b1, b2: b2 };\n this.hist = hist;\n }\n VBox.build = function (pixels, shouldIgnore) {\n var hn = 1 << (3 * util_1.SIGBITS);\n var hist = new Uint32Array(hn);\n var rmax;\n var rmin;\n var gmax;\n var gmin;\n var bmax;\n var bmin;\n var r;\n var g;\n var b;\n var a;\n rmax = gmax = bmax = 0;\n rmin = gmin = bmin = Number.MAX_VALUE;\n var n = pixels.length / 4;\n var i = 0;\n while (i < n) {\n var offset = i * 4;\n i++;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n // Ignored pixels' alpha is marked as 0 in filtering stage\n if (a === 0)\n continue;\n r = r >> util_1.RSHIFT;\n g = g >> util_1.RSHIFT;\n b = b >> util_1.RSHIFT;\n var index = util_1.getColorIndex(r, g, b);\n hist[index] += 1;\n if (r > rmax)\n rmax = r;\n if (r < rmin)\n rmin = r;\n if (g > gmax)\n gmax = g;\n if (g < gmin)\n gmin = g;\n if (b > bmax)\n bmax = b;\n if (b < bmin)\n bmin = b;\n }\n return new VBox(rmin, rmax, gmin, gmax, bmin, bmax, hist);\n };\n VBox.prototype.invalidate = function () {\n this._volume = this._count = -1;\n this._avg = null;\n };\n VBox.prototype.volume = function () {\n if (this._volume < 0) {\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n this._volume = (r2 - r1 + 1) * (g2 - g1 + 1) * (b2 - b1 + 1);\n }\n return this._volume;\n };\n VBox.prototype.count = function () {\n if (this._count < 0) {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var c = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n c += hist[index];\n }\n }\n }\n this._count = c;\n }\n return this._count;\n };\n VBox.prototype.clone = function () {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n return new VBox(r1, r2, g1, g2, b1, b2, hist);\n };\n VBox.prototype.avg = function () {\n if (!this._avg) {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var ntot = 0;\n var mult = 1 << (8 - util_1.SIGBITS);\n var rsum = void 0;\n var gsum = void 0;\n var bsum = void 0;\n rsum = gsum = bsum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n var h = hist[index];\n ntot += h;\n rsum += (h * (r + 0.5) * mult);\n gsum += (h * (g + 0.5) * mult);\n bsum += (h * (b + 0.5) * mult);\n }\n }\n }\n if (ntot) {\n this._avg = [\n ~~(rsum / ntot),\n ~~(gsum / ntot),\n ~~(bsum / ntot)\n ];\n }\n else {\n this._avg = [\n ~~(mult * (r1 + r2 + 1) / 2),\n ~~(mult * (g1 + g2 + 1) / 2),\n ~~(mult * (b1 + b2 + 1) / 2)\n ];\n }\n }\n return this._avg;\n };\n VBox.prototype.contains = function (rgb) {\n var r = rgb[0], g = rgb[1], b = rgb[2];\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n r >>= util_1.RSHIFT;\n g >>= util_1.RSHIFT;\n b >>= util_1.RSHIFT;\n return r >= r1 && r <= r2 &&\n g >= g1 && g <= g2 &&\n b >= b1 && b <= b2;\n };\n VBox.prototype.split = function () {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var count = this.count();\n if (!count)\n return [];\n if (count === 1)\n return [this.clone()];\n var rw = r2 - r1 + 1;\n var gw = g2 - g1 + 1;\n var bw = b2 - b1 + 1;\n var maxw = Math.max(rw, gw, bw);\n var accSum = null;\n var sum;\n var total;\n sum = total = 0;\n var maxd = null;\n if (maxw === rw) {\n maxd = 'r';\n accSum = new Uint32Array(r2 + 1);\n for (var r = r1; r <= r2; r++) {\n sum = 0;\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[r] = total;\n }\n }\n else if (maxw === gw) {\n maxd = 'g';\n accSum = new Uint32Array(g2 + 1);\n for (var g = g1; g <= g2; g++) {\n sum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[g] = total;\n }\n }\n else {\n maxd = 'b';\n accSum = new Uint32Array(b2 + 1);\n for (var b = b1; b <= b2; b++) {\n sum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[b] = total;\n }\n }\n var splitPoint = -1;\n var reverseSum = new Uint32Array(accSum.length);\n for (var i = 0; i < accSum.length; i++) {\n var d = accSum[i];\n if (splitPoint < 0 && d > total / 2)\n splitPoint = i;\n reverseSum[i] = total - d;\n }\n var vbox = this;\n function doCut(d) {\n var dim1 = d + '1';\n var dim2 = d + '2';\n var d1 = vbox.dimension[dim1];\n var d2 = vbox.dimension[dim2];\n var vbox1 = vbox.clone();\n var vbox2 = vbox.clone();\n var left = splitPoint - d1;\n var right = d2 - splitPoint;\n if (left <= right) {\n d2 = Math.min(d2 - 1, ~~(splitPoint + right / 2));\n d2 = Math.max(0, d2);\n }\n else {\n d2 = Math.max(d1, ~~(splitPoint - 1 - left / 2));\n d2 = Math.min(vbox.dimension[dim2], d2);\n }\n while (!accSum[d2])\n d2++;\n var c2 = reverseSum[d2];\n while (!c2 && accSum[d2 - 1])\n c2 = reverseSum[--d2];\n vbox1.dimension[dim2] = d2;\n vbox2.dimension[dim1] = d2 + 1;\n return [vbox1, vbox2];\n }\n return doCut(maxd);\n };\n return VBox;\n}());\nexports.default = VBox;\n//# sourceMappingURL=vbox.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getColorIndex = exports.getColorDiffStatus = exports.hexDiff = exports.rgbDiff = exports.deltaE94 = exports.rgbToCIELab = exports.xyzToCIELab = exports.rgbToXyz = exports.hslToRgb = exports.rgbToHsl = exports.rgbToHex = exports.hexToRgb = exports.defer = exports.RSHIFT = exports.SIGBITS = exports.DELTAE94_DIFF_STATUS = void 0;\nexports.DELTAE94_DIFF_STATUS = {\n NA: 0,\n PERFECT: 1,\n CLOSE: 2,\n GOOD: 10,\n SIMILAR: 50\n};\nexports.SIGBITS = 5;\nexports.RSHIFT = 8 - exports.SIGBITS;\nfunction defer() {\n var resolve;\n var reject;\n // eslint-disable-next-line promise/param-names\n var promise = new Promise(function (_resolve, _reject) {\n resolve = _resolve;\n reject = _reject;\n });\n // @ts-ignore\n return { resolve: resolve, reject: reject, promise: promise };\n}\nexports.defer = defer;\nfunction hexToRgb(hex) {\n var m = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return m === null ? null : [m[1], m[2], m[3]].map(function (s) { return parseInt(s, 16); });\n}\nexports.hexToRgb = hexToRgb;\nfunction rgbToHex(r, g, b) {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1, 7);\n}\nexports.rgbToHex = rgbToHex;\nfunction rgbToHsl(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n // @ts-ignore\n h /= 6;\n }\n // @ts-ignore\n return [h, s, l];\n}\nexports.rgbToHsl = rgbToHsl;\nfunction hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n function hue2rgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - (l * s);\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - (1 / 3));\n }\n return [\n r * 255,\n g * 255,\n b * 255\n ];\n}\nexports.hslToRgb = hslToRgb;\nfunction rgbToXyz(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n r = r > 0.04045 ? Math.pow((r + 0.005) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.005) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.005) / 1.055, 2.4) : b / 12.92;\n r *= 100;\n g *= 100;\n b *= 100;\n var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x, y, z];\n}\nexports.rgbToXyz = rgbToXyz;\nfunction xyzToCIELab(x, y, z) {\n var REF_X = 95.047;\n var REF_Y = 100;\n var REF_Z = 108.883;\n x /= REF_X;\n y /= REF_Y;\n z /= REF_Z;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n var L = 116 * y - 16;\n var a = 500 * (x - y);\n var b = 200 * (y - z);\n return [L, a, b];\n}\nexports.xyzToCIELab = xyzToCIELab;\nfunction rgbToCIELab(r, g, b) {\n var _a = rgbToXyz(r, g, b), x = _a[0], y = _a[1], z = _a[2];\n return xyzToCIELab(x, y, z);\n}\nexports.rgbToCIELab = rgbToCIELab;\nfunction deltaE94(lab1, lab2) {\n var WEIGHT_L = 1;\n var WEIGHT_C = 1;\n var WEIGHT_H = 1;\n var L1 = lab1[0], a1 = lab1[1], b1 = lab1[2];\n var L2 = lab2[0], a2 = lab2[1], b2 = lab2[2];\n var dL = L1 - L2;\n var da = a1 - a2;\n var db = b1 - b2;\n var xC1 = Math.sqrt(a1 * a1 + b1 * b1);\n var xC2 = Math.sqrt(a2 * a2 + b2 * b2);\n var xDL = L2 - L1;\n var xDC = xC2 - xC1;\n var xDE = Math.sqrt(dL * dL + da * da + db * db);\n var xDH = (Math.sqrt(xDE) > Math.sqrt(Math.abs(xDL)) + Math.sqrt(Math.abs(xDC)))\n ? Math.sqrt(xDE * xDE - xDL * xDL - xDC * xDC)\n : 0;\n var xSC = 1 + 0.045 * xC1;\n var xSH = 1 + 0.015 * xC1;\n xDL /= WEIGHT_L;\n xDC /= WEIGHT_C * xSC;\n xDH /= WEIGHT_H * xSH;\n return Math.sqrt(xDL * xDL + xDC * xDC + xDH * xDH);\n}\nexports.deltaE94 = deltaE94;\nfunction rgbDiff(rgb1, rgb2) {\n var lab1 = rgbToCIELab.apply(undefined, rgb1);\n var lab2 = rgbToCIELab.apply(undefined, rgb2);\n return deltaE94(lab1, lab2);\n}\nexports.rgbDiff = rgbDiff;\nfunction hexDiff(hex1, hex2) {\n var rgb1 = hexToRgb(hex1);\n var rgb2 = hexToRgb(hex2);\n return rgbDiff(rgb1, rgb2);\n}\nexports.hexDiff = hexDiff;\nfunction getColorDiffStatus(d) {\n if (d < exports.DELTAE94_DIFF_STATUS.NA) {\n return 'N/A';\n }\n // Not perceptible by human eyes\n if (d <= exports.DELTAE94_DIFF_STATUS.PERFECT) {\n return 'Perfect';\n }\n // Perceptible through close observation\n if (d <= exports.DELTAE94_DIFF_STATUS.CLOSE) {\n return 'Close';\n }\n // Perceptible at a glance\n if (d <= exports.DELTAE94_DIFF_STATUS.GOOD) {\n return 'Good';\n }\n // Colors are more similar than opposite\n if (d < exports.DELTAE94_DIFF_STATUS.SIMILAR) {\n return 'Similar';\n }\n return 'Wrong';\n}\nexports.getColorDiffStatus = getColorDiffStatus;\nfunction getColorIndex(r, g, b) {\n return (r << (2 * exports.SIGBITS)) + (g << exports.SIGBITS) + b;\n}\nexports.getColorIndex = getColorIndex;\n//# sourceMappingURL=util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"./color\");\nvar builder_1 = __importDefault(require(\"./builder\"));\nvar Util = __importStar(require(\"./util\"));\nvar Quantizer = __importStar(require(\"./quantizer\"));\nvar Generator = __importStar(require(\"./generator\"));\nvar Filters = __importStar(require(\"./filter\"));\nvar defaults = require(\"lodash/defaults\");\nvar Vibrant = /** @class */ (function () {\n function Vibrant(_src, opts) {\n this._src = _src;\n this.opts = defaults({}, opts, Vibrant.DefaultOpts);\n this.opts.combinedFilter = Filters.combineFilters(this.opts.filters);\n }\n Vibrant.from = function (src) {\n return new builder_1.default(src);\n };\n Vibrant.prototype._process = function (image, opts) {\n var quantizer = opts.quantizer, generator = opts.generator;\n image.scaleDown(opts);\n return image.applyFilter(opts.combinedFilter)\n .then(function (imageData) { return quantizer(imageData.data, opts); })\n .then(function (colors) { return color_1.Swatch.applyFilter(colors, opts.combinedFilter); })\n .then(function (colors) { return Promise.resolve(generator(colors)); });\n };\n Vibrant.prototype.palette = function () {\n return this.swatches();\n };\n Vibrant.prototype.swatches = function () {\n return this._palette;\n };\n Vibrant.prototype.getPalette = function (cb) {\n var _this = this;\n var image = new this.opts.ImageClass();\n var result = image.load(this._src)\n .then(function (image) { return _this._process(image, _this.opts); })\n .then(function (palette) {\n _this._palette = palette;\n image.remove();\n return palette;\n }, function (err) {\n image.remove();\n throw err;\n });\n if (cb)\n result.then(function (palette) { return cb(null, palette); }, function (err) { return cb(err); });\n return result;\n };\n Vibrant.Builder = builder_1.default;\n Vibrant.Quantizer = Quantizer;\n Vibrant.Generator = Generator;\n Vibrant.Filter = Filters;\n Vibrant.Util = Util;\n Vibrant.Swatch = color_1.Swatch;\n Vibrant.DefaultOpts = {\n colorCount: 64,\n quality: 5,\n generator: Generator.Default,\n ImageClass: null,\n quantizer: Quantizer.MMCQ,\n filters: [Filters.Default]\n };\n return Vibrant;\n}());\nexports.default = Vibrant;\n//# sourceMappingURL=vibrant.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + \"a4665645ff36a23d02c2\" + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1474;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1474: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(66679); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","a","self","e","t","o","Symbol","iterator","constructor","prototype","i","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","n","arguments","length","forEach","s","getOwnPropertyDescriptors","defineProperties","defineProperty","toPrimitive","call","TypeError","String","value","configurable","writable","d","default","N","r","name","props","alignment","type","validator","includes","disabled","Boolean","indexOf","nativeType","wide","ariaLabel","href","download","to","exact","ariaHidden","pressed","emits","computed","realType","this","flexAlignment","split","isReverseAligned","render","$slots","text","trim","l","c","icon","console","warn","m","navigate","isActive","isExactActive","class","concat","attrs","role","target","rel","$attrs","on","$listeners","click","$emit","custom","scopedSlots","u","p","h","g","v","k","y","A","f","C","styleTagTransform","setAttributes","insert","bind","domAPI","insertStyleElement","Z","locals","P","S","w","b","undefined","exports","E","hasOwnProperty","asyncIterator","toStringTag","create","j","arg","wrap","getPrototypeOf","O","_invoke","resolve","__await","then","Error","done","method","delegate","sent","_sent","dispatchException","abrupt","return","resultName","next","nextLoc","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","AsyncIterator","async","Promise","reverse","pop","values","prev","charAt","slice","stop","rval","complete","finish","catch","delegateYield","components","Dropdown","inheritAttrs","popoverBaseClass","focusTrap","setReturnFocus","HTMLElement","SVGElement","beforeDestroy","clearFocusTrap","methods","useFocusTrap","$nextTick","$refs","popover","popperContent","$el","$focusTrap","createFocusTrap","escapeDeactivates","allowOutsideClick","trapStack","L","activate","deactivate","afterShow","afterHide","_self","_c","_g","_b","ref","distance","_u","key","fn","_t","proxy","assign","window","_nc_focus_trap","id","version","sources","names","mappings","sourcesContent","sourceRoot","toString","map","join","btoa","unescape","encodeURIComponent","JSON","stringify","identifier","base","css","media","sourceMap","supports","layer","references","updater","byIndex","splice","update","remove","document","querySelector","HTMLIFrameElement","contentDocument","head","appendChild","createElement","attributes","options","nc","setAttribute","parentNode","removeChild","styleSheet","cssText","firstChild","createTextNode","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","__esModule","get","R","detectLocale","locale","translations","Actions","Activities","Back","Choose","Close","Custom","Favorite","Flags","Global","Next","Objects","Previous","Search","Settings","Submit","Symbols","pluralId","msgid","msgid_plural","msgstr","addTranslation","build","ngettext","gettext","Array","parseInt","ArrowLeft","Check","Chrome","DotsHorizontal","NcButton","NcPopover","required","advancedFields","palette","every","test","data","currentColor","advanced","ariaBack","ariaMore","watch","handleConfirm","handleClose","handleBack","handleMoreSettings","pickColor","hex","x","z","F","B","M","T","G","_v","staticClass","mode","_e","_l","style","size","input","model","callback","expression","_s","module","title","fillColor","Number","_vm","$event","_regeneratorRuntime","Op","hasOwn","obj","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","define","err","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","PromiseImpl","invoke","reject","record","result","_typeof","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","delegateResult","maybeInvokeDelegate","methodName","info","pushTryEntry","locs","entry","resetTryEntry","iterable","iteratorMethod","doneResult","genFun","ctor","iter","val","object","skipTempReset","rootRecord","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","_arrayLikeToArray","arr","len","arr2","backgroundImage","loadState","shippedBackgroundList","themingDefaultBackground","defaultShippedBackground","prefixWithBaseUrl","url","generateFilePath","ImageEdit","NcColorPicker","loading","Theming","shippedBackgrounds","_this","fileName","preview","details","background","isGlobalBackgroundDeleted","isGlobalBackgroundDefault","isBackgroundDisabled","invertTextColor","color","calculateLuma","_this$hexToRGB2","hexToRGB","isArray","_arrayWithHoles","_i","_x","_r","_arr","_n","_d","_iterableToArrayLimit","minLen","from","_unsupportedIterableToArray","_nonIterableRest","exec","_this2","_callee","_context","backgroundColor","setDefault","_this3","_callee2","_context2","axios","post","generateUrl","setShipped","shipped","_this4","_callee3","_context3","setFile","path","_arguments","_this5","_callee4","_context4","removeBackground","_this6","_callee5","_context5","delete","event","_this7","_callee6","_event$target","_this7$Theming","_context6","dataset","debouncePickColor","debounce","pickFile","_this8","getFilePickerBuilder","allowDirectories","setMimeTypeFilter","setMultiSelect","addButton","label","nodes","_nodes$","applyFile","pick","_this9","_callee7","response","_palette$DarkVibrant","fileUrl","blobUrl","_context7","showError","generateRemoteUrl","getCurrentUser","uid","responseType","URL","createObjectURL","getColorPaletteFromBlob","DarkVibrant","debug","t0","Vibrant","getPalette","defaultColor","$$v","$set","shippedBackground","primary_color","attribution","theming","NcCheckboxRadioSwitch","enforced","selected","theme","unique","switchType","img","checked","set","enabled","onToggle","description","enableLabel","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","availableThemes","enforceTheme","shortcutsDisabled","isUserThemingDisabled","ItemPreview","NcSettingsSection","BackgroundSettings","themes","fonts","selectedTheme","find","replace","guidelinesLink","descriptionDetail","issuetrackerLink","designteamLink","newState","changeShortcutsDisabled","refreshGlobalStyles","querySelectorAll","searchParams","Date","now","newTheme","cloneNode","onload","append","updateBackground","changeTheme","_ref","updateBodyAttributes","selectItem","changeFont","_ref2","font","generateOcsUrl","appId","configKey","configValue","enabledThemesIDs","enabledFontsIDs","body","toggleAttribute","themeId","OC","Notification","showTemporary","ocs","meta","message","domProps","__webpack_nonce__","getRequestToken","Vue","extend","App","$mount","$on","___CSS_LOADER_EXPORT___","baseForOwn","baseEach","createBaseEach","collection","predicate","index","baseFor","iteratee","isArrayLike","eachFunc","fromRight","baseRest","eq","isIterateeCall","keysIn","objectProto","defaults","guard","source","propsIndex","propsLength","arrayFilter","baseFilter","baseIteratee","__importDefault","mod","vibrant_1","browser_1","DefaultOpts","ImageClass","clone","Builder","src","opts","_src","_opts","filters","maxColorCount","colorCount","maxDimension","addFilter","removeFilter","clearFilters","quality","q","useImageClass","imageClass","useGenerator","useQuantizer","quantizer","cb","getSwatches","Swatch","util_1","rgb","population","_rgb","_population","applyFilter","colors","_a","_hsl","rgbToHsl","_hex","rgbToHex","toJSON","getRgb","getHsl","hsl","getPopulation","getHex","getYiq","_yiq","_titleTextColor","_bodyTextColor","getTitleTextColor","titleTextColor","getBodyTextColor","bodyTextColor","combineFilters","default_1","color_1","targetDarkLuma","maxDarkLuma","minLightLuma","targetLightLuma","minNormalLuma","targetNormalLuma","maxNormalLuma","targetMutesSaturation","maxMutesSaturation","targetVibrantSaturation","minVibrantSaturation","weightSaturation","weightLuma","weightPopulation","_findColorVariation","swatches","maxPopulation","targetLuma","minLuma","maxLuma","targetSaturation","minSaturation","maxSaturation","max","maxValue","swatch","LightVibrant","Muted","DarkMuted","LightMuted","_isAlreadySelected","saturation","luma","invertDiff","targetValue","Math","abs","sum","weightSum","weight","weightedMean","_createComparisonValue","_findMaxPopulation","_generateVariationColors","hslToRgb","_f","_h","_j","_generateEmptySwatches","ImageBase","scaleDown","width","getWidth","height","getHeight","ratio","maxSide","resize","imageData","getImageData","pixels","offset","extendStatics","__extends","__","__createBinding","k2","__setModuleDefault","__importStar","base_1","Url","BrowserImage","_super","_initCanvas","image","canvas","_canvas","getContext","className","display","_width","_height","drawImage","load","ua","ub","parse","protocol","host","port","location","hostname","crossOrigin","HTMLImageElement","onImageLoad","onerror","clear","clearRect","putImageData","targetWidth","targetHeight","scale","getPixelCount","WebWorker","mmcq_1","vbox_1","pqueue_1","_splitBoxes","pq","lastSize","vbox","count","vbox1","vbox2","hist","pq2","volume","contents","avg","generateSwatches","PQueue","comparator","_comparator","_sorted","_sort","sort","item","peek","mapper","VBox","r1","r2","g1","g2","b1","b2","_volume","_count","dimension","shouldIgnore","rmax","rmin","gmax","gmin","bmax","bmin","hn","SIGBITS","Uint32Array","MAX_VALUE","RSHIFT","getColorIndex","invalidate","_avg","ntot","mult","rsum","gsum","bsum","contains","total","rw","gw","bw","maxw","accSum","maxd","splitPoint","reverseSum","dim1","dim2","d1","d2","left","right","min","c2","doCut","hexToRgb","rgbToXyz","pow","xyzToCIELab","rgbToCIELab","deltaE94","lab1","lab2","L1","a1","L2","a2","dL","da","db","xC1","sqrt","xDL","xDC","xDE","xDH","rgbDiff","rgb1","rgb2","getColorDiffStatus","hexDiff","defer","DELTAE94_DIFF_STATUS","NA","PERFECT","CLOSE","GOOD","SIMILAR","promise","_resolve","_reject","hue2rgb","hex1","hex2","builder_1","Util","Quantizer","Filters","combinedFilter","_process","_palette","Filter","Default","MMCQ","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","Infinity","fulfilled","getter","definition","chunkId","all","reduce","promises","globalThis","Function","prop","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","onScriptComplete","clearTimeout","doneFns","setTimeout","nmd","paths","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"theming-personal-theming.js?v=4d2b96f739e4c7989e38","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ImageEdit.vue?e9bd","webpack:///nextcloud/node_modules/vue-material-design-icons/ImageEdit.vue?vue&type=template&id=78c4184e","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?0f9a","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?65db","webpack://nextcloud/./apps/theming/src/components/BackgroundSettings.vue?da76","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?7631","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?69ad","webpack://nextcloud/./apps/theming/src/components/ItemPreview.vue?8797","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue","webpack:///nextcloud/node_modules/@vueuse/shared/index.mjs","webpack:///nextcloud/node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs","webpack:///nextcloud/node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.mjs","webpack:///nextcloud/node_modules/@vueuse/integrations/node_modules/@vueuse/core/index.mjs","webpack:///nextcloud/node_modules/sortablejs/modular/sortable.esm.js","webpack:///nextcloud/node_modules/@vueuse/integrations/useSortable.mjs","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?649a","webpack://nextcloud/./apps/theming/src/components/AppOrderSelectorElement.vue?aad4","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?a335","webpack://nextcloud/./apps/theming/src/components/AppOrderSelector.vue?dbd7","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Undo.vue?d998","webpack:///nextcloud/node_modules/vue-material-design-icons/Undo.vue?vue&type=template&id=a6d3d438","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/theming/src/components/UserAppMenuSection.vue?6b96","webpack://nextcloud/./apps/theming/src/components/UserAppMenuSection.vue?402e","webpack:///nextcloud/apps/theming/src/UserThemes.vue","webpack:///nextcloud/apps/theming/src/UserThemes.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/theming/src/UserThemes.vue?6be3","webpack://nextcloud/./apps/theming/src/UserThemes.vue?7eb2","webpack://nextcloud/./apps/theming/src/UserThemes.vue?b683","webpack:///nextcloud/apps/theming/src/personal-settings.js","webpack:///nextcloud/apps/theming/src/helpers/refreshStyles.js","webpack:///nextcloud/apps/theming/src/UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/AppOrderSelector.vue?vue&type=style&index=0&id=76d01da8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/BackgroundSettings.vue?vue&type=style&index=0&id=1175e65a&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/theming/src/components/ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/theming/src/components/UserAppMenuSection.vue?vue&type=style&index=0&id=3d6952db&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/lodash/_baseEach.js","webpack:///nextcloud/node_modules/lodash/_baseFilter.js","webpack:///nextcloud/node_modules/lodash/_baseForOwn.js","webpack:///nextcloud/node_modules/lodash/_createBaseEach.js","webpack:///nextcloud/node_modules/lodash/defaults.js","webpack:///nextcloud/node_modules/lodash/filter.js","webpack:///nextcloud/node_modules/node-vibrant/lib/browser.js","webpack:///nextcloud/node_modules/node-vibrant/lib/builder.js","webpack:///nextcloud/node_modules/node-vibrant/lib/color.js","webpack:///nextcloud/node_modules/node-vibrant/lib/filter/default.js","webpack:///nextcloud/node_modules/node-vibrant/lib/filter/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/generator/default.js","webpack:///nextcloud/node_modules/node-vibrant/lib/generator/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/image/base.js","webpack:///nextcloud/node_modules/node-vibrant/lib/image/browser.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/index.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/mmcq.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/pqueue.js","webpack:///nextcloud/node_modules/node-vibrant/lib/quantizer/vbox.js","webpack:///nextcloud/node_modules/node-vibrant/lib/util.js","webpack:///nextcloud/node_modules/node-vibrant/lib/vibrant.js","webpack:///nextcloud/node_modules/object-inspect/index.js","webpack:///nextcloud/node_modules/side-channel/index.js","webpack:///nextcloud/node_modules/url/node_modules/punycode/punycode.js","webpack:///nextcloud/node_modules/url/node_modules/qs/lib/formats.js","webpack:///nextcloud/node_modules/url/node_modules/qs/lib/index.js","webpack:///nextcloud/node_modules/url/node_modules/qs/lib/parse.js","webpack:///nextcloud/node_modules/url/node_modules/qs/lib/stringify.js","webpack:///nextcloud/node_modules/url/node_modules/qs/lib/utils.js","webpack:///nextcloud/node_modules/url/url.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon image-edit-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ImageEditIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageEdit.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageEdit.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImageEdit.vue?vue&type=template&id=78c4184e\"\nimport script from \"./ImageEdit.vue?vue&type=script&lang=js\"\nexport * from \"./ImageEdit.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon image-edit-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M22.7 14.3L21.7 15.3L19.7 13.3L20.7 12.3C20.8 12.2 20.9 12.1 21.1 12.1C21.2 12.1 21.4 12.2 21.5 12.3L22.8 13.6C22.9 13.8 22.9 14.1 22.7 14.3M13 19.9V22H15.1L21.2 15.9L19.2 13.9L13 19.9M21 5C21 3.9 20.1 3 19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H11V19.1L12.1 18H5L8.5 13.5L11 16.5L14.5 12L16.1 14.1L21 9.1V5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n -\n - @author Christopher Ng <chrng8@gmail.com>\n - @author Greta Doci <gretadoci@gmail.com>\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Julius Härtl <jus@bitgrid.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div class=\"background-selector\" data-user-theming-background-settings>\n\t\t<!-- Custom background -->\n\t\t<button :aria-pressed=\"backgroundImage === 'custom'\"\n\t\t\t:class=\"{\n\t\t\t\t'icon-loading': loading === 'custom',\n\t\t\t\t'background background__filepicker': true,\n\t\t\t\t'background--active': backgroundImage === 'custom'\n\t\t\t}\"\n\t\t\t:data-color-bright=\"invertTextColor(Theming.color)\"\n\t\t\tdata-user-theming-background-custom\n\t\t\ttabindex=\"0\"\n\t\t\t@click=\"pickFile\">\n\t\t\t{{ t('theming', 'Custom background') }}\n\t\t\t<ImageEdit v-if=\"backgroundImage !== 'custom'\" :size=\"26\" />\n\t\t\t<Check :size=\"44\" />\n\t\t</button>\n\n\t\t<!-- Default background -->\n\t\t<button :aria-pressed=\"backgroundImage === 'default'\"\n\t\t\t:class=\"{\n\t\t\t\t'icon-loading': loading === 'default',\n\t\t\t\t'background background__default': true,\n\t\t\t\t'background--active': backgroundImage === 'default'\n\t\t\t}\"\n\t\t\t:data-color-bright=\"invertTextColor(Theming.defaultColor)\"\n\t\t\t:style=\"{ '--border-color': Theming.defaultColor }\"\n\t\t\tdata-user-theming-background-default\n\t\t\ttabindex=\"0\"\n\t\t\t@click=\"setDefault\">\n\t\t\t{{ t('theming', 'Default background') }}\n\t\t\t<Check :size=\"44\" />\n\t\t</button>\n\n\t\t<!-- Custom color picker -->\n\t\t<div class=\"background-color\"\n\t\t\tdata-user-theming-background-color>\n\t\t\t<NcColorPicker v-model=\"Theming.color\"\n\t\t\t\t@input=\"debouncePickColor\">\n\t\t\t\t<NcButton type=\"ternary\">\n\t\t\t\t\t{{ t('theming', 'Change color') }}\n\t\t\t\t</NcButton>\n\t\t\t</NcColorPicker>\n\t\t</div>\n\n\t\t<!-- Remove background -->\n\t\t<button :aria-pressed=\"isBackgroundDisabled\"\n\t\t\t:class=\"{\n\t\t\t\t'background background__delete': true,\n\t\t\t\t'background--active': isBackgroundDisabled\n\t\t\t}\"\n\t\t\tdata-user-theming-background-clear\n\t\t\ttabindex=\"0\"\n\t\t\t@click=\"removeBackground\">\n\t\t\t{{ t('theming', 'No background') }}\n\t\t\t<Close v-if=\"!isBackgroundDisabled\" :size=\"32\" />\n\t\t\t<Check :size=\"44\" />\n\t\t</button>\n\n\t\t<!-- Background set selection -->\n\t\t<button v-for=\"shippedBackground in shippedBackgrounds\"\n\t\t\t:key=\"shippedBackground.name\"\n\t\t\t:title=\"shippedBackground.details.attribution\"\n\t\t\t:aria-label=\"shippedBackground.details.description\"\n\t\t\t:aria-pressed=\"backgroundImage === shippedBackground.name\"\n\t\t\t:class=\"{\n\t\t\t\t'background background__shipped': true,\n\t\t\t\t'icon-loading': loading === shippedBackground.name,\n\t\t\t\t'background--active': backgroundImage === shippedBackground.name\n\t\t\t}\"\n\t\t\t:data-color-bright=\"shippedBackground.details.theming === 'dark'\"\n\t\t\t:data-user-theming-background-shipped=\"shippedBackground.name\"\n\t\t\t:style=\"{ backgroundImage: 'url(' + shippedBackground.preview + ')', '--border-color': shippedBackground.details.primary_color }\"\n\t\t\ttabindex=\"0\"\n\t\t\t@click=\"setShipped(shippedBackground.name)\">\n\t\t\t<Check :size=\"44\" />\n\t\t</button>\n\t</div>\n</template>\n\n<script>\nimport { generateFilePath, generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getFilePickerBuilder, showError } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { Palette } from 'node-vibrant/lib/color.js'\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport NcColorPicker from '@nextcloud/vue/dist/Components/NcColorPicker.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Vibrant from 'node-vibrant'\n\nimport Check from 'vue-material-design-icons/Check.vue'\nimport Close from 'vue-material-design-icons/Close.vue'\nimport ImageEdit from 'vue-material-design-icons/ImageEdit.vue'\n\nconst backgroundImage = loadState('theming', 'backgroundImage')\nconst shippedBackgroundList = loadState('theming', 'shippedBackgrounds')\nconst themingDefaultBackground = loadState('theming', 'themingDefaultBackground')\nconst defaultShippedBackground = loadState('theming', 'defaultShippedBackground')\n\nconst prefixWithBaseUrl = (url) => generateFilePath('theming', '', 'img/background/') + url\n\nexport default {\n\tname: 'BackgroundSettings',\n\n\tcomponents: {\n\t\tCheck,\n\t\tClose,\n\t\tImageEdit,\n\t\tNcButton,\n\t\tNcColorPicker,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tTheming: loadState('theming', 'data', {}),\n\n\t\t\t// User background image and color settings\n\t\t\tbackgroundImage,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tshippedBackgrounds() {\n\t\t\treturn Object.keys(shippedBackgroundList)\n\t\t\t\t.map(fileName => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: fileName,\n\t\t\t\t\t\turl: prefixWithBaseUrl(fileName),\n\t\t\t\t\t\tpreview: prefixWithBaseUrl('preview/' + fileName),\n\t\t\t\t\t\tdetails: shippedBackgroundList[fileName],\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.filter(background => {\n\t\t\t\t\t// If the admin did not changed the global background\n\t\t\t\t\t// let's hide the default background to not show it twice\n\t\t\t\t\tif (!this.isGlobalBackgroundDeleted && !this.isGlobalBackgroundDefault) {\n\t\t\t\t\t\treturn background.name !== defaultShippedBackground\n\t\t\t\t\t}\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t},\n\n\t\tisGlobalBackgroundDefault() {\n\t\t\treturn !!themingDefaultBackground\n\t\t},\n\n\t\tisGlobalBackgroundDeleted() {\n\t\t\treturn themingDefaultBackground === 'backgroundColor'\n\t\t},\n\n\t\tisBackgroundDisabled() {\n\t\t\treturn this.backgroundImage === 'disabled'\n\t\t\t|| !this.backgroundImage\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Do we need to invert the text if color is too bright?\n\t\t *\n\t\t * @param {string} color the hex color\n\t\t */\n\t\tinvertTextColor(color) {\n\t\t\treturn this.calculateLuma(color) > 0.6\n\t\t},\n\n\t\t/**\n\t\t * Calculate luminance of provided hex color\n\t\t *\n\t\t * @param {string} color the hex color\n\t\t */\n\t\tcalculateLuma(color) {\n\t\t\tconst [red, green, blue] = this.hexToRGB(color)\n\t\t\treturn (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255\n\t\t},\n\n\t\t/**\n\t\t * Convert hex color to RGB\n\t\t *\n\t\t * @param {string} hex the hex color\n\t\t */\n\t\thexToRGB(hex) {\n\t\t\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\t\t\treturn result\n\t\t\t\t? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)]\n\t\t\t\t: null\n\t\t},\n\n\t\t/**\n\t\t * Update local state\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.backgroundColor background color value\n\t\t * @param {string} data.backgroundImage background image value\n\t\t * @param {string} data.version cache buster number\n\t\t * @see https://github.com/nextcloud/server/blob/c78bd45c64d9695724fc44fe8453a88824b85f2f/apps/theming/lib/Controller/UserThemeController.php#L187-L191\n\t\t */\n\t\tasync update(data) {\n\t\t\t// Update state\n\t\t\tthis.backgroundImage = data.backgroundImage\n\t\t\tthis.Theming.color = data.backgroundColor\n\n\t\t\t// Notify parent and reload style\n\t\t\tthis.$emit('update:background')\n\t\t\tthis.loading = false\n\t\t},\n\n\t\tasync setDefault() {\n\t\t\tthis.loading = 'default'\n\t\t\tconst result = await axios.post(generateUrl('/apps/theming/background/default'))\n\t\t\tthis.update(result.data)\n\t\t},\n\n\t\tasync setShipped(shipped) {\n\t\t\tthis.loading = shipped\n\t\t\tconst result = await axios.post(generateUrl('/apps/theming/background/shipped'), { value: shipped })\n\t\t\tthis.update(result.data)\n\t\t},\n\n\t\tasync setFile(path, color = null) {\n\t\t\tthis.loading = 'custom'\n\t\t\tconst result = await axios.post(generateUrl('/apps/theming/background/custom'), { value: path, color })\n\t\t\tthis.update(result.data)\n\t\t},\n\n\t\tasync removeBackground() {\n\t\t\tthis.loading = 'remove'\n\t\t\tconst result = await axios.delete(generateUrl('/apps/theming/background/custom'))\n\t\t\tthis.update(result.data)\n\t\t},\n\n\t\tasync pickColor(event) {\n\t\t\tthis.loading = 'color'\n\t\t\tconst color = event?.target?.dataset?.color || this.Theming?.color || '#0082c9'\n\t\t\tconst result = await axios.post(generateUrl('/apps/theming/background/color'), { color })\n\t\t\tthis.update(result.data)\n\t\t},\n\t\tdebouncePickColor: debounce(function(...args) {\n\t\t\tthis.pickColor(...args)\n\t\t}, 200),\n\n\t\tpickFile() {\n\t\t\tconst picker = getFilePickerBuilder(t('theming', 'Select a background from your files'))\n\t\t\t\t.allowDirectories(false)\n\t\t\t\t.setMimeTypeFilter(['image/png', 'image/gif', 'image/jpeg', 'image/svg+xml', 'image/svg'])\n\t\t\t\t.setMultiSelect(false)\n\t\t\t\t.addButton({\n\t\t\t\t\tid: 'select',\n\t\t\t\t\tlabel: t('theming', 'Select background'),\n\t\t\t\t\tcallback: (nodes) => {\n\t\t\t\t\t\tthis.applyFile(nodes[0]?.path)\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'primary',\n\t\t\t\t})\n\t\t\t\t.build()\n\t\t\tpicker.pick()\n\t\t},\n\n\t\tasync applyFile(path) {\n\t\t\tif (!path || typeof path !== 'string' || path.trim().length === 0 || path === '/') {\n\t\t\t\tconsole.error('No valid background have been selected', { path })\n\t\t\t\tshowError(t('theming', 'No background has been selected'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loading = 'custom'\n\n\t\t\t// Extract primary color from image\n\t\t\tlet response = null\n\t\t\tlet color = null\n\t\t\ttry {\n\t\t\t\tconst fileUrl = generateRemoteUrl('dav/files/' + getCurrentUser().uid + path)\n\t\t\t\tresponse = await axios.get(fileUrl, { responseType: 'blob' })\n\t\t\t\tconst blobUrl = URL.createObjectURL(response.data)\n\t\t\t\tconst palette = await this.getColorPaletteFromBlob(blobUrl)\n\n\t\t\t\t// DarkVibrant is accessible AND visually pleasing\n\t\t\t\t// Vibrant is not accessible enough and others are boring\n\t\t\t\tcolor = palette?.DarkVibrant?.hex\n\t\t\t\tthis.setFile(path, color)\n\n\t\t\t\t// Log data\n\t\t\t\tconsole.debug('Extracted colour', color, 'from custom image', path, palette)\n\t\t\t} catch (error) {\n\t\t\t\tthis.setFile(path)\n\t\t\t\tconsole.error('Unable to extract colour from custom image', { error, path, response, color })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Extract a Vibrant color palette from a blob URL\n\t\t *\n\t\t * @param {string} blobUrl the blob URL\n\t\t * @return {Promise<Palette>}\n\t\t */\n\t\tgetColorPaletteFromBlob(blobUrl) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst vibrant = new Vibrant(blobUrl)\n\t\t\t\tvibrant.getPalette((error, palette) => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(palette)\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.background-selector {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\n\t.background-color {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 176px;\n\t\theight: 96px;\n\t\tmargin: 8px;\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-primary);\n\t}\n\n\t.background {\n\t\toverflow: hidden;\n\t\twidth: 176px;\n\t\theight: 96px;\n\t\tmargin: 8px;\n\t\ttext-align: center;\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-position: center center;\n\t\tbackground-size: cover;\n\n\t\t&__filepicker {\n\t\t\t&.background--active {\n\t\t\t\tcolor: white;\n\t\t\t\tbackground-image: var(--image-background);\n\t\t\t}\n\t\t}\n\n\t\t&__default {\n\t\t\tbackground-color: var(--color-primary-default);\n\t\t\tbackground-image: linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)), var(--image-background-plain, var(--image-background-default));\n\t\t}\n\n\t\t&__filepicker, &__default, &__color {\n\t\t\tborder-color: var(--color-border);\n\t\t}\n\n\t\t// Over a background image\n\t\t&__default,\n\t\t&__shipped {\n\t\t\tcolor: white;\n\t\t}\n\n\t\t// Text and svg icon dark on bright background\n\t\t&[data-color-bright] {\n\t\t\tcolor: black;\n\t\t}\n\n\t\t&--active,\n\t\t&:hover,\n\t\t&:focus {\n\t\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t\tborder-color: var(--color-main-background) !important;\n\t\t}\n\n\t\t// Icon\n\t\tspan {\n\t\t\tmargin: 4px;\n\t\t}\n\n\t\t.check-icon {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&--active:not(.icon-loading) {\n\t\t\t.check-icon {\n\t\t\t\t// Show checkmark\n\t\t\t\tdisplay: block !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=style&index=0&id=1175e65a&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=style&index=0&id=1175e65a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BackgroundSettings.vue?vue&type=template&id=1175e65a&scoped=true\"\nimport script from \"./BackgroundSettings.vue?vue&type=script&lang=js\"\nexport * from \"./BackgroundSettings.vue?vue&type=script&lang=js\"\nimport style0 from \"./BackgroundSettings.vue?vue&type=style&index=0&id=1175e65a&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1175e65a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"background-selector\",attrs:{\"data-user-theming-background-settings\":\"\"}},[_c('button',{class:{\n\t\t\t'icon-loading': _vm.loading === 'custom',\n\t\t\t'background background__filepicker': true,\n\t\t\t'background--active': _vm.backgroundImage === 'custom'\n\t\t},attrs:{\"aria-pressed\":_vm.backgroundImage === 'custom',\"data-color-bright\":_vm.invertTextColor(_vm.Theming.color),\"data-user-theming-background-custom\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.pickFile}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Custom background'))+\"\\n\\t\\t\"),(_vm.backgroundImage !== 'custom')?_c('ImageEdit',{attrs:{\"size\":26}}):_vm._e(),_vm._v(\" \"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_c('button',{class:{\n\t\t\t'icon-loading': _vm.loading === 'default',\n\t\t\t'background background__default': true,\n\t\t\t'background--active': _vm.backgroundImage === 'default'\n\t\t},style:({ '--border-color': _vm.Theming.defaultColor }),attrs:{\"aria-pressed\":_vm.backgroundImage === 'default',\"data-color-bright\":_vm.invertTextColor(_vm.Theming.defaultColor),\"data-user-theming-background-default\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.setDefault}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Default background'))+\"\\n\\t\\t\"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_c('div',{staticClass:\"background-color\",attrs:{\"data-user-theming-background-color\":\"\"}},[_c('NcColorPicker',{on:{\"input\":_vm.debouncePickColor},model:{value:(_vm.Theming.color),callback:function ($$v) {_vm.$set(_vm.Theming, \"color\", $$v)},expression:\"Theming.color\"}},[_c('NcButton',{attrs:{\"type\":\"ternary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Change color'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('button',{class:{\n\t\t\t'background background__delete': true,\n\t\t\t'background--active': _vm.isBackgroundDisabled\n\t\t},attrs:{\"aria-pressed\":_vm.isBackgroundDisabled,\"data-user-theming-background-clear\":\"\",\"tabindex\":\"0\"},on:{\"click\":_vm.removeBackground}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'No background'))+\"\\n\\t\\t\"),(!_vm.isBackgroundDisabled)?_c('Close',{attrs:{\"size\":32}}):_vm._e(),_vm._v(\" \"),_c('Check',{attrs:{\"size\":44}})],1),_vm._v(\" \"),_vm._l((_vm.shippedBackgrounds),function(shippedBackground){return _c('button',{key:shippedBackground.name,class:{\n\t\t\t'background background__shipped': true,\n\t\t\t'icon-loading': _vm.loading === shippedBackground.name,\n\t\t\t'background--active': _vm.backgroundImage === shippedBackground.name\n\t\t},style:({ backgroundImage: 'url(' + shippedBackground.preview + ')', '--border-color': shippedBackground.details.primary_color }),attrs:{\"title\":shippedBackground.details.attribution,\"aria-label\":shippedBackground.details.description,\"aria-pressed\":_vm.backgroundImage === shippedBackground.name,\"data-color-bright\":shippedBackground.details.theming === 'dark',\"data-user-theming-background-shipped\":shippedBackground.name,\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.setShipped(shippedBackground.name)}}},[_c('Check',{attrs:{\"size\":44}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"theming__preview\",class:'theming__preview--' + _vm.theme.id},[_c('div',{staticClass:\"theming__preview-image\",style:({ backgroundImage: 'url(' + _vm.img + ')' }),on:{\"click\":_vm.onToggle}}),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-description\"},[_c('h3',[_vm._v(_vm._s(_vm.theme.title))]),_vm._v(\" \"),_c('p',{staticClass:\"theming__preview-explanation\"},[_vm._v(_vm._s(_vm.theme.description))]),_vm._v(\" \"),(_vm.enforced)?_c('span',{staticClass:\"theming__preview-warning\",attrs:{\"role\":\"note\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Theme selection is enforced'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{staticClass:\"theming__preview-toggle\",attrs:{\"checked\":_vm.checked,\"disabled\":_vm.enforced,\"name\":_vm.name,\"type\":_vm.switchType},on:{\"update:checked\":function($event){_vm.checked=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.theme.enableLabel)+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div :class=\"'theming__preview--' + theme.id\" class=\"theming__preview\">\n\t\t<div class=\"theming__preview-image\" :style=\"{ backgroundImage: 'url(' + img + ')' }\" @click=\"onToggle\" />\n\t\t<div class=\"theming__preview-description\">\n\t\t\t<h3>{{ theme.title }}</h3>\n\t\t\t<p class=\"theming__preview-explanation\">{{ theme.description }}</p>\n\t\t\t<span v-if=\"enforced\" class=\"theming__preview-warning\" role=\"note\">\n\t\t\t\t{{ t('theming', 'Theme selection is enforced') }}\n\t\t\t</span>\n\t\t\t<NcCheckboxRadioSwitch class=\"theming__preview-toggle\"\n\t\t\t\t:checked.sync=\"checked\"\n\t\t\t\t:disabled=\"enforced\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:type=\"switchType\">\n\t\t\t\t{{ theme.enableLabel }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { generateFilePath } from '@nextcloud/router'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\n\nexport default {\n\tname: 'ItemPreview',\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t},\n\tprops: {\n\t\tenforced: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tselected: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\ttheme: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tunique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tswitchType() {\n\t\t\treturn this.unique ? 'switch' : 'radio'\n\t\t},\n\n\t\tname() {\n\t\t\treturn !this.unique ? this.type : null\n\t\t},\n\n\t\timg() {\n\t\t\treturn generateFilePath('theming', 'img', this.theme.id + '.jpg')\n\t\t},\n\n\t\tchecked: {\n\t\t\tget() {\n\t\t\t\treturn this.selected\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tconsole.debug('Changed theme', this.theme.id, checked)\n\n\t\t\t\t// If this is a radio, we can only enable\n\t\t\t\tif (!this.unique) {\n\t\t\t\t\tthis.$emit('change', { enabled: true, id: this.theme.id })\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\t// If this is a switch, we can disable the theme\n\t\t\t\tthis.$emit('change', { enabled: checked === true, id: this.theme.id })\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonToggle() {\n\t\t\tif (this.switchType === 'radio') {\n\t\t\t\tthis.checked = true\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Invert state\n\t\t\tthis.checked = !this.checked\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n@use 'sass:math';\n\n.theming__preview {\n\t// We make previews on 16/10 screens\n\t--ratio: 16;\n\n\tposition: relative;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\tmax-width: 800px;\n\n\t&,\n\t* {\n\t\tuser-select: none;\n\t}\n\n\t&-image {\n\t\tflex-basis: calc(16px * var(--ratio));\n\t\tflex-shrink: 0;\n\t\theight: calc(10px * var(--ratio));\n\t\tmargin-right: var(--gap);\n\t\tcursor: pointer;\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: top left;\n\t\tbackground-size: cover;\n\t}\n\n\t&-explanation {\n\t\tmargin-bottom: 10px;\n\t}\n\n\t&-description {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3 {\n\t\t\tfont-weight: bold;\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\tlabel {\n\t\t\tpadding: 12px 0;\n\t\t}\n\t}\n\n\t&--default {\n\t\tgrid-column: span 2;\n\t}\n\n\t&-warning {\n\t\tcolor: var(--color-warning);\n\t}\n}\n\n@media (max-width: math.div(1024px, 1.5)) {\n\t.theming__preview {\n\t\tflex-direction: column;\n\n\t\t&-image {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ItemPreview.vue?vue&type=template&id=1a08e35a&scoped=true\"\nimport script from \"./ItemPreview.vue?vue&type=script&lang=js\"\nexport * from \"./ItemPreview.vue?vue&type=script&lang=js\"\nimport style0 from \"./ItemPreview.vue?vue&type=style&index=0&id=1a08e35a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a08e35a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Navigation bar settings')}},[_c('p',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'You can configure the app order used for the navigation bar. The first entry will be the default app, opened after login or when clicking on the logo.'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.enforcedDefaultApp)?_c('NcNoteCard',{attrs:{\"id\":_vm.elementIdEnforcedDefaultApp,\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'The default app can not be changed because it was configured by the administrator.'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasAppOrderChanged)?_c('NcNoteCard',{attrs:{\"id\":_vm.elementIdAppOrderChanged,\"type\":\"info\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'The app order was changed, to see it in action you have to reload the page.'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('AppOrderSelector',{staticClass:\"user-app-menu-order\",attrs:{\"aria-details\":_vm.ariaDetailsAppOrder,\"value\":_vm.appOrder},on:{\"update:value\":_vm.updateAppOrder}}),_vm._v(\" \"),_c('NcButton',{attrs:{\"data-test-id\":\"btn-apporder-reset\",\"disabled\":!_vm.hasCustomAppOrder,\"type\":\"tertiary\"},on:{\"click\":_vm.resetAppOrder},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconUndo',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('theming', 'Reset default app order'))+\"\\n\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import Vue from 'vue'\nimport { getCurrentInstance } from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n warn\n}\n\n// Vue 3 components mock\nfunction createMockComponent(name) {\n return {\n setup() {\n throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\\'s provided to avoid compiler errors.')\n }\n }\n}\nexport var Fragment = /*#__PURE__*/ createMockComponent('Fragment')\nexport var Transition = /*#__PURE__*/ createMockComponent('Transition')\nexport var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')\nexport var Teleport = /*#__PURE__*/ createMockComponent('Teleport')\nexport var Suspense = /*#__PURE__*/ createMockComponent('Suspense')\nexport var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')\n\nexport * from 'vue'\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexport function hasInjectionContext() {\n return !!getCurrentInstance()\n}\n","import Vue from 'vue'\nimport { getCurrentInstance } from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n warn\n}\n\n// Vue 3 components mock\nfunction createMockComponent(name) {\n return {\n setup() {\n throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\\'s provided to avoid compiler errors.')\n }\n }\n}\nexport var Fragment = /*#__PURE__*/ createMockComponent('Fragment')\nexport var Transition = /*#__PURE__*/ createMockComponent('Transition')\nexport var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')\nexport var Teleport = /*#__PURE__*/ createMockComponent('Teleport')\nexport var Suspense = /*#__PURE__*/ createMockComponent('Suspense')\nexport var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')\n\nexport * from 'vue'\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexport function hasInjectionContext() {\n return !!getCurrentInstance()\n}\n","import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, notNullish, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, readonly, nextTick, reactive, markRaw, unref, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], clear, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = computedWithControl(\n () => null,\n () => getDeepActiveElement()\n );\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (commitStyles)\n animate.value.commitStyles();\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(k)]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && permissionRead.value !== \"denied\") {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && permissionWrite.value !== \"denied\")\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n return data;\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n const dispatchWriteEvent = (newValue) => {\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue,\n storageArea: storage\n }\n }));\n }\n };\n if (v == null) {\n dispatchWriteEvent(null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && window && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = Number.parseFloat(styles.width);\n height.value = Number.parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const urlRef = toRef(url);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: readonly(isFinished),\n isFetching: readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n ...gamepad,\n id: gamepad.id,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value })),\n index: gamepad.index\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const screenOrientation = reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, initialOverflow);\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n var _a;\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = (_a = elInitialOverflow.get(el)) != null ? _a : \"\";\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a2, _b;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps) {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n}\n\nfunction createWorkerBlobUrl(fn, deps) {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","import { tryOnMounted, tryOnScopeDispose, toValue, unrefElement, defaultDocument } from '@vueuse/core';\nimport Sortable from 'sortablejs';\nimport { isRef, nextTick } from 'vue-demi';\n\nfunction useSortable(el, list, options = {}) {\n let sortable;\n const { document = defaultDocument, ...resetOptions } = options;\n const defaultOptions = {\n onUpdate: (e) => {\n moveArrayElement(list, e.oldIndex, e.newIndex);\n }\n };\n const start = () => {\n const target = typeof el === \"string\" ? document == null ? void 0 : document.querySelector(el) : unrefElement(el);\n if (!target || sortable !== void 0)\n return;\n sortable = new Sortable(target, { ...defaultOptions, ...resetOptions });\n };\n const stop = () => {\n sortable == null ? void 0 : sortable.destroy();\n sortable = void 0;\n };\n const option = (name, value) => {\n if (value !== void 0)\n sortable == null ? void 0 : sortable.option(name, value);\n else\n return sortable == null ? void 0 : sortable.option(name);\n };\n tryOnMounted(start);\n tryOnScopeDispose(stop);\n return {\n stop,\n start,\n option\n };\n}\nfunction moveArrayElement(list, from, to) {\n const _valueIsRef = isRef(list);\n const array = _valueIsRef ? [...toValue(list)] : toValue(list);\n if (to >= 0 && to < array.length) {\n const element = array.splice(from, 1)[0];\n nextTick(() => {\n array.splice(to, 0, element);\n if (_valueIsRef)\n list.value = array;\n });\n }\n}\n\nexport { moveArrayElement, useSortable };\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{class:{\n\t\t'order-selector-element': true,\n\t\t'order-selector-element--disabled': _vm.app.default\n\t},attrs:{\"data-cy-app-order-element\":_vm.app.id},on:{\"focusin\":function($event){return _vm.$emit('update:focus')}}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"20\",\"viewBox\":\"0 0 20 20\",\"role\":\"presentation\"}},[_c('image',{staticClass:\"order-selector-element__icon\",attrs:{\"preserveAspectRatio\":\"xMinYMin meet\",\"x\":\"0\",\"y\":\"0\",\"width\":\"20\",\"height\":\"20\",\"xlink:href\":_vm.app.icon}})]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__label\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.app.label ?? _vm.app.id)+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"order-selector-element__actions\"},[_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isFirst && !_vm.app.default),expression:\"!isFirst && !app.default\"}],ref:\"buttonUp\",attrs:{\"aria-label\":_vm.t('settings', 'Move up'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"up\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveUp},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowUp',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isFirst || !!_vm.app.default),expression:\"isFirst || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('NcButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLast && !_vm.app.default),expression:\"!isLast && !app.default\"}],ref:\"buttonDown\",attrs:{\"aria-label\":_vm.t('settings', 'Move down'),\"aria-describedby\":_vm.ariaDescribedby,\"aria-details\":_vm.ariaDetails,\"data-cy-app-order-button\":\"down\",\"type\":\"tertiary-no-background\"},on:{\"click\":_vm.moveDown},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconArrowDown',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLast || !!_vm.app.default),expression:\"isLast || !!app.default\"}],staticClass:\"order-selector-element__placeholder\",attrs:{\"aria-hidden\":\"true\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelectorElement.vue?vue&type=template&id=081ebc45&scoped=true\"\nimport script from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelectorElement.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelectorElement.vue?vue&type=style&index=0&id=081ebc45&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"081ebc45\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',[_c('div',{staticClass:\"hidden-visually\",attrs:{\"id\":_vm.statusInfoId,\"aria-live\":\"polite\",\"role\":\"status\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.statusInfo)+\"\\n\\t\")]),_vm._v(\" \"),_c('ol',{ref:\"listElement\",staticClass:\"order-selector\",attrs:{\"data-cy-app-order\":\"\"}},_vm._l((_vm.appList),function(app,index){return _c('AppOrderSelectorElement',_vm._g({key:`${app.id}${_vm.renderCount}`,ref:\"selectorElements\",refInFor:true,attrs:{\"app\":app,\"aria-details\":_vm.ariaDetails,\"aria-describedby\":_vm.statusInfoId,\"is-first\":index === 0 || !!_vm.appList[index - 1].default,\"is-last\":index === _vm.value.length - 1}},app.default ? {} : {\n\t\t\t\t'move:up': () => _vm.moveUp(index),\n\t\t\t\t'move:down': () => _vm.moveDown(index),\n\t\t\t\t'update:focus': () => _vm.updateStatusInfo(index),\n\t\t\t}))}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=style&index=0&id=76d01da8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppOrderSelector.vue?vue&type=style&index=0&id=76d01da8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppOrderSelector.vue?vue&type=template&id=76d01da8&scoped=true\"\nimport script from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./AppOrderSelector.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AppOrderSelector.vue?vue&type=style&index=0&id=76d01da8&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76d01da8\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Undo.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon undo-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UndoIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Undo.vue?vue&type=template&id=a6d3d438\"\nimport script from \"./Undo.vue?vue&type=script&lang=js\"\nexport * from \"./Undo.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon undo-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=style&index=0&id=3d6952db&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserAppMenuSection.vue?vue&type=style&index=0&id=3d6952db&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserAppMenuSection.vue?vue&type=template&id=3d6952db&scoped=true\"\nimport script from \"./UserAppMenuSection.vue?vue&type=script&lang=ts\"\nexport * from \"./UserAppMenuSection.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserAppMenuSection.vue?vue&type=style&index=0&id=3d6952db&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d6952db\",\n null\n \n)\n\nexport default component.exports","<!--\n - @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n - @copyright Copyright (c) 2022 Greta Doci <gretadoci@gmail.com>\n -\n - @author Christopher Ng <chrng8@gmail.com>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n-->\n\n<template>\n\t<section>\n\t\t<NcSettingsSection :name=\"t('theming', 'Appearance and accessibility settings')\"\n\t\t\t:limit-width=\"false\"\n\t\t\tclass=\"theming\">\n\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t<p v-html=\"description\" />\n\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t<p v-html=\"descriptionDetail\" />\n\n\t\t\t<div class=\"theming__preview-list\">\n\t\t\t\t<ItemPreview v-for=\"theme in themes\"\n\t\t\t\t\t:key=\"theme.id\"\n\t\t\t\t\t:enforced=\"theme.id === enforceTheme\"\n\t\t\t\t\t:selected=\"selectedTheme.id === theme.id\"\n\t\t\t\t\t:theme=\"theme\"\n\t\t\t\t\t:unique=\"themes.length === 1\"\n\t\t\t\t\ttype=\"theme\"\n\t\t\t\t\t@change=\"changeTheme\" />\n\t\t\t</div>\n\n\t\t\t<div class=\"theming__preview-list\">\n\t\t\t\t<ItemPreview v-for=\"theme in fonts\"\n\t\t\t\t\t:key=\"theme.id\"\n\t\t\t\t\t:selected=\"theme.enabled\"\n\t\t\t\t\t:theme=\"theme\"\n\t\t\t\t\t:unique=\"fonts.length === 1\"\n\t\t\t\t\ttype=\"font\"\n\t\t\t\t\t@change=\"changeFont\" />\n\t\t\t</div>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection :name=\"t('theming', 'Background')\"\n\t\t\tclass=\"background\"\n\t\t\tdata-user-theming-background-disabled>\n\t\t\t<template v-if=\"isUserThemingDisabled\">\n\t\t\t\t<p>{{ t('theming', 'Customization has been disabled by your administrator') }}</p>\n\t\t\t</template>\n\t\t\t<template v-else>\n\t\t\t\t<p>{{ t('theming', 'Set a custom background') }}</p>\n\t\t\t\t<BackgroundSettings class=\"background__grid\" @update:background=\"refreshGlobalStyles\" />\n\t\t\t</template>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection :name=\"t('theming', 'Keyboard shortcuts')\">\n\t\t\t<p>{{ t('theming', 'In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.') }}</p>\n\t\t\t<NcCheckboxRadioSwitch class=\"theming__preview-toggle\"\n\t\t\t\t:checked.sync=\"shortcutsDisabled\"\n\t\t\t\ttype=\"switch\"\n\t\t\t\t@change=\"changeShortcutsDisabled\">\n\t\t\t\t{{ t('theming', 'Disable all keyboard shortcuts') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcSettingsSection>\n\n\t\t<UserAppMenuSection />\n\t</section>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\n\nimport BackgroundSettings from './components/BackgroundSettings.vue'\nimport ItemPreview from './components/ItemPreview.vue'\nimport UserAppMenuSection from './components/UserAppMenuSection.vue'\n\nconst availableThemes = loadState('theming', 'themes', [])\nconst enforceTheme = loadState('theming', 'enforceTheme', '')\nconst shortcutsDisabled = loadState('theming', 'shortcutsDisabled', false)\n\nconst isUserThemingDisabled = loadState('theming', 'isUserThemingDisabled')\n\nexport default {\n\tname: 'UserThemes',\n\n\tcomponents: {\n\t\tItemPreview,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSettingsSection,\n\t\tBackgroundSettings,\n\t\tUserAppMenuSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tavailableThemes,\n\n\t\t\t// Admin defined configs\n\t\t\tenforceTheme,\n\t\t\tshortcutsDisabled,\n\t\t\tisUserThemingDisabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tthemes() {\n\t\t\treturn this.availableThemes.filter(theme => theme.type === 1)\n\t\t},\n\n\t\tfonts() {\n\t\t\treturn this.availableThemes.filter(theme => theme.type === 2)\n\t\t},\n\n\t\t// Selected theme, fallback on first (default) if none\n\t\tselectedTheme() {\n\t\t\treturn this.themes.find(theme => theme.enabled === true) || this.themes[0]\n\t\t},\n\n\t\tdescription() {\n\t\t\t// using the `t` replace method escape html, we have to do it manually :/\n\t\t\treturn t(\n\t\t\t\t'theming',\n\t\t\t\t'Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.',\n\t\t\t)\n\t\t\t\t.replace('{guidelines}', this.guidelinesLink)\n\t\t\t\t.replace('{linkend}', '</a>')\n\t\t},\n\n\t\tguidelinesLink() {\n\t\t\treturn '<a target=\"_blank\" href=\"https://www.w3.org/WAI/standards-guidelines/wcag/\" rel=\"noreferrer nofollow\">'\n\t\t},\n\n\t\tdescriptionDetail() {\n\t\t\treturn t(\n\t\t\t\t'theming',\n\t\t\t\t'If you find any issues, do not hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!',\n\t\t\t)\n\t\t\t\t.replace('{issuetracker}', this.issuetrackerLink)\n\t\t\t\t.replace('{designteam}', this.designteamLink)\n\t\t\t\t.replace(/\\{linkend\\}/g, '</a>')\n\t\t},\n\n\t\tissuetrackerLink() {\n\t\t\treturn '<a target=\"_blank\" href=\"https://github.com/nextcloud/server/issues/\" rel=\"noreferrer nofollow\">'\n\t\t},\n\n\t\tdesignteamLink() {\n\t\t\treturn '<a target=\"_blank\" href=\"https://nextcloud.com/design\" rel=\"noreferrer nofollow\">'\n\t\t},\n\t},\n\n\twatch: {\n\t\tshortcutsDisabled(newState) {\n\t\t\tthis.changeShortcutsDisabled(newState)\n\t\t},\n\t},\n\n\tmethods: {\n\t\t// Refresh server-side generated theming CSS\n\t\trefreshGlobalStyles() {\n\t\t\t[...document.head.querySelectorAll('link.theme')].forEach(theme => {\n\t\t\t\tconst url = new URL(theme.href)\n\t\t\t\turl.searchParams.set('v', Date.now())\n\t\t\t\tconst newTheme = theme.cloneNode()\n\t\t\t\tnewTheme.href = url.toString()\n\t\t\t\tnewTheme.onload = () => theme.remove()\n\t\t\t\tdocument.head.append(newTheme)\n\t\t\t})\n\t\t},\n\n\t\tupdateBackground(data) {\n\t\t\tthis.background = (data.type === 'custom' || data.type === 'default') ? data.type : data.value\n\t\t\tthis.refreshGlobalStyles()\n\t\t},\n\n\t\tchangeTheme({ enabled, id }) {\n\t\t\t// Reset selected and select new one\n\t\t\tthis.themes.forEach(theme => {\n\t\t\t\tif (theme.id === id && enabled) {\n\t\t\t\t\ttheme.enabled = true\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttheme.enabled = false\n\t\t\t})\n\n\t\t\tthis.updateBodyAttributes()\n\t\t\tthis.selectItem(enabled, id)\n\t\t},\n\n\t\tchangeFont({ enabled, id }) {\n\t\t\t// Reset selected and select new one\n\t\t\tthis.fonts.forEach(font => {\n\t\t\t\tif (font.id === id && enabled) {\n\t\t\t\t\tfont.enabled = true\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tfont.enabled = false\n\t\t\t})\n\n\t\t\tthis.updateBodyAttributes()\n\t\t\tthis.selectItem(enabled, id)\n\t\t},\n\n\t\tasync changeShortcutsDisabled(newState) {\n\t\t\tif (newState) {\n\t\t\t\tawait axios({\n\t\t\t\t\turl: generateOcsUrl('apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\t\t\t\tappId: 'theming',\n\t\t\t\t\t\tconfigKey: 'shortcuts_disabled',\n\t\t\t\t\t}),\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tconfigValue: 'yes',\n\t\t\t\t\t},\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tawait axios({\n\t\t\t\t\turl: generateOcsUrl('apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\t\t\t\tappId: 'theming',\n\t\t\t\t\t\tconfigKey: 'shortcuts_disabled',\n\t\t\t\t\t}),\n\t\t\t\t\tmethod: 'DELETE',\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tupdateBodyAttributes() {\n\t\t\tconst enabledThemesIDs = this.themes.filter(theme => theme.enabled === true).map(theme => theme.id)\n\t\t\tconst enabledFontsIDs = this.fonts.filter(font => font.enabled === true).map(font => font.id)\n\n\t\t\tthis.themes.forEach(theme => {\n\t\t\t\tdocument.body.toggleAttribute(`data-theme-${theme.id}`, theme.enabled)\n\t\t\t})\n\t\t\tthis.fonts.forEach(font => {\n\t\t\t\tdocument.body.toggleAttribute(`data-theme-${font.id}`, font.enabled)\n\t\t\t})\n\n\t\t\tdocument.body.setAttribute('data-themes', [...enabledThemesIDs, ...enabledFontsIDs].join(','))\n\t\t},\n\n\t\t/**\n\t\t * Commit a change and force reload css\n\t\t * Fetching the file again will trigger the server update\n\t\t *\n\t\t * @param {boolean} enabled the theme state\n\t\t * @param {string} themeId the theme ID to change\n\t\t */\n\t\tasync selectItem(enabled, themeId) {\n\t\t\ttry {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tawait axios({\n\t\t\t\t\t\turl: generateOcsUrl('apps/theming/api/v1/theme/{themeId}/enable', { themeId }),\n\t\t\t\t\t\tmethod: 'PUT',\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tawait axios({\n\t\t\t\t\t\turl: generateOcsUrl('apps/theming/api/v1/theme/{themeId}', { themeId }),\n\t\t\t\t\t\tmethod: 'DELETE',\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(err, err.response)\n\t\t\t\tOC.Notification.showTemporary(t('theming', err.response.data.ocs.meta.message + '. Unable to apply the setting.'))\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.theming {\n\t// Limit width of settings sections for readability\n\tp {\n\t\tmax-width: 800px;\n\t}\n\n\t// Proper highlight for links and focus feedback\n\t&::v-deep a {\n\t\tfont-weight: bold;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n\n\t&__preview-list {\n\t\t--gap: 30px;\n\n\t\tdisplay: grid;\n\t\tmargin-top: var(--gap);\n\t\tcolumn-gap: var(--gap);\n\t\trow-gap: var(--gap);\n\t\tgrid-template-columns: 1fr 1fr;\n\t}\n}\n\n.background {\n\t&__grid {\n\t\tmargin-top: 30px;\n\t}\n}\n\n@media (max-width: 1440px) {\n\t.theming__preview-list {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserThemes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserThemes.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserThemes.vue?vue&type=template&id=d643b9e0&scoped=true\"\nimport script from \"./UserThemes.vue?vue&type=script&lang=js\"\nexport * from \"./UserThemes.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserThemes.vue?vue&type=style&index=0&id=d643b9e0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d643b9e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('NcSettingsSection',{staticClass:\"theming\",attrs:{\"name\":_vm.t('theming', 'Appearance and accessibility settings'),\"limit-width\":false}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.description)}}),_vm._v(\" \"),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.descriptionDetail)}}),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-list\"},_vm._l((_vm.themes),function(theme){return _c('ItemPreview',{key:theme.id,attrs:{\"enforced\":theme.id === _vm.enforceTheme,\"selected\":_vm.selectedTheme.id === theme.id,\"theme\":theme,\"unique\":_vm.themes.length === 1,\"type\":\"theme\"},on:{\"change\":_vm.changeTheme}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"theming__preview-list\"},_vm._l((_vm.fonts),function(theme){return _c('ItemPreview',{key:theme.id,attrs:{\"selected\":theme.enabled,\"theme\":theme,\"unique\":_vm.fonts.length === 1,\"type\":\"font\"},on:{\"change\":_vm.changeFont}})}),1)]),_vm._v(\" \"),_c('NcSettingsSection',{staticClass:\"background\",attrs:{\"name\":_vm.t('theming', 'Background'),\"data-user-theming-background-disabled\":\"\"}},[(_vm.isUserThemingDisabled)?[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'Customization has been disabled by your administrator')))])]:[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'Set a custom background')))]),_vm._v(\" \"),_c('BackgroundSettings',{staticClass:\"background__grid\",on:{\"update:background\":_vm.refreshGlobalStyles}})]],2),_vm._v(\" \"),_c('NcSettingsSection',{attrs:{\"name\":_vm.t('theming', 'Keyboard shortcuts')}},[_c('p',[_vm._v(_vm._s(_vm.t('theming', 'In some cases keyboard shortcuts can interfere with accessibility tools. In order to allow focusing on your tool correctly you can disable all keyboard shortcuts here. This will also disable all available shortcuts in apps.')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{staticClass:\"theming__preview-toggle\",attrs:{\"checked\":_vm.shortcutsDisabled,\"type\":\"switch\"},on:{\"update:checked\":function($event){_vm.shortcutsDisabled=$event},\"change\":_vm.changeShortcutsDisabled}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('theming', 'Disable all keyboard shortcuts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('UserAppMenuSection')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getRequestToken } from '@nextcloud/auth'\nimport Vue from 'vue'\n\nimport { refreshStyles } from './helpers/refreshStyles.js'\nimport App from './UserThemes.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.OC = OC\nVue.prototype.t = t\n\nconst View = Vue.extend(App)\nconst theming = new View()\ntheming.$mount('#theming')\ntheming.$on('update:background', refreshStyles)\n","/**\n * @copyright 2022 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport const refreshStyles = () => {\n\t// Refresh server-side generated theming CSS\n\t[...document.head.querySelectorAll('link.theme')].forEach(theme => {\n\t\tconst url = new URL(theme.href)\n\t\turl.searchParams.set('v', Date.now())\n\t\tconst newTheme = theme.cloneNode()\n\t\tnewTheme.href = url.toString()\n\t\tnewTheme.onload = () => theme.remove()\n\t\tdocument.head.append(newTheme)\n\t})\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.theming p[data-v-d643b9e0]{max-width:800px}.theming[data-v-d643b9e0] a{font-weight:bold}.theming[data-v-d643b9e0] a:hover,.theming[data-v-d643b9e0] a:focus{text-decoration:underline}.theming__preview-list[data-v-d643b9e0]{--gap: 30px;display:grid;margin-top:var(--gap);column-gap:var(--gap);row-gap:var(--gap);grid-template-columns:1fr 1fr}.background__grid[data-v-d643b9e0]{margin-top:30px}@media(max-width: 1440px){.theming__preview-list[data-v-d643b9e0]{display:flex;flex-direction:column}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/UserThemes.vue\"],\"names\":[],\"mappings\":\"AAGC,4BACC,eAAA,CAID,4BACC,gBAAA,CAEA,oEAEC,yBAAA,CAIF,wCACC,WAAA,CAEA,YAAA,CACA,qBAAA,CACA,qBAAA,CACA,kBAAA,CACA,6BAAA,CAKD,mCACC,eAAA,CAIF,0BACC,wCACC,YAAA,CACA,qBAAA,CAAA\",\"sourcesContent\":[\"\\n.theming {\\n\\t// Limit width of settings sections for readability\\n\\tp {\\n\\t\\tmax-width: 800px;\\n\\t}\\n\\n\\t// Proper highlight for links and focus feedback\\n\\t&::v-deep a {\\n\\t\\tfont-weight: bold;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\ttext-decoration: underline;\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview-list {\\n\\t\\t--gap: 30px;\\n\\n\\t\\tdisplay: grid;\\n\\t\\tmargin-top: var(--gap);\\n\\t\\tcolumn-gap: var(--gap);\\n\\t\\trow-gap: var(--gap);\\n\\t\\tgrid-template-columns: 1fr 1fr;\\n\\t}\\n}\\n\\n.background {\\n\\t&__grid {\\n\\t\\tmargin-top: 30px;\\n\\t}\\n}\\n\\n@media (max-width: 1440px) {\\n\\t.theming__preview-list {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.order-selector[data-v-76d01da8]{width:max-content;min-width:260px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelector.vue\"],\"names\":[],\"mappings\":\"AACA,iCACC,iBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.order-selector {\\n\\twidth: max-content;\\n\\tmin-width: 260px; // align with NcSelect\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.order-selector-element[data-v-081ebc45]{list-style:none;display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline:12px}.order-selector-element[data-v-081ebc45]:hover{background-color:var(--color-background-hover);border-radius:var(--border-radius-large)}.order-selector-element--disabled[data-v-081ebc45]{border-color:var(--color-text-maxcontrast);color:var(--color-text-maxcontrast)}.order-selector-element--disabled .order-selector-element__icon[data-v-081ebc45]{opacity:75%}.order-selector-element__actions[data-v-081ebc45]{flex:0 0;display:flex;flex-direction:row;gap:6px}.order-selector-element__label[data-v-081ebc45]{flex:1 1;text-overflow:ellipsis;overflow:hidden}.order-selector-element__placeholder[data-v-081ebc45]{height:44px;width:44px}.order-selector-element__icon[data-v-081ebc45]{filter:var(--background-invert-if-bright)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/AppOrderSelectorElement.vue\"],\"names\":[],\"mappings\":\"AACA,yCAEC,eAAA,CAEA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,QAAA,CACA,mBAAA,CAEA,+CACC,8CAAA,CACA,wCAAA,CAGD,mDACC,0CAAA,CACA,mCAAA,CAEA,iFACC,WAAA,CAIF,kDACC,QAAA,CACA,YAAA,CACA,kBAAA,CACA,OAAA,CAGD,gDACC,QAAA,CACA,sBAAA,CACA,eAAA,CAGD,sDACC,WAAA,CACA,UAAA,CAGD,+CACC,yCAAA\",\"sourcesContent\":[\"\\n.order-selector-element {\\n\\t// hide default styling\\n\\tlist-style: none;\\n\\t// Align children\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n\\t// Spacing\\n\\tgap: 12px;\\n\\tpadding-inline: 12px;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&--disabled {\\n\\t\\tborder-color: var(--color-text-maxcontrast);\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t.order-selector-element__icon {\\n\\t\\t\\topacity: 75%;\\n\\t\\t}\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tflex: 0 0;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: 6px;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tflex: 1 1;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t&__placeholder {\\n\\t\\theight: 44px;\\n\\t\\twidth: 44px;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tfilter: var(--background-invert-if-bright);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.background-selector[data-v-1175e65a]{display:flex;flex-wrap:wrap;justify-content:center}.background-selector .background-color[data-v-1175e65a]{display:flex;justify-content:center;align-items:center;width:176px;height:96px;margin:8px;border-radius:var(--border-radius-large);background-color:var(--color-primary)}.background-selector .background[data-v-1175e65a]{overflow:hidden;width:176px;height:96px;margin:8px;text-align:center;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-position:center center;background-size:cover}.background-selector .background__filepicker.background--active[data-v-1175e65a]{color:#fff;background-image:var(--image-background)}.background-selector .background__default[data-v-1175e65a]{background-color:var(--color-primary-default);background-image:linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)),var(--image-background-plain, var(--image-background-default))}.background-selector .background__filepicker[data-v-1175e65a],.background-selector .background__default[data-v-1175e65a],.background-selector .background__color[data-v-1175e65a]{border-color:var(--color-border)}.background-selector .background__default[data-v-1175e65a],.background-selector .background__shipped[data-v-1175e65a]{color:#fff}.background-selector .background[data-color-bright][data-v-1175e65a]{color:#000}.background-selector .background--active[data-v-1175e65a],.background-selector .background[data-v-1175e65a]:hover,.background-selector .background[data-v-1175e65a]:focus{outline:2px solid var(--color-main-text) !important;border-color:var(--color-main-background) !important}.background-selector .background span[data-v-1175e65a]{margin:4px}.background-selector .background .check-icon[data-v-1175e65a]{display:none}.background-selector .background--active:not(.icon-loading) .check-icon[data-v-1175e65a]{display:block !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/BackgroundSettings.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,YAAA,CACA,cAAA,CACA,sBAAA,CAEA,wDACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,wCAAA,CACA,qCAAA,CAGD,kDACC,eAAA,CACA,WAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,iCAAA,CACA,qBAAA,CAGC,iFACC,UAAA,CACA,wCAAA,CAIF,2DACC,6CAAA,CACA,wJAAA,CAGD,kLACC,gCAAA,CAID,sHAEC,UAAA,CAID,qEACC,UAAA,CAGD,0KAGC,mDAAA,CACA,oDAAA,CAID,uDACC,UAAA,CAGD,8DACC,YAAA,CAIA,yFAEC,wBAAA\",\"sourcesContent\":[\"\\n.background-selector {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tjustify-content: center;\\n\\n\\t.background-color {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\twidth: 176px;\\n\\t\\theight: 96px;\\n\\t\\tmargin: 8px;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-primary);\\n\\t}\\n\\n\\t.background {\\n\\t\\toverflow: hidden;\\n\\t\\twidth: 176px;\\n\\t\\theight: 96px;\\n\\t\\tmargin: 8px;\\n\\t\\ttext-align: center;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-position: center center;\\n\\t\\tbackground-size: cover;\\n\\n\\t\\t&__filepicker {\\n\\t\\t\\t&.background--active {\\n\\t\\t\\t\\tcolor: white;\\n\\t\\t\\t\\tbackground-image: var(--image-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__default {\\n\\t\\t\\tbackground-color: var(--color-primary-default);\\n\\t\\t\\tbackground-image: linear-gradient(to bottom, rgba(23, 23, 23, 0.5), rgba(23, 23, 23, 0.5)), var(--image-background-plain, var(--image-background-default));\\n\\t\\t}\\n\\n\\t\\t&__filepicker, &__default, &__color {\\n\\t\\t\\tborder-color: var(--color-border);\\n\\t\\t}\\n\\n\\t\\t// Over a background image\\n\\t\\t&__default,\\n\\t\\t&__shipped {\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t// Text and svg icon dark on bright background\\n\\t\\t&[data-color-bright] {\\n\\t\\t\\tcolor: black;\\n\\t\\t}\\n\\n\\t\\t&--active,\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\toutline: 2px solid var(--color-main-text) !important;\\n\\t\\t\\tborder-color: var(--color-main-background) !important;\\n\\t\\t}\\n\\n\\t\\t// Icon\\n\\t\\tspan {\\n\\t\\t\\tmargin: 4px;\\n\\t\\t}\\n\\n\\t\\t.check-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t&--active:not(.icon-loading) {\\n\\t\\t\\t.check-icon {\\n\\t\\t\\t\\t// Show checkmark\\n\\t\\t\\t\\tdisplay: block !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.theming__preview[data-v-1a08e35a]{--ratio: 16;position:relative;display:flex;justify-content:flex-start;max-width:800px}.theming__preview[data-v-1a08e35a],.theming__preview *[data-v-1a08e35a]{user-select:none}.theming__preview-image[data-v-1a08e35a]{flex-basis:calc(16px*var(--ratio));flex-shrink:0;height:calc(10px*var(--ratio));margin-right:var(--gap);cursor:pointer;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:top left;background-size:cover}.theming__preview-explanation[data-v-1a08e35a]{margin-bottom:10px}.theming__preview-description[data-v-1a08e35a]{display:flex;flex-direction:column}.theming__preview-description h3[data-v-1a08e35a]{font-weight:bold;margin-bottom:0}.theming__preview-description label[data-v-1a08e35a]{padding:12px 0}.theming__preview--default[data-v-1a08e35a]{grid-column:span 2}.theming__preview-warning[data-v-1a08e35a]{color:var(--color-warning)}@media(max-width: 682.6666666667px){.theming__preview[data-v-1a08e35a]{flex-direction:column}.theming__preview-image[data-v-1a08e35a]{margin:0}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/ItemPreview.vue\"],\"names\":[],\"mappings\":\"AAGA,mCAEC,WAAA,CAEA,iBAAA,CACA,YAAA,CACA,0BAAA,CACA,eAAA,CAEA,wEAEC,gBAAA,CAGD,yCACC,kCAAA,CACA,aAAA,CACA,8BAAA,CACA,uBAAA,CACA,cAAA,CACA,kCAAA,CACA,2BAAA,CACA,4BAAA,CACA,qBAAA,CAGD,+CACC,kBAAA,CAGD,+CACC,YAAA,CACA,qBAAA,CAEA,kDACC,gBAAA,CACA,eAAA,CAGD,qDACC,cAAA,CAIF,4CACC,kBAAA,CAGD,2CACC,0BAAA,CAIF,oCACC,mCACC,qBAAA,CAEA,yCACC,QAAA,CAAA\",\"sourcesContent\":[\"\\n@use 'sass:math';\\n\\n.theming__preview {\\n\\t// We make previews on 16/10 screens\\n\\t--ratio: 16;\\n\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tjustify-content: flex-start;\\n\\tmax-width: 800px;\\n\\n\\t&,\\n\\t* {\\n\\t\\tuser-select: none;\\n\\t}\\n\\n\\t&-image {\\n\\t\\tflex-basis: calc(16px * var(--ratio));\\n\\t\\tflex-shrink: 0;\\n\\t\\theight: calc(10px * var(--ratio));\\n\\t\\tmargin-right: var(--gap);\\n\\t\\tcursor: pointer;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: top left;\\n\\t\\tbackground-size: cover;\\n\\t}\\n\\n\\t&-explanation {\\n\\t\\tmargin-bottom: 10px;\\n\\t}\\n\\n\\t&-description {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\th3 {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t}\\n\\n\\t\\tlabel {\\n\\t\\t\\tpadding: 12px 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&--default {\\n\\t\\tgrid-column: span 2;\\n\\t}\\n\\n\\t&-warning {\\n\\t\\tcolor: var(--color-warning);\\n\\t}\\n}\\n\\n@media (max-width: math.div(1024px, 1.5)) {\\n\\t.theming__preview {\\n\\t\\tflex-direction: column;\\n\\n\\t\\t&-image {\\n\\t\\t\\tmargin: 0;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-app-menu-order[data-v-3d6952db]{margin-block:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/theming/src/components/UserAppMenuSection.vue\"],\"names\":[],\"mappings\":\"AACA,sCACC,iBAAA\",\"sourcesContent\":[\"\\n.user-app-menu-order {\\n\\tmargin-block: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar vibrant_1 = __importDefault(require(\"./vibrant\"));\nvar browser_1 = __importDefault(require(\"./image/browser\"));\nvibrant_1.default.DefaultOpts.ImageClass = browser_1.default;\nmodule.exports = vibrant_1.default;\n//# sourceMappingURL=browser.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar vibrant_1 = __importDefault(require(\"./vibrant\"));\nvar clone = require(\"lodash/clone\");\nvar Builder = /** @class */ (function () {\n function Builder(src, opts) {\n if (opts === void 0) { opts = {}; }\n this._src = src;\n this._opts = opts;\n this._opts.filters = clone(vibrant_1.default.DefaultOpts.filters);\n }\n Builder.prototype.maxColorCount = function (n) {\n this._opts.colorCount = n;\n return this;\n };\n Builder.prototype.maxDimension = function (d) {\n this._opts.maxDimension = d;\n return this;\n };\n Builder.prototype.addFilter = function (f) {\n this._opts.filters.push(f);\n return this;\n };\n Builder.prototype.removeFilter = function (f) {\n var i = this._opts.filters.indexOf(f);\n if (i > 0)\n this._opts.filters.splice(i);\n return this;\n };\n Builder.prototype.clearFilters = function () {\n this._opts.filters = [];\n return this;\n };\n Builder.prototype.quality = function (q) {\n this._opts.quality = q;\n return this;\n };\n Builder.prototype.useImageClass = function (imageClass) {\n this._opts.ImageClass = imageClass;\n return this;\n };\n Builder.prototype.useGenerator = function (generator) {\n this._opts.generator = generator;\n return this;\n };\n Builder.prototype.useQuantizer = function (quantizer) {\n this._opts.quantizer = quantizer;\n return this;\n };\n Builder.prototype.build = function () {\n return new vibrant_1.default(this._src, this._opts);\n };\n Builder.prototype.getPalette = function (cb) {\n return this.build().getPalette(cb);\n };\n Builder.prototype.getSwatches = function (cb) {\n return this.build().getPalette(cb);\n };\n return Builder;\n}());\nexports.default = Builder;\n//# sourceMappingURL=builder.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Swatch = void 0;\nvar util_1 = require(\"./util\");\nvar filter = require(\"lodash/filter\");\nvar Swatch = /** @class */ (function () {\n function Swatch(rgb, population) {\n this._rgb = rgb;\n this._population = population;\n }\n Swatch.applyFilter = function (colors, f) {\n return typeof f === 'function'\n ? filter(colors, function (_a) {\n var r = _a.r, g = _a.g, b = _a.b;\n return f(r, g, b, 255);\n })\n : colors;\n };\n Object.defineProperty(Swatch.prototype, \"r\", {\n get: function () { return this._rgb[0]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"g\", {\n get: function () { return this._rgb[1]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"b\", {\n get: function () { return this._rgb[2]; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"rgb\", {\n get: function () { return this._rgb; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"hsl\", {\n get: function () {\n if (!this._hsl) {\n var _a = this._rgb, r = _a[0], g = _a[1], b = _a[2];\n this._hsl = util_1.rgbToHsl(r, g, b);\n }\n return this._hsl;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"hex\", {\n get: function () {\n if (!this._hex) {\n var _a = this._rgb, r = _a[0], g = _a[1], b = _a[2];\n this._hex = util_1.rgbToHex(r, g, b);\n }\n return this._hex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"population\", {\n get: function () { return this._population; },\n enumerable: false,\n configurable: true\n });\n Swatch.prototype.toJSON = function () {\n return {\n rgb: this.rgb,\n population: this.population\n };\n };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getRgb = function () { return this._rgb; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getHsl = function () { return this.hsl; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getPopulation = function () { return this._population; };\n // TODO: deprecate internally, use property instead\n Swatch.prototype.getHex = function () { return this.hex; };\n Swatch.prototype.getYiq = function () {\n if (!this._yiq) {\n var rgb = this._rgb;\n this._yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n }\n return this._yiq;\n };\n Object.defineProperty(Swatch.prototype, \"titleTextColor\", {\n get: function () {\n if (!this._titleTextColor) {\n this._titleTextColor = this.getYiq() < 200 ? '#fff' : '#000';\n }\n return this._titleTextColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Swatch.prototype, \"bodyTextColor\", {\n get: function () {\n if (!this._bodyTextColor) {\n this._bodyTextColor = this.getYiq() < 150 ? '#fff' : '#000';\n }\n return this._bodyTextColor;\n },\n enumerable: false,\n configurable: true\n });\n Swatch.prototype.getTitleTextColor = function () {\n return this.titleTextColor;\n };\n Swatch.prototype.getBodyTextColor = function () {\n return this.bodyTextColor;\n };\n return Swatch;\n}());\nexports.Swatch = Swatch;\n//# sourceMappingURL=color.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction defaultFilter(r, g, b, a) {\n return a >= 125 &&\n !(r > 250 && g > 250 && b > 250);\n}\nexports.default = defaultFilter;\n//# sourceMappingURL=default.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.combineFilters = void 0;\nvar default_1 = require(\"./default\");\nObject.defineProperty(exports, \"Default\", { enumerable: true, get: function () { return default_1.default; } });\nfunction combineFilters(filters) {\n // TODO: caching\n if (!Array.isArray(filters) || filters.length === 0)\n return null;\n return function (r, g, b, a) {\n if (a === 0)\n return false;\n for (var i = 0; i < filters.length; i++) {\n if (!filters[i](r, g, b, a))\n return false;\n }\n return true;\n };\n}\nexports.combineFilters = combineFilters;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../color\");\nvar util_1 = require(\"../util\");\nvar defaults = require(\"lodash/defaults\");\nvar DefaultOpts = {\n targetDarkLuma: 0.26,\n maxDarkLuma: 0.45,\n minLightLuma: 0.55,\n targetLightLuma: 0.74,\n minNormalLuma: 0.3,\n targetNormalLuma: 0.5,\n maxNormalLuma: 0.7,\n targetMutesSaturation: 0.3,\n maxMutesSaturation: 0.4,\n targetVibrantSaturation: 1.0,\n minVibrantSaturation: 0.35,\n weightSaturation: 3,\n weightLuma: 6.5,\n weightPopulation: 0.5\n};\nfunction _findMaxPopulation(swatches) {\n var p = 0;\n swatches.forEach(function (s) {\n p = Math.max(p, s.getPopulation());\n });\n return p;\n}\nfunction _isAlreadySelected(palette, s) {\n return palette.Vibrant === s ||\n palette.DarkVibrant === s ||\n palette.LightVibrant === s ||\n palette.Muted === s ||\n palette.DarkMuted === s ||\n palette.LightMuted === s;\n}\nfunction _createComparisonValue(saturation, targetSaturation, luma, targetLuma, population, maxPopulation, opts) {\n function weightedMean() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var sum = 0;\n var weightSum = 0;\n for (var i = 0; i < values.length; i += 2) {\n var value = values[i];\n var weight = values[i + 1];\n sum += value * weight;\n weightSum += weight;\n }\n return sum / weightSum;\n }\n function invertDiff(value, targetValue) {\n return 1 - Math.abs(value - targetValue);\n }\n return weightedMean(invertDiff(saturation, targetSaturation), opts.weightSaturation, invertDiff(luma, targetLuma), opts.weightLuma, population / maxPopulation, opts.weightPopulation);\n}\nfunction _findColorVariation(palette, swatches, maxPopulation, targetLuma, minLuma, maxLuma, targetSaturation, minSaturation, maxSaturation, opts) {\n var max = null;\n var maxValue = 0;\n swatches.forEach(function (swatch) {\n var _a = swatch.getHsl(), s = _a[1], l = _a[2];\n if (s >= minSaturation && s <= maxSaturation &&\n l >= minLuma && l <= maxLuma &&\n !_isAlreadySelected(palette, swatch)) {\n var value = _createComparisonValue(s, targetSaturation, l, targetLuma, swatch.getPopulation(), maxPopulation, opts);\n if (max === null || value > maxValue) {\n max = swatch;\n maxValue = value;\n }\n }\n });\n return max;\n}\nfunction _generateVariationColors(swatches, maxPopulation, opts) {\n var palette = {};\n // mVibrantSwatch = findColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.Vibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetNormalLuma, opts.minNormalLuma, opts.maxNormalLuma, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mLightVibrantSwatch = findColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.LightVibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetLightLuma, opts.minLightLuma, 1, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mDarkVibrantSwatch = findColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA,\n // TARGET_VIBRANT_SATURATION, MIN_VIBRANT_SATURATION, 1f);\n palette.DarkVibrant = _findColorVariation(palette, swatches, maxPopulation, opts.targetDarkLuma, 0, opts.maxDarkLuma, opts.targetVibrantSaturation, opts.minVibrantSaturation, 1, opts);\n // mMutedSwatch = findColor(TARGET_NORMAL_LUMA, MIN_NORMAL_LUMA, MAX_NORMAL_LUMA,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.Muted = _findColorVariation(palette, swatches, maxPopulation, opts.targetNormalLuma, opts.minNormalLuma, opts.maxNormalLuma, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n // mLightMutedColor = findColor(TARGET_LIGHT_LUMA, MIN_LIGHT_LUMA, 1f,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.LightMuted = _findColorVariation(palette, swatches, maxPopulation, opts.targetLightLuma, opts.minLightLuma, 1, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n // mDarkMutedSwatch = findColor(TARGET_DARK_LUMA, 0f, MAX_DARK_LUMA,\n // TARGET_MUTED_SATURATION, 0f, MAX_MUTED_SATURATION);\n palette.DarkMuted = _findColorVariation(palette, swatches, maxPopulation, opts.targetDarkLuma, 0, opts.maxDarkLuma, opts.targetMutesSaturation, 0, opts.maxMutesSaturation, opts);\n return palette;\n}\nfunction _generateEmptySwatches(palette, maxPopulation, opts) {\n if (palette.Vibrant === null && palette.DarkVibrant === null && palette.LightVibrant === null) {\n if (palette.DarkVibrant === null && palette.DarkMuted !== null) {\n var _a = palette.DarkMuted.getHsl(), h = _a[0], s = _a[1], l = _a[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightVibrant === null && palette.LightMuted !== null) {\n var _b = palette.LightMuted.getHsl(), h = _b[0], s = _b[1], l = _b[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n }\n if (palette.Vibrant === null && palette.DarkVibrant !== null) {\n var _c = palette.DarkVibrant.getHsl(), h = _c[0], s = _c[1], l = _c[2];\n l = opts.targetNormalLuma;\n palette.Vibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n else if (palette.Vibrant === null && palette.LightVibrant !== null) {\n var _d = palette.LightVibrant.getHsl(), h = _d[0], s = _d[1], l = _d[2];\n l = opts.targetNormalLuma;\n palette.Vibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.DarkVibrant === null && palette.Vibrant !== null) {\n var _e = palette.Vibrant.getHsl(), h = _e[0], s = _e[1], l = _e[2];\n l = opts.targetDarkLuma;\n palette.DarkVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightVibrant === null && palette.Vibrant !== null) {\n var _f = palette.Vibrant.getHsl(), h = _f[0], s = _f[1], l = _f[2];\n l = opts.targetLightLuma;\n palette.LightVibrant = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.Muted === null && palette.Vibrant !== null) {\n var _g = palette.Vibrant.getHsl(), h = _g[0], s = _g[1], l = _g[2];\n l = opts.targetMutesSaturation;\n palette.Muted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.DarkMuted === null && palette.DarkVibrant !== null) {\n var _h = palette.DarkVibrant.getHsl(), h = _h[0], s = _h[1], l = _h[2];\n l = opts.targetMutesSaturation;\n palette.DarkMuted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n if (palette.LightMuted === null && palette.LightVibrant !== null) {\n var _j = palette.LightVibrant.getHsl(), h = _j[0], s = _j[1], l = _j[2];\n l = opts.targetMutesSaturation;\n palette.LightMuted = new color_1.Swatch(util_1.hslToRgb(h, s, l), 0);\n }\n}\nvar DefaultGenerator = function (swatches, opts) {\n opts = defaults({}, opts, DefaultOpts);\n var maxPopulation = _findMaxPopulation(swatches);\n var palette = _generateVariationColors(swatches, maxPopulation, opts);\n _generateEmptySwatches(palette, maxPopulation, opts);\n return palette;\n};\nexports.default = DefaultGenerator;\n//# sourceMappingURL=default.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar default_1 = require(\"./default\");\nObject.defineProperty(exports, \"Default\", { enumerable: true, get: function () { return default_1.default; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageBase = void 0;\nvar ImageBase = /** @class */ (function () {\n function ImageBase() {\n }\n ImageBase.prototype.scaleDown = function (opts) {\n var width = this.getWidth();\n var height = this.getHeight();\n var ratio = 1;\n if (opts.maxDimension > 0) {\n var maxSide = Math.max(width, height);\n if (maxSide > opts.maxDimension)\n ratio = opts.maxDimension / maxSide;\n }\n else {\n ratio = 1 / opts.quality;\n }\n if (ratio < 1)\n this.resize(width * ratio, height * ratio, ratio);\n };\n ImageBase.prototype.applyFilter = function (filter) {\n var imageData = this.getImageData();\n if (typeof filter === 'function') {\n var pixels = imageData.data;\n var n = pixels.length / 4;\n var offset = void 0, r = void 0, g = void 0, b = void 0, a = void 0;\n for (var i = 0; i < n; i++) {\n offset = i * 4;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n // Mark ignored color\n if (!filter(r, g, b, a))\n pixels[offset + 3] = 0;\n }\n }\n return Promise.resolve(imageData);\n };\n return ImageBase;\n}());\nexports.ImageBase = ImageBase;\n//# sourceMappingURL=base.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar base_1 = require(\"./base\");\nvar Url = __importStar(require(\"url\"));\nfunction isRelativeUrl(url) {\n var u = Url.parse(url);\n return u.protocol === null &&\n u.host === null &&\n u.port === null;\n}\nfunction isSameOrigin(a, b) {\n var ua = Url.parse(a);\n var ub = Url.parse(b);\n // https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\n return ua.protocol === ub.protocol &&\n ua.hostname === ub.hostname &&\n ua.port === ub.port;\n}\nvar BrowserImage = /** @class */ (function (_super) {\n __extends(BrowserImage, _super);\n function BrowserImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BrowserImage.prototype._initCanvas = function () {\n var img = this.image;\n var canvas = this._canvas = document.createElement('canvas');\n var context = this._context = canvas.getContext('2d');\n canvas.className = 'vibrant-canvas';\n canvas.style.display = 'none';\n this._width = canvas.width = img.width;\n this._height = canvas.height = img.height;\n context.drawImage(img, 0, 0);\n document.body.appendChild(canvas);\n };\n BrowserImage.prototype.load = function (image) {\n var _this = this;\n var img = null;\n var src = null;\n if (typeof image === 'string') {\n img = document.createElement('img');\n if (!isRelativeUrl(image) && !isSameOrigin(window.location.href, image)) {\n img.crossOrigin = 'anonymous';\n }\n src = img.src = image;\n }\n else if (image instanceof HTMLImageElement) {\n img = image;\n src = image.src;\n }\n else {\n return Promise.reject(new Error(\"Cannot load buffer as an image in browser\"));\n }\n this.image = img;\n return new Promise(function (resolve, reject) {\n var onImageLoad = function () {\n _this._initCanvas();\n resolve(_this);\n };\n if (img.complete) {\n // Already loaded\n onImageLoad();\n }\n else {\n img.onload = onImageLoad;\n img.onerror = function (e) { return reject(new Error(\"Fail to load image: \" + src)); };\n }\n });\n };\n BrowserImage.prototype.clear = function () {\n this._context.clearRect(0, 0, this._width, this._height);\n };\n BrowserImage.prototype.update = function (imageData) {\n this._context.putImageData(imageData, 0, 0);\n };\n BrowserImage.prototype.getWidth = function () {\n return this._width;\n };\n BrowserImage.prototype.getHeight = function () {\n return this._height;\n };\n BrowserImage.prototype.resize = function (targetWidth, targetHeight, ratio) {\n var _a = this, canvas = _a._canvas, context = _a._context, img = _a.image;\n this._width = canvas.width = targetWidth;\n this._height = canvas.height = targetHeight;\n context.scale(ratio, ratio);\n context.drawImage(img, 0, 0);\n };\n BrowserImage.prototype.getPixelCount = function () {\n return this._width * this._height;\n };\n BrowserImage.prototype.getImageData = function () {\n return this._context.getImageData(0, 0, this._width, this._height);\n };\n BrowserImage.prototype.remove = function () {\n if (this._canvas && this._canvas.parentNode) {\n this._canvas.parentNode.removeChild(this._canvas);\n }\n };\n return BrowserImage;\n}(base_1.ImageBase));\nexports.default = BrowserImage;\n//# sourceMappingURL=browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebWorker = void 0;\nvar mmcq_1 = require(\"./mmcq\");\nObject.defineProperty(exports, \"MMCQ\", { enumerable: true, get: function () { return mmcq_1.default; } });\nexports.WebWorker = null;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../color\");\nvar vbox_1 = __importDefault(require(\"./vbox\"));\nvar pqueue_1 = __importDefault(require(\"./pqueue\"));\nvar fractByPopulations = 0.75;\nfunction _splitBoxes(pq, target) {\n var lastSize = pq.size();\n while (pq.size() < target) {\n var vbox = pq.pop();\n if (vbox && vbox.count() > 0) {\n var _a = vbox.split(), vbox1 = _a[0], vbox2 = _a[1];\n pq.push(vbox1);\n if (vbox2 && vbox2.count() > 0)\n pq.push(vbox2);\n // No more new boxes, converged\n if (pq.size() === lastSize) {\n break;\n }\n else {\n lastSize = pq.size();\n }\n }\n else {\n break;\n }\n }\n}\nvar MMCQ = function (pixels, opts) {\n if (pixels.length === 0 || opts.colorCount < 2 || opts.colorCount > 256) {\n throw new Error('Wrong MMCQ parameters');\n }\n var vbox = vbox_1.default.build(pixels);\n var hist = vbox.hist;\n var colorCount = Object.keys(hist).length;\n var pq = new pqueue_1.default(function (a, b) { return a.count() - b.count(); });\n pq.push(vbox);\n // first set of colors, sorted by population\n _splitBoxes(pq, fractByPopulations * opts.colorCount);\n // Re-order\n var pq2 = new pqueue_1.default(function (a, b) { return a.count() * a.volume() - b.count() * b.volume(); });\n pq2.contents = pq.contents;\n // next set - generate the median cuts using the (npix * vol) sorting.\n _splitBoxes(pq2, opts.colorCount - pq2.size());\n // calculate the actual colors\n return generateSwatches(pq2);\n};\nfunction generateSwatches(pq) {\n var swatches = [];\n while (pq.size()) {\n var v = pq.pop();\n var color = v.avg();\n var r = color[0], g = color[1], b = color[2];\n swatches.push(new color_1.Swatch(color, v.count()));\n }\n return swatches;\n}\nexports.default = MMCQ;\n//# sourceMappingURL=mmcq.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar PQueue = /** @class */ (function () {\n function PQueue(comparator) {\n this._comparator = comparator;\n this.contents = [];\n this._sorted = false;\n }\n PQueue.prototype._sort = function () {\n if (!this._sorted) {\n this.contents.sort(this._comparator);\n this._sorted = true;\n }\n };\n PQueue.prototype.push = function (item) {\n this.contents.push(item);\n this._sorted = false;\n };\n PQueue.prototype.peek = function (index) {\n this._sort();\n index = typeof index === 'number' ? index : this.contents.length - 1;\n return this.contents[index];\n };\n PQueue.prototype.pop = function () {\n this._sort();\n return this.contents.pop();\n };\n PQueue.prototype.size = function () {\n return this.contents.length;\n };\n PQueue.prototype.map = function (mapper) {\n this._sort();\n return this.contents.map(mapper);\n };\n return PQueue;\n}());\nexports.default = PQueue;\n//# sourceMappingURL=pqueue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar util_1 = require(\"../util\");\nvar VBox = /** @class */ (function () {\n function VBox(r1, r2, g1, g2, b1, b2, hist) {\n this._volume = -1;\n this._count = -1;\n this.dimension = { r1: r1, r2: r2, g1: g1, g2: g2, b1: b1, b2: b2 };\n this.hist = hist;\n }\n VBox.build = function (pixels, shouldIgnore) {\n var hn = 1 << (3 * util_1.SIGBITS);\n var hist = new Uint32Array(hn);\n var rmax;\n var rmin;\n var gmax;\n var gmin;\n var bmax;\n var bmin;\n var r;\n var g;\n var b;\n var a;\n rmax = gmax = bmax = 0;\n rmin = gmin = bmin = Number.MAX_VALUE;\n var n = pixels.length / 4;\n var i = 0;\n while (i < n) {\n var offset = i * 4;\n i++;\n r = pixels[offset + 0];\n g = pixels[offset + 1];\n b = pixels[offset + 2];\n a = pixels[offset + 3];\n // Ignored pixels' alpha is marked as 0 in filtering stage\n if (a === 0)\n continue;\n r = r >> util_1.RSHIFT;\n g = g >> util_1.RSHIFT;\n b = b >> util_1.RSHIFT;\n var index = util_1.getColorIndex(r, g, b);\n hist[index] += 1;\n if (r > rmax)\n rmax = r;\n if (r < rmin)\n rmin = r;\n if (g > gmax)\n gmax = g;\n if (g < gmin)\n gmin = g;\n if (b > bmax)\n bmax = b;\n if (b < bmin)\n bmin = b;\n }\n return new VBox(rmin, rmax, gmin, gmax, bmin, bmax, hist);\n };\n VBox.prototype.invalidate = function () {\n this._volume = this._count = -1;\n this._avg = null;\n };\n VBox.prototype.volume = function () {\n if (this._volume < 0) {\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n this._volume = (r2 - r1 + 1) * (g2 - g1 + 1) * (b2 - b1 + 1);\n }\n return this._volume;\n };\n VBox.prototype.count = function () {\n if (this._count < 0) {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var c = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n c += hist[index];\n }\n }\n }\n this._count = c;\n }\n return this._count;\n };\n VBox.prototype.clone = function () {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n return new VBox(r1, r2, g1, g2, b1, b2, hist);\n };\n VBox.prototype.avg = function () {\n if (!this._avg) {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var ntot = 0;\n var mult = 1 << (8 - util_1.SIGBITS);\n var rsum = void 0;\n var gsum = void 0;\n var bsum = void 0;\n rsum = gsum = bsum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n var h = hist[index];\n ntot += h;\n rsum += (h * (r + 0.5) * mult);\n gsum += (h * (g + 0.5) * mult);\n bsum += (h * (b + 0.5) * mult);\n }\n }\n }\n if (ntot) {\n this._avg = [\n ~~(rsum / ntot),\n ~~(gsum / ntot),\n ~~(bsum / ntot)\n ];\n }\n else {\n this._avg = [\n ~~(mult * (r1 + r2 + 1) / 2),\n ~~(mult * (g1 + g2 + 1) / 2),\n ~~(mult * (b1 + b2 + 1) / 2)\n ];\n }\n }\n return this._avg;\n };\n VBox.prototype.contains = function (rgb) {\n var r = rgb[0], g = rgb[1], b = rgb[2];\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n r >>= util_1.RSHIFT;\n g >>= util_1.RSHIFT;\n b >>= util_1.RSHIFT;\n return r >= r1 && r <= r2 &&\n g >= g1 && g <= g2 &&\n b >= b1 && b <= b2;\n };\n VBox.prototype.split = function () {\n var hist = this.hist;\n var _a = this.dimension, r1 = _a.r1, r2 = _a.r2, g1 = _a.g1, g2 = _a.g2, b1 = _a.b1, b2 = _a.b2;\n var count = this.count();\n if (!count)\n return [];\n if (count === 1)\n return [this.clone()];\n var rw = r2 - r1 + 1;\n var gw = g2 - g1 + 1;\n var bw = b2 - b1 + 1;\n var maxw = Math.max(rw, gw, bw);\n var accSum = null;\n var sum;\n var total;\n sum = total = 0;\n var maxd = null;\n if (maxw === rw) {\n maxd = 'r';\n accSum = new Uint32Array(r2 + 1);\n for (var r = r1; r <= r2; r++) {\n sum = 0;\n for (var g = g1; g <= g2; g++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[r] = total;\n }\n }\n else if (maxw === gw) {\n maxd = 'g';\n accSum = new Uint32Array(g2 + 1);\n for (var g = g1; g <= g2; g++) {\n sum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var b = b1; b <= b2; b++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[g] = total;\n }\n }\n else {\n maxd = 'b';\n accSum = new Uint32Array(b2 + 1);\n for (var b = b1; b <= b2; b++) {\n sum = 0;\n for (var r = r1; r <= r2; r++) {\n for (var g = g1; g <= g2; g++) {\n var index = util_1.getColorIndex(r, g, b);\n sum += hist[index];\n }\n }\n total += sum;\n accSum[b] = total;\n }\n }\n var splitPoint = -1;\n var reverseSum = new Uint32Array(accSum.length);\n for (var i = 0; i < accSum.length; i++) {\n var d = accSum[i];\n if (splitPoint < 0 && d > total / 2)\n splitPoint = i;\n reverseSum[i] = total - d;\n }\n var vbox = this;\n function doCut(d) {\n var dim1 = d + '1';\n var dim2 = d + '2';\n var d1 = vbox.dimension[dim1];\n var d2 = vbox.dimension[dim2];\n var vbox1 = vbox.clone();\n var vbox2 = vbox.clone();\n var left = splitPoint - d1;\n var right = d2 - splitPoint;\n if (left <= right) {\n d2 = Math.min(d2 - 1, ~~(splitPoint + right / 2));\n d2 = Math.max(0, d2);\n }\n else {\n d2 = Math.max(d1, ~~(splitPoint - 1 - left / 2));\n d2 = Math.min(vbox.dimension[dim2], d2);\n }\n while (!accSum[d2])\n d2++;\n var c2 = reverseSum[d2];\n while (!c2 && accSum[d2 - 1])\n c2 = reverseSum[--d2];\n vbox1.dimension[dim2] = d2;\n vbox2.dimension[dim1] = d2 + 1;\n return [vbox1, vbox2];\n }\n return doCut(maxd);\n };\n return VBox;\n}());\nexports.default = VBox;\n//# sourceMappingURL=vbox.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getColorIndex = exports.getColorDiffStatus = exports.hexDiff = exports.rgbDiff = exports.deltaE94 = exports.rgbToCIELab = exports.xyzToCIELab = exports.rgbToXyz = exports.hslToRgb = exports.rgbToHsl = exports.rgbToHex = exports.hexToRgb = exports.defer = exports.RSHIFT = exports.SIGBITS = exports.DELTAE94_DIFF_STATUS = void 0;\nexports.DELTAE94_DIFF_STATUS = {\n NA: 0,\n PERFECT: 1,\n CLOSE: 2,\n GOOD: 10,\n SIMILAR: 50\n};\nexports.SIGBITS = 5;\nexports.RSHIFT = 8 - exports.SIGBITS;\nfunction defer() {\n var resolve;\n var reject;\n // eslint-disable-next-line promise/param-names\n var promise = new Promise(function (_resolve, _reject) {\n resolve = _resolve;\n reject = _reject;\n });\n // @ts-ignore\n return { resolve: resolve, reject: reject, promise: promise };\n}\nexports.defer = defer;\nfunction hexToRgb(hex) {\n var m = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return m === null ? null : [m[1], m[2], m[3]].map(function (s) { return parseInt(s, 16); });\n}\nexports.hexToRgb = hexToRgb;\nfunction rgbToHex(r, g, b) {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1, 7);\n}\nexports.rgbToHex = rgbToHex;\nfunction rgbToHsl(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n // @ts-ignore\n h /= 6;\n }\n // @ts-ignore\n return [h, s, l];\n}\nexports.rgbToHsl = rgbToHsl;\nfunction hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n function hue2rgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n if (s === 0) {\n r = g = b = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - (l * s);\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - (1 / 3));\n }\n return [\n r * 255,\n g * 255,\n b * 255\n ];\n}\nexports.hslToRgb = hslToRgb;\nfunction rgbToXyz(r, g, b) {\n r /= 255;\n g /= 255;\n b /= 255;\n r = r > 0.04045 ? Math.pow((r + 0.005) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.005) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.005) / 1.055, 2.4) : b / 12.92;\n r *= 100;\n g *= 100;\n b *= 100;\n var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x, y, z];\n}\nexports.rgbToXyz = rgbToXyz;\nfunction xyzToCIELab(x, y, z) {\n var REF_X = 95.047;\n var REF_Y = 100;\n var REF_Z = 108.883;\n x /= REF_X;\n y /= REF_Y;\n z /= REF_Z;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n var L = 116 * y - 16;\n var a = 500 * (x - y);\n var b = 200 * (y - z);\n return [L, a, b];\n}\nexports.xyzToCIELab = xyzToCIELab;\nfunction rgbToCIELab(r, g, b) {\n var _a = rgbToXyz(r, g, b), x = _a[0], y = _a[1], z = _a[2];\n return xyzToCIELab(x, y, z);\n}\nexports.rgbToCIELab = rgbToCIELab;\nfunction deltaE94(lab1, lab2) {\n var WEIGHT_L = 1;\n var WEIGHT_C = 1;\n var WEIGHT_H = 1;\n var L1 = lab1[0], a1 = lab1[1], b1 = lab1[2];\n var L2 = lab2[0], a2 = lab2[1], b2 = lab2[2];\n var dL = L1 - L2;\n var da = a1 - a2;\n var db = b1 - b2;\n var xC1 = Math.sqrt(a1 * a1 + b1 * b1);\n var xC2 = Math.sqrt(a2 * a2 + b2 * b2);\n var xDL = L2 - L1;\n var xDC = xC2 - xC1;\n var xDE = Math.sqrt(dL * dL + da * da + db * db);\n var xDH = (Math.sqrt(xDE) > Math.sqrt(Math.abs(xDL)) + Math.sqrt(Math.abs(xDC)))\n ? Math.sqrt(xDE * xDE - xDL * xDL - xDC * xDC)\n : 0;\n var xSC = 1 + 0.045 * xC1;\n var xSH = 1 + 0.015 * xC1;\n xDL /= WEIGHT_L;\n xDC /= WEIGHT_C * xSC;\n xDH /= WEIGHT_H * xSH;\n return Math.sqrt(xDL * xDL + xDC * xDC + xDH * xDH);\n}\nexports.deltaE94 = deltaE94;\nfunction rgbDiff(rgb1, rgb2) {\n var lab1 = rgbToCIELab.apply(undefined, rgb1);\n var lab2 = rgbToCIELab.apply(undefined, rgb2);\n return deltaE94(lab1, lab2);\n}\nexports.rgbDiff = rgbDiff;\nfunction hexDiff(hex1, hex2) {\n var rgb1 = hexToRgb(hex1);\n var rgb2 = hexToRgb(hex2);\n return rgbDiff(rgb1, rgb2);\n}\nexports.hexDiff = hexDiff;\nfunction getColorDiffStatus(d) {\n if (d < exports.DELTAE94_DIFF_STATUS.NA) {\n return 'N/A';\n }\n // Not perceptible by human eyes\n if (d <= exports.DELTAE94_DIFF_STATUS.PERFECT) {\n return 'Perfect';\n }\n // Perceptible through close observation\n if (d <= exports.DELTAE94_DIFF_STATUS.CLOSE) {\n return 'Close';\n }\n // Perceptible at a glance\n if (d <= exports.DELTAE94_DIFF_STATUS.GOOD) {\n return 'Good';\n }\n // Colors are more similar than opposite\n if (d < exports.DELTAE94_DIFF_STATUS.SIMILAR) {\n return 'Similar';\n }\n return 'Wrong';\n}\nexports.getColorDiffStatus = getColorDiffStatus;\nfunction getColorIndex(r, g, b) {\n return (r << (2 * exports.SIGBITS)) + (g << exports.SIGBITS) + b;\n}\nexports.getColorIndex = getColorIndex;\n//# sourceMappingURL=util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"./color\");\nvar builder_1 = __importDefault(require(\"./builder\"));\nvar Util = __importStar(require(\"./util\"));\nvar Quantizer = __importStar(require(\"./quantizer\"));\nvar Generator = __importStar(require(\"./generator\"));\nvar Filters = __importStar(require(\"./filter\"));\nvar defaults = require(\"lodash/defaults\");\nvar Vibrant = /** @class */ (function () {\n function Vibrant(_src, opts) {\n this._src = _src;\n this.opts = defaults({}, opts, Vibrant.DefaultOpts);\n this.opts.combinedFilter = Filters.combineFilters(this.opts.filters);\n }\n Vibrant.from = function (src) {\n return new builder_1.default(src);\n };\n Vibrant.prototype._process = function (image, opts) {\n var quantizer = opts.quantizer, generator = opts.generator;\n image.scaleDown(opts);\n return image.applyFilter(opts.combinedFilter)\n .then(function (imageData) { return quantizer(imageData.data, opts); })\n .then(function (colors) { return color_1.Swatch.applyFilter(colors, opts.combinedFilter); })\n .then(function (colors) { return Promise.resolve(generator(colors)); });\n };\n Vibrant.prototype.palette = function () {\n return this.swatches();\n };\n Vibrant.prototype.swatches = function () {\n return this._palette;\n };\n Vibrant.prototype.getPalette = function (cb) {\n var _this = this;\n var image = new this.opts.ImageClass();\n var result = image.load(this._src)\n .then(function (image) { return _this._process(image, _this.opts); })\n .then(function (palette) {\n _this._palette = palette;\n image.remove();\n return palette;\n }, function (err) {\n image.remove();\n throw err;\n });\n if (cb)\n result.then(function (palette) { return cb(null, palette); }, function (err) { return cb(err); });\n return result;\n };\n Vibrant.Builder = builder_1.default;\n Vibrant.Quantizer = Quantizer;\n Vibrant.Generator = Generator;\n Vibrant.Filter = Filters;\n Vibrant.Util = Util;\n Vibrant.Swatch = color_1.Swatch;\n Vibrant.DefaultOpts = {\n colorCount: 64,\n quality: 5,\n generator: Generator.Default,\n ImageClass: null,\n quantizer: Quantizer.MMCQ,\n filters: [Filters.Default]\n };\n return Vibrant;\n}());\nexports.default = Vibrant;\n//# sourceMappingURL=vibrant.js.map","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (obj === global) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix;\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n strictNullHandling,\n skipNulls,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode');\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n /*\n * RFC 2396: characters reserved for delimiting URLs.\n * We actually just auto-escape these.\n */\n delims = [\n '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [\n '{', '}', '|', '\\\\', '^', '`'\n ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n /*\n * Characters that are never ever allowed in a hostname.\n * Note that any invalid chars are also handled, but these\n * are the ones that are *expected* to be seen, so we fast-path\n * them.\n */\n nonHostChars = [\n '%', '/', '?', ';', '#'\n ].concat(autoEscape),\n hostEndingChars = [\n '/', '?', '#'\n ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n javascript: true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n http: true,\n https: true,\n ftp: true,\n gopher: true,\n file: true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (typeof url !== 'string') {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n /*\n * Copy chrome, IE, opera backslash-handling behavior.\n * Back slashes before the query string get converted to forward slashes\n * See: https://code.google.com/p/chromium/issues/detail?id=25916\n */\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n /*\n * trim before proceeding.\n * This is to support parse stuff like \" http://foo.com \\n\"\n */\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n /*\n * figure out if it's got a host\n * user@server is *always* interpreted as a hostname, and url\n * resolution will treat //foo/bar as host=foo,path=bar because that's\n * how the browser resolves relative URLs.\n */\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n /*\n * there's a hostname.\n * the first instance of /, ?, ;, or # ends the host.\n *\n * If there is an @ in the hostname, then non-host chars *are* allowed\n * to the left of the last @ sign, unless some host-ending character\n * comes *before* the @-sign.\n * URLs are obnoxious.\n *\n * ex:\n * http://a@b@c/ => user:a@b host:c\n * http://a@b?@c => user:a host:c path:/?@c\n */\n\n /*\n * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n * Review our test case against browsers more comprehensively.\n */\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n\n /*\n * at this point, either we have an explicit point where the\n * auth portion cannot go past, or the last @ char is the decider.\n */\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n /*\n * atSign must be in auth portion.\n * http://a@b/c@d => host:b auth:a path:/c@d\n */\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n /*\n * Now we have a portion which is definitely the auth.\n * Pull that off.\n */\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) { hostEnd = rest.length; }\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n /*\n * we've indicated that there is a hostname,\n * so even if it's empty, it has to be present.\n */\n this.hostname = this.hostname || '';\n\n /*\n * if hostname begins with [ and ends with ]\n * assume that it's an IPv6 address.\n */\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n /*\n * we replace non-ASCII char with a temporary placeholder\n * we need this to make sure size of hostname is not\n * broken by replacing non-ASCII by nothing\n */\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n /*\n * IDNA Support: Returns a punycoded representation of \"domain\".\n * It only converts parts of the domain name that\n * have non-ASCII characters, i.e. it doesn't matter if\n * you call it with a domain that already is ASCII-only.\n */\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n /*\n * strip [ and ] from the hostname\n * the host field still retains them, though\n */\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n /*\n * now rest is set to the post-host stuff.\n * chop off any delim chars.\n */\n if (!unsafeProtocol[lowerProto]) {\n\n /*\n * First, make 100% sure that any \"autoEscape\" chars get\n * escaped, even if encodeURIComponent doesn't think they\n * need to be.\n */\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) { continue; }\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n // to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n /*\n * ensure it's an object, and not a string url.\n * If it's an obj, this is a no-op.\n * this way, you can call url_format() on strings\n * to clean up potentially wonky urls.\n */\n if (typeof obj === 'string') { obj = urlParse(obj); }\n if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n query = querystring.stringify(this.query, {\n arrayFormat: 'repeat',\n addQueryPrefix: false\n });\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n /*\n * only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n * unless they had them to begin with.\n */\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) { return relative; }\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (typeof relative === 'string') {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n /*\n * hash is always overridden, no matter what.\n * even href=\"\" will remove it.\n */\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n }\n\n // urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.pathname = '/';\n result.path = result.pathname;\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n /*\n * if it's a known url protocol, then changing\n * the protocol does weird things\n * first, if it's not file:, then we MUST have a host,\n * and if there was a path\n * to begin with, then we MUST have a path.\n * if it is file:, then the host is dropped,\n * because that's known to be hostless.\n * anything else is assumed to be absolute.\n */\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift())) { }\n if (!relative.host) { relative.host = ''; }\n if (!relative.hostname) { relative.hostname = ''; }\n if (relPath[0] !== '') { relPath.unshift(''); }\n if (relPath.length < 2) { relPath.unshift(''); }\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n /*\n * if the url is a non-slashed url, then relative\n * links like ../.. should be able\n * to crawl up to the hostname, as well. This is strange.\n * result.protocol has already been set by now.\n * Later on, put the first path part into the host field.\n */\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n /*\n * it's relative\n * throw away the existing file, and take the new path instead.\n */\n if (!srcPath) { srcPath = []; }\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (relative.search != null) {\n /*\n * just pull out the search.\n * like href='?foo'.\n * Put this after the other two cases because it simplifies the booleans\n */\n if (psychotic) {\n result.host = srcPath.shift();\n result.hostname = result.host;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n // to support http.request\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n /*\n * no path at all. easy.\n * we've already handled the other stuff above.\n */\n result.pathname = null;\n // to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n /*\n * if a url ENDs in . or .., then it must get a trailing slash.\n * however, if it ends in anything else non-slashy,\n * then it must NOT get a trailing slash.\n */\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n /*\n * strip single dots, resolve double dots to parent dir\n * if the path tries to go above the root, `up` ends up > 0\n */\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n result.host = result.hostname;\n /*\n * occationaly the auth can get stuck only in host\n * this especially happens in cases like\n * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n */\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.hostname = authInHost.shift();\n result.host = result.hostname;\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (srcPath.length > 0) {\n result.pathname = srcPath.join('/');\n } else {\n result.pathname = null;\n result.path = null;\n }\n\n // to support request.http\n if (result.pathname !== null || result.search !== null) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1359\":\"93ce268d719fb104336a\",\"8618\":\"1e8f15db3b14455fef8f\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 6673;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t6673: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(55847)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","backgroundImage","loadState","shippedBackgroundList","themingDefaultBackground","defaultShippedBackground","prefixWithBaseUrl","url","generateFilePath","components","Check","Close","ImageEdit","NcButton","NcColorPicker","data","loading","Theming","computed","shippedBackgrounds","Object","keys","map","fileName","preview","details","filter","background","isGlobalBackgroundDeleted","isGlobalBackgroundDefault","isBackgroundDisabled","methods","invertTextColor","color","calculateLuma","red","green","blue","hexToRGB","hex","result","exec","parseInt","update","backgroundColor","setDefault","axios","post","generateUrl","setShipped","shipped","value","setFile","path","arguments","length","undefined","removeBackground","delete","pickColor","event","_event$target","_this$Theming","target","dataset","debouncePickColor","debounce","pickFile","getFilePickerBuilder","t","allowDirectories","setMimeTypeFilter","setMultiSelect","addButton","id","label","callback","nodes","_nodes$","applyFile","build","pick","trim","console","error","showError","response","_palette$DarkVibrant","fileUrl","generateRemoteUrl","getCurrentUser","uid","get","responseType","blobUrl","URL","createObjectURL","palette","getColorPaletteFromBlob","DarkVibrant","debug","Promise","resolve","reject","Vibrant","getPalette","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","class","style","defaultColor","model","$$v","$set","expression","_l","shippedBackground","key","primary_color","attribution","description","theming","NcCheckboxRadioSwitch","enforced","Boolean","selected","theme","required","unique","switchType","img","checked","set","enabled","onToggle","enableLabel","r","util","warn","window","document","cacheStringFunction","fn","cache","create","str","WorkerGlobalScope","globalThis","prototype","toString","hyphenateRE","camelizeRE","replace","toLowerCase","_","c","toUpperCase","defaultDocument","_typeof","obj","Symbol","iterator","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","_extends","assign","i","source","hasOwnProperty","call","apply","_objectSpread","ownKeys","getOwnPropertySymbols","concat","sym","getOwnPropertyDescriptor","forEach","userAgent","pattern","navigator","match","location","global","self","POSITIVE_INFINITY","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","el","addEventListener","off","removeEventListener","matches","selector","substring","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","nodeType","parentNode","closest","ctx","includeCTX","_throttleTimeout","R_SPACE","toggleClass","state","classList","className","css","prop","val","defaultView","getComputedStyle","currentStyle","indexOf","matrix","selfOnly","appliedTransforms","transform","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","find","tagName","list","getElementsByTagName","n","getWindowScrollingElement","scrollingElement","documentElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","top","left","bottom","right","height","width","innerHeight","innerWidth","containerRect","elMatrix","scaleX","a","scaleY","d","isScrolledPast","elSide","parentSide","parent","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","children","display","Sortable","ghost","dragged","draggable","lastChild","last","lastElementChild","previousElementSibling","index","nodeName","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","body","isRectEqual","rect1","rect2","Math","round","throttle","ms","args","setTimeout","scrollBy","x","y","Polymer","$","jQuery","Zepto","dom","cloneNode","expando","Date","getTime","plugins","initializeByDefault","PluginManager","mount","plugin","option","push","pluginEvent","eventName","sortable","evt","_this","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","defaults","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","_ref","originalEvent","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","bind","dragEl","parentEl","ghostEl","rootEl","nextEl","lastDownEl","cloneEl","cloneHidden","dragStarted","moved","putSortable","activeSortable","active","oldIndex","oldDraggableIndex","newIndex","newDraggableIndex","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","info","targetEl","toEl","fromEl","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","to","from","item","pullMode","lastPutMode","allEventProperties","dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","createElement","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","split","touchingSideChild2","clear","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","join","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","some","rect","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","animationCallbackId","animationStates","sort","disabled","store","handle","test","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","slice","child","fromRect","thisAnimationDuration","childMatrix","f","e","addAnimationState","removeAnimationState","splice","arr","indexOfObject","animateAll","clearTimeout","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","pow","calculateRealTime","animate","max","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","src","href","sum","charCodeAt","_nextTick","_cancelNextTick","contains","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","root","inputs","idx","_saveInputCheckedState","button","isContentEditable","criteria","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","abs","floor","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","err","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","b","cssMatrix","appendChild","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","destroy","Array","querySelectorAll","removeAttribute","utils","is","extend","dst","nextTick","cancelNextTick","detectDirection","element","_len","_key","version","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","startIndex","dragStart","_ref2","_ref3","_ref4","parentSortable","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","nulling","ogElemScroller","newElem","useSortable","resetOptions","defaultOptions","onUpdate","_valueIsRef","array","moveArrayElement","start","querySelector","elRef","_a","plain","$el","unrefElement","stop","sync","getLifeCycleTarget","defineComponent","IconArrowDown","IconArrowUp","ariaDescribedby","ariaDetails","app","isFirst","isLast","move:up","move:down","update:focus","setup","emit","buttonUp","ref","buttonDown","needsFocus","moveUp","moveDown","keepFocus","focus","_vm$app$label","_setupProxy","icon","directives","rawName","scopedSlots","_u","proxy","AppOrderSelectorElement","Fragment","isArray","listElement","appList","newValue","renderCount","selectorElements","onUpdated","statusInfo","before","_props$value","statusInfoId","random","updateStatusInfo","position","total","_g","refInFor","AppOrderSelector","IconUndo","NcNoteCard","NcSettingsSection","userAppOrder","enforcedDefaultApp","initialAppOrder","values","hasCustomAppOrder","hasAppOrderChanged","appOrder","elementIdAppOrderChanged","elementIdEnforcedDefaultApp","ariaDetailsAppOrder","saveSetting","generateOcsUrl","appId","configKey","configValue","JSON","stringify","updateAppOrder","then","catch","resetAppOrder","headers","ocs","availableThemes","enforceTheme","shortcutsDisabled","isUserThemingDisabled","ItemPreview","BackgroundSettings","UserAppMenuSection","themes","fonts","selectedTheme","guidelinesLink","descriptionDetail","issuetrackerLink","designteamLink","watch","newState","changeShortcutsDisabled","refreshGlobalStyles","head","searchParams","now","newTheme","onload","remove","append","updateBackground","changeTheme","updateBodyAttributes","selectItem","changeFont","font","method","enabledThemesIDs","enabledFontsIDs","toggleAttribute","setAttribute","themeId","OC","Notification","showTemporary","meta","message","domProps","__webpack_nonce__","btoa","getRequestToken","Vue","App","$mount","$on","refreshStyles","___CSS_LOADER_EXPORT___","module","baseForOwn","baseEach","createBaseEach","exports","collection","predicate","baseFor","object","iteratee","isArrayLike","eachFunc","fromRight","iterable","baseRest","eq","isIterateeCall","keysIn","objectProto","sources","guard","propsIndex","propsLength","arrayFilter","baseFilter","baseIteratee","__importDefault","mod","__esModule","vibrant_1","browser_1","DefaultOpts","ImageClass","Builder","opts","_src","_opts","filters","maxColorCount","colorCount","maxDimension","addFilter","removeFilter","clearFilters","quality","q","useImageClass","imageClass","useGenerator","generator","useQuantizer","quantizer","cb","getSwatches","Swatch","util_1","rgb","population","_rgb","_population","applyFilter","colors","g","_hsl","rgbToHsl","_hex","rgbToHex","toJSON","getRgb","getHsl","hsl","getPopulation","getHex","getYiq","_yiq","_titleTextColor","_bodyTextColor","getTitleTextColor","titleTextColor","getBodyTextColor","bodyTextColor","combineFilters","default_1","color_1","targetDarkLuma","maxDarkLuma","minLightLuma","targetLightLuma","minNormalLuma","targetNormalLuma","maxNormalLuma","targetMutesSaturation","maxMutesSaturation","targetVibrantSaturation","minVibrantSaturation","weightSaturation","weightLuma","weightPopulation","_findColorVariation","swatches","maxPopulation","targetLuma","minLuma","maxLuma","targetSaturation","minSaturation","maxSaturation","maxValue","swatch","s","l","LightVibrant","Muted","DarkMuted","LightMuted","_isAlreadySelected","saturation","luma","invertDiff","targetValue","_i","weightSum","weight","weightedMean","_createComparisonValue","p","_findMaxPopulation","_generateVariationColors","h","hslToRgb","_d","_f","_h","_j","_generateEmptySwatches","ImageBase","scaleDown","getWidth","getHeight","ratio","maxSide","resize","imageData","getImageData","pixels","offset","extendStatics","__extends","setPrototypeOf","__proto__","__","__createBinding","o","m","k","k2","__setModuleDefault","v","__importStar","base_1","Url","BrowserImage","_super","_initCanvas","image","canvas","_canvas","context","_context","getContext","_width","_height","drawImage","load","ua","ub","u","parse","protocol","port","hostname","crossOrigin","HTMLImageElement","Error","onImageLoad","complete","onerror","clearRect","putImageData","targetWidth","targetHeight","scale","getPixelCount","WebWorker","mmcq_1","vbox_1","pqueue_1","_splitBoxes","pq","lastSize","vbox","pop","count","vbox1","vbox2","hist","pq2","volume","contents","avg","generateSwatches","PQueue","comparator","_comparator","_sorted","_sort","peek","mapper","VBox","r1","r2","g1","g2","b1","b2","_volume","_count","dimension","shouldIgnore","rmax","rmin","gmax","gmin","bmax","bmin","hn","SIGBITS","Uint32Array","MAX_VALUE","RSHIFT","getColorIndex","invalidate","_avg","ntot","mult","rsum","gsum","bsum","rw","gw","bw","maxw","accSum","maxd","splitPoint","reverseSum","dim1","dim2","d1","d2","min","c2","doCut","hexToRgb","rgbToXyz","xyzToCIELab","z","rgbToCIELab","deltaE94","lab1","lab2","L1","a1","L2","a2","dL","da","db","xC1","xDL","xDC","xDE","xDH","rgbDiff","rgb1","rgb2","getColorDiffStatus","hexDiff","defer","DELTAE94_DIFF_STATUS","NA","PERFECT","CLOSE","GOOD","SIMILAR","promise","_resolve","_reject","hue2rgb","hex1","hex2","builder_1","Util","Quantizer","Generator","Filters","combinedFilter","_process","_palette","Filter","Default","MMCQ","hasMap","Map","mapSizeDescriptor","mapSize","mapForEach","hasSet","Set","setSizeDescriptor","setSize","setForEach","weakMapHas","WeakMap","has","weakSetHas","WeakSet","weakRefDeref","WeakRef","deref","booleanValueOf","valueOf","objectToString","functionToString","Function","$match","$slice","$replace","$toUpperCase","$toLowerCase","$test","RegExp","$concat","$join","$arrSlice","$floor","bigIntValueOf","BigInt","gOPS","symToString","hasShammedSymbols","toStringTag","isEnumerable","gPO","Reflect","getPrototypeOf","O","addNumericSeparator","num","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","isSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","quote","toStr","isRegExp","inspect_","depth","seen","TypeError","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","base","prev","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","attributes","childNodes","xs","singleLineValues","indentedJoin","isError","parts","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","isDate","ys","isPlainObject","protoTag","stringTag","tag","hasOwn","remaining","trailer","lowbyte","entries","lineJoiner","isArr","symMap","syms","j","GetIntrinsic","callBound","$TypeError","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","curr","next","$wm","$m","$o","channel","assert","objects","node","listGet","listHas","listSet","freeGlobal","punycode","maxInt","tMax","skew","damp","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","stringFromCharCode","fromCharCode","RangeError","mapDomain","string","ucs2decode","output","counter","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","decode","input","out","basic","oldi","w","baseMinusT","codePoint","inputLength","bias","lastIndexOf","encode","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","percentTwenties","Format","formatters","RFC1738","RFC3986","formats","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decoder","delimiter","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","$0","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","segment","chain","leaf","cleanRoot","isNaN","parseObject","normalizeParseOptions","tempObj","cleanStr","limit","skipIndex","part","bracketEqualsPos","pos","maybeMap","encodedVal","combine","parseValues","newObj","merge","compact","getSideChannel","arrayPrefixGenerators","brackets","prefix","indices","repeat","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","addQueryPrefix","encoder","encodeValuesOnly","format","formatter","serializeDate","date","skipNulls","sentinel","generateArrayPrefix","commaRoundTrip","sideChannel","tmpSc","step","findFlag","isBuffer","objKeys","adjustedPrefix","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","joined","hexTable","arrayToObject","reduce","acc","queue","refs","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","kind","escape","mapped","mergeTarget","targetItem","slashes","auth","hash","search","query","pathname","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","querystring","urlParse","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","rest","simplePath","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","toASCII","ae","esc","encodeURIComponent","qm","relative","resolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","every","getter","definition","chunkId","all","promises","done","script","needAttach","scripts","timeout","nc","onScriptComplete","doneFns","nmd","paths","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file