From 5730cc6b83ed81980d636345e256bc59100feacd Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Thu, 8 Jun 2023 21:22:37 +0000 Subject: [PATCH] fix(Viewer): fix taking sidebar position in fullscreen mode --- js/viewer-components.js | 13248 +++- js/viewer-components.js.LICENSE.txt | 28 - js/viewer-components.js.map | 2 +- js/viewer-filerobot.js | 92575 +++++++++++++++++++++++++- js/viewer-filerobot.js.LICENSE.txt | 68 - js/viewer-filerobot.js.map | 2 +- js/viewer-main.js | 56741 +++++++++++++++- js/viewer-main.js.LICENSE.txt | 99 - js/viewer-main.js.map | 2 +- js/viewer-plyr.js | 93 +- js/viewer-plyr.js.map | 2 +- src/views/Viewer.vue | 18 +- 12 files changed, 162660 insertions(+), 218 deletions(-) delete mode 100644 js/viewer-components.js.LICENSE.txt delete mode 100644 js/viewer-filerobot.js.LICENSE.txt delete mode 100644 js/viewer-main.js.LICENSE.txt diff --git a/js/viewer-components.js b/js/viewer-components.js index 0c243cf85..35aab3354 100644 --- a/js/viewer-components.js +++ b/js/viewer-components.js @@ -1,3 +1,13245 @@ -/*! For license information please see viewer-components.js.LICENSE.txt */ -(self.webpackChunkviewer=self.webpackChunkviewer||[]).push([["components"],{3955:(e,t,n)=>{"use strict";var a=n(7699);n(9753),n(7856),n(5573);class r{constructor(){this.translations={},this.debug=!1}setLanguage(e){return this.locale=e,this}detectLocale(){return this.setLanguage((document.documentElement.lang||"en").replace("-","_"))}addTranslation(e,t){return this.translations[e]=t,this}enableDebugMode(){return this.debug=!0,this}build(){return new o(this.locale||"en",this.translations,this.debug)}}class o{constructor(e,t,n){this.gt=new a({debug:n,sourceLocale:"en"});for(const e in t)this.gt.addTranslations(e,"messages",t[e]);this.gt.setLocale(e)}subtitudePlaceholders(e,t){return e.replace(/{([^{}]*)}/g,((e,n)=>{const a=t[n];return"string"==typeof a||"number"==typeof a?a.toString():e}))}gettext(e,t={}){return this.subtitudePlaceholders(this.gt.gettext(e),t)}ngettext(e,t,n,a={}){return this.subtitudePlaceholders(this.gt.ngettext(e,t,n).replace(/%n/g,n.toString()),a)}}t.getGettextBuilder=function(){return new r}},5400:(e,t,n)=>{var a;self,a=()=>(()=>{var e={723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var a=n(2734),r=n.n(a);const o={before:function(){this.$slots.default&&""!==this.text.trim()||(r().util.warn("".concat(this.$options.name," cannot be empty and requires a meaningful text content"),this),this.$destroy(),this.$el.remove())},beforeUpdate:function(){this.text=this.getText()},data:function(){return{text:this.getText()}},computed:{isLongText:function(){return this.text&&this.text.trim().length>20}},methods:{getText:function(){return this.$slots.default?this.$slots.default[0].text.trim():""}}}},1139:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=n(723);const r={mixins:[a.Z],props:{icon:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:""}},emits:["click"],computed:{isIconUrl:function(){try{return new URL(this.icon)}catch(e){return!1}}},methods:{onClick:function(e){if(this.$emit("click",e),this.closeAfterClick){var t=function(e,t){for(var n=e.$parent;n;){if(n.$options.name===t)return n;n=n.$parent}}(this,"NcActions");t&&t.closeMenu&&t.closeMenu(!1)}}}}},9725:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".material-design-icon[data-v-1846a4cc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-1846a4cc]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-1846a4cc]{pointer-events:none;opacity:.5}.action--disabled[data-v-1846a4cc]:hover,.action--disabled[data-v-1846a4cc]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-1846a4cc]{opacity:1 !important}.action-button[data-v-1846a4cc]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-button[data-v-1846a4cc]:hover,.action-button[data-v-1846a4cc]:focus{opacity:1}.action-button>span[data-v-1846a4cc]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-1846a4cc]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-1846a4cc] .material-design-icon{width:44px;height:44px;opacity:1}.action-button[data-v-1846a4cc] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button p[data-v-1846a4cc]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-1846a4cc]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-1846a4cc]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CAOF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,4EAEC,SChCY,CDmCb,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,sDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA",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","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \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 .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\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 s=i},3645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var s=0;s0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},7537:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},3379:e=>{"use strict";var t=[];function n(e){for(var n=-1,a=0;a{"use strict";var t={};e.exports=function(e,n){var a=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},9216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},3565:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7795:e=>{"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},4589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},4216:()=>{},1900:(e,t,n)=>{"use strict";function a(e,t,n,a,r,o,i,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),a&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),i?(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__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},u._ssrRegister=l):r&&(l=s?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:u}}n.d(t,{Z:()=>a})},2734:e=>{"use strict";e.exports=n(144)}},t={};function a(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={id:n,exports:{}};return e[n](o,o.exports,a),o.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nc=void 0;var r={};return(()=>{"use strict";a.r(r),a.d(r,{default:()=>C});const e={name:"NcActionButton",mixins:[a(1139).Z],props:{disabled:{type:Boolean,default:!1}},computed:{isFocusable:function(){return!this.disabled}}};var t=a(3379),n=a.n(t),o=a(7795),i=a.n(o),s=a(569),l=a.n(s),u=a(3565),c=a.n(u),p=a(9216),d=a.n(p),h=a(4589),m=a.n(h),f=a(9725),g={};g.styleTagTransform=m(),g.setAttributes=c(),g.insert=l().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=d(),n()(f.Z,g),f.Z&&f.Z.locals&&f.Z.locals;var v=a(1900),A=a(4216),b=a.n(A),y=(0,v.Z)(e,(function(){var e=this,t=e._self._c;return t("li",{staticClass:"action",class:{"action--disabled":e.disabled},attrs:{role:"presentation"}},[t("button",{staticClass:"action-button",class:{focusable:e.isFocusable},attrs:{"aria-label":e.ariaLabel,role:"menuitem",type:"button"},on:{click:e.onClick}},[e._t("icon",(function(){return[t("span",{staticClass:"action-button__icon",class:[e.isIconUrl?"action-button__icon--url":e.icon],style:{backgroundImage:e.isIconUrl?"url(".concat(e.icon,")"):null}})]})),e._v(" "),e.title?t("p",[t("strong",{staticClass:"action-button__title"},[e._v("\n\t\t\t\t"+e._s(e.title)+"\n\t\t\t")]),e._v(" "),t("br"),e._v(" "),t("span",{staticClass:"action-button__longtext",domProps:{textContent:e._s(e.text)}})]):e.isLongText?t("p",{staticClass:"action-button__longtext",domProps:{textContent:e._s(e.text)}}):t("span",{staticClass:"action-button__text"},[e._v(e._s(e.text))]),e._v(" "),e._e()],2)])}),[],!1,null,"1846a4cc",null);"function"==typeof b()&&b()(y);const C=y.exports})(),r})(),e.exports=a()},6212:(e,t,n)=>{var a;self,a=()=>(()=>{var e={723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var a=n(2734),r=n.n(a);const o={before:function(){this.$slots.default&&""!==this.text.trim()||(r().util.warn("".concat(this.$options.name," cannot be empty and requires a meaningful text content"),this),this.$destroy(),this.$el.remove())},beforeUpdate:function(){this.text=this.getText()},data:function(){return{text:this.getText()}},computed:{isLongText:function(){return this.text&&this.text.trim().length>20}},methods:{getText:function(){return this.$slots.default?this.$slots.default[0].text.trim():""}}}},1139:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=n(723);const r={mixins:[a.Z],props:{icon:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:""}},emits:["click"],computed:{isIconUrl:function(){try{return new URL(this.icon)}catch(e){return!1}}},methods:{onClick:function(e){if(this.$emit("click",e),this.closeAfterClick){var t=function(e,t){for(var n=e.$parent;n;){if(n.$options.name===t)return n;n=n.$parent}}(this,"NcActions");t&&t.closeMenu&&t.closeMenu(!1)}}}}},6368:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".material-design-icon[data-v-b0b3faba]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-b0b3faba]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-link[data-v-b0b3faba]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-link[data-v-b0b3faba]:hover,.action-link[data-v-b0b3faba]:focus{opacity:1}.action-link>span[data-v-b0b3faba]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-b0b3faba]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-link[data-v-b0b3faba] .material-design-icon{width:44px;height:44px;opacity:1}.action-link[data-v-b0b3faba] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link p[data-v-b0b3faba]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-link__longtext[data-v-b0b3faba]{cursor:pointer;white-space:pre-wrap}.action-link__title[data-v-b0b3faba]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,8BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,wEAEC,SChCY,CDmCb,mCACC,cAAA,CACA,kBAAA,CAGD,oCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,oDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,+EACC,qBAAA,CAKF,gCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,wCACC,cAAA,CAEA,oBAAA,CAGD,qCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA",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","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \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 .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\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 s=i},3645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var s=0;s0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},7537:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},3379:e=>{"use strict";var t=[];function n(e){for(var n=-1,a=0;a{"use strict";var t={};e.exports=function(e,n){var a=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},9216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},3565:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7795:e=>{"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},4589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},9158:()=>{},1900:(e,t,n)=>{"use strict";function a(e,t,n,a,r,o,i,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),a&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),i?(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__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},u._ssrRegister=l):r&&(l=s?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:u}}n.d(t,{Z:()=>a})},2734:e=>{"use strict";e.exports=n(144)}},t={};function a(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={id:n,exports:{}};return e[n](o,o.exports,a),o.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nc=void 0;var r={};return(()=>{"use strict";a.r(r),a.d(r,{default:()=>C});const e={name:"NcActionLink",mixins:[a(1139).Z],props:{href:{type:String,default:"#",required:!0,validator:function(e){try{return new URL(e)}catch(t){return e.startsWith("#")||e.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:function(e){return e&&(!e.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(e)>-1)}},title:{type:String,default:null}}};var t=a(3379),n=a.n(t),o=a(7795),i=a.n(o),s=a(569),l=a.n(s),u=a(3565),c=a.n(u),p=a(9216),d=a.n(p),h=a(4589),m=a.n(h),f=a(6368),g={};g.styleTagTransform=m(),g.setAttributes=c(),g.insert=l().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=d(),n()(f.Z,g),f.Z&&f.Z.locals&&f.Z.locals;var v=a(1900),A=a(9158),b=a.n(A),y=(0,v.Z)(e,(function(){var e=this,t=e._self._c;return t("li",{staticClass:"action"},[t("a",{staticClass:"action-link focusable",attrs:{download:e.download,href:e.href,"aria-label":e.ariaLabel,target:e.target,title:e.title,rel:"nofollow noreferrer noopener"},on:{click:e.onClick}},[e._t("icon",(function(){return[t("span",{staticClass:"action-link__icon",class:[e.isIconUrl?"action-link__icon--url":e.icon],style:{backgroundImage:e.isIconUrl?"url(".concat(e.icon,")"):null}})]})),e._v(" "),e.title?t("p",[t("strong",{staticClass:"action-link__title"},[e._v("\n\t\t\t\t"+e._s(e.title)+"\n\t\t\t")]),e._v(" "),t("br"),e._v(" "),t("span",{staticClass:"action-link__longtext",domProps:{textContent:e._s(e.text)}})]):e.isLongText?t("p",{staticClass:"action-link__longtext",domProps:{textContent:e._s(e.text)}}):t("span",{staticClass:"action-link__text"},[e._v(e._s(e.text))]),e._v(" "),e._e()],2)])}),[],!1,null,"b0b3faba",null);"function"==typeof b()&&b()(y);const C=y.exports})(),r})(),e.exports=a()},110:(e,t,n)=>{var a;self,a=()=>(()=>{var e={5471:(e,t,n)=>{"use strict";n.d(t,{default:()=>L});var a=n(9479),r=n(1241),o=n(336),i=n(1205),s=n(932),l=n(2734),u=n.n(l),c=n(1441),p=n.n(c);function d(e){return d="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},d(e)}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function m(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,a=new Array(t);n0&&void 0!==arguments[0])||arguments[0];this.opened&&(this.opened=!1,this.$refs.popover.clearFocusTrap({returnFocus:e}),this.$emit("update:open",!1),this.$emit("close"),this.opened=!1,this.focusIndex=0,this.$refs.menuButton.$el.focus())},onOpen:function(e){var t=this;this.$nextTick((function(){t.focusFirstAction(e)}))},onMouseFocusAction:function(e){if(document.activeElement!==e.target){var t=e.target.closest("li");if(t){var n=t.querySelector(A);if(n){var a=g(this.$refs.menu.querySelectorAll(A)).indexOf(n);a>-1&&(this.focusIndex=a,this.focusAction())}}}},onKeydown:function(e){(38===e.keyCode||9===e.keyCode&&e.shiftKey)&&this.focusPreviousAction(e),(40===e.keyCode||9===e.keyCode&&!e.shiftKey)&&this.focusNextAction(e),33===e.keyCode&&this.focusFirstAction(e),34===e.keyCode&&this.focusLastAction(e),27===e.keyCode&&(this.closeMenu(),e.preventDefault())},removeCurrentActive:function(){var e=this.$refs.menu.querySelector("li.active");e&&e.classList.remove("active")},focusAction:function(){var e=this.$refs.menu.querySelectorAll(A)[this.focusIndex];if(e){this.removeCurrentActive();var t=e.closest("li.action");e.focus(),t&&t.classList.add("active")}},focusPreviousAction:function(e){this.opened&&(0===this.focusIndex?this.closeMenu():(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction:function(e){if(this.opened){var t=this.$refs.menu.querySelectorAll(A).length-1;this.focusIndex===t?this.closeMenu():(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction:function(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=0,this.focusAction())},focusLastAction:function(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.$refs.menu.querySelectorAll(A).length-1,this.focusAction())},preventIfEvent:function(e){e&&(e.preventDefault(),e.stopPropagation())},onFocus:function(e){this.$emit("focus",e)},onBlur:function(e){this.$emit("blur",e)}},render:function(e){var t=this,n=(this.$slots.default||[]).filter((function(e){var t;return null==e||null===(t=e.componentOptions)||void 0===t?void 0:t.tag})),a=n.filter(this.isValidSingleAction);if(this.forceMenu&&a.length>0&&this.inline>0&&(u().util.warn("Specifying forceMenu will ignore any inline actions rendering."),a=[]),0!==n.length){var r=function(n){var a,r,o,i,s,l,u,c,p,d,h,f,g,v,A,b,y,C,w,x,k,S,_,T=(null==n||null===(a=n.data)||void 0===a||null===(r=a.scopedSlots)||void 0===r||null===(o=r.icon())||void 0===o?void 0:o[0])||e("span",{class:["icon",null==n||null===(i=n.componentOptions)||void 0===i||null===(s=i.propsData)||void 0===s?void 0:s.icon]}),P=t.forceTitle?t.menuTitle:"",E=null==n||null===(l=n.componentOptions)||void 0===l||null===(u=l.listeners)||void 0===u?void 0:u.click;return e("NcButton",{class:["action-item action-item--single",null==n||null===(c=n.data)||void 0===c?void 0:c.staticClass,null==n||null===(p=n.data)||void 0===p?void 0:p.class],attrs:{"aria-label":(null==n||null===(d=n.componentOptions)||void 0===d||null===(h=d.propsData)||void 0===h?void 0:h.ariaLabel)||(null==n||null===(f=n.componentOptions)||void 0===f||null===(g=f.children)||void 0===g||null===(v=g[0])||void 0===v?void 0:v.text),title:null==n||null===(A=n.componentOptions)||void 0===A||null===(b=A.propsData)||void 0===b?void 0:b.title},ref:null==n||null===(y=n.data)||void 0===y?void 0:y.ref,props:m({type:t.type||(P?"secondary":"tertiary"),disabled:t.disabled||(null==n||null===(C=n.componentOptions)||void 0===C||null===(w=C.propsData)||void 0===w?void 0:w.disabled)},null==n||null===(x=n.componentOptions)||void 0===x?void 0:x.propsData),directives:[{name:"tooltip",value:null==n||null===(k=n.componentOptions)||void 0===k||null===(S=k.children)||void 0===S||null===(_=S[0])||void 0===_?void 0:_.text,modifiers:{auto:!0}}],on:m({focus:t.onFocus,blur:t.onBlur},!!E&&{click:function(e){E&&E(e)}})},[e("template",{slot:"icon"},[T]),P])},o=function(n){var a,r,o=(null===(a=t.$slots.icon)||void 0===a?void 0:a[0])||(t.defaultIcon?e("span",{class:["icon",t.defaultIcon]}):e("DotsHorizontal",{props:{size:20}}));return e("NcPopover",{ref:"popover",props:{delay:0,handleResize:!0,shown:t.opened,placement:t.placement,boundary:t.boundariesElement,container:t.container,popoverBaseClass:"action-item__popper",setReturnFocus:null===(r=t.$refs.menuButton)||void 0===r?void 0:r.$el},attrs:{delay:0,handleResize:!0,shown:t.opened,placement:t.placement,boundary:t.boundariesElement,container:t.container,popoverBaseClass:"action-item__popper"},on:{show:t.openMenu,"after-show":t.onOpen,hide:t.closeMenu}},[e("NcButton",{class:"action-item__menutoggle",props:{type:t.triggerBtnType,disabled:t.disabled},slot:"trigger",ref:"menuButton",attrs:{"aria-haspopup":"menu","aria-label":t.ariaLabel,"aria-controls":t.opened?t.randomId:null,"aria-expanded":t.opened.toString()},on:{focus:t.onFocus,blur:t.onBlur}},[e("template",{slot:"icon"},[o]),t.menuTitle]),e("div",{class:{open:t.opened},attrs:{tabindex:"-1"},on:{keydown:t.onKeydown,mousemove:t.onMouseFocusAction},ref:"menu"},[e("ul",{attrs:{id:t.randomId,tabindex:"-1",role:"menu"}},[n])])])};if(1===n.length&&1===a.length&&!this.forceMenu)return r(a[0]);if(a.length>0&&this.inline>0){var i=a.slice(0,this.inline),s=n.filter((function(e){return!i.includes(e)}));return e("div",{class:["action-items","action-item--".concat(this.triggerBtnType)]},[].concat(g(i.map(r)),[s.length>0?e("div",{class:["action-item",{"action-item--open":this.opened}]},[o(s)]):null]))}return e("div",{class:["action-item action-item--default-popover","action-item--".concat(this.triggerBtnType),{"action-item--open":this.opened}]},[o(n)])}}};var y=n(3379),C=n.n(y),w=n(7795),x=n.n(w),k=n(569),S=n.n(k),_=n(3565),T=n.n(_),P=n(9216),E=n.n(P),N=n(4589),z=n.n(N),j=n(297),$={};$.styleTagTransform=z(),$.setAttributes=T(),$.insert=S().bind(null,"head"),$.domAPI=x(),$.insertStyleElement=E(),C()(j.Z,$),j.Z&&j.Z.locals&&j.Z.locals;var O=n(6),F={};F.styleTagTransform=z(),F.setAttributes=T(),F.insert=S().bind(null,"head"),F.domAPI=x(),F.insertStyleElement=E(),C()(O.Z,F),O.Z&&O.Z.locals&&O.Z.locals;var D=n(1900),B=n(5727),I=n.n(B),M=(0,D.Z)(b,void 0,void 0,!1,null,"2f315260",null);"function"==typeof I()&&I()(M);const L=M.exports},9479:(e,t,n)=>{"use strict";n.d(t,{default:()=>T});var a=n(5108);function r(e){return r="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},r(e)}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t{"use strict";n.d(t,{default:()=>N});var a=n(9454),r=n(4505),o=n(1206),i=n(5108);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 l(){l=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",u=r.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function p(e,t,n,r){var o=t&&t.prototype instanceof m?t:m,i=Object.create(o.prototype),s=new T(r||[]);return a(i,"_invoke",{value:x(e,n,s)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=p;var h={};function m(){}function f(){}function g(){}var v={};c(v,o,(function(){return this}));var A=Object.getPrototypeOf,b=A&&A(A(P([])));b&&b!==t&&n.call(b,o)&&(v=b);var y=g.prototype=m.prototype=Object.create(v);function C(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function r(a,o,i,l){var u=d(e[a],e,o);if("throw"!==u.type){var c=u.arg,p=c.value;return p&&"object"==s(p)&&n.call(p,"__await")?t.resolve(p.__await).then((function(e){r("next",e,i,l)}),(function(e){r("throw",e,i,l)})):t.resolve(p).then((function(e){c.value=e,i(c)}),(function(e){return r("throw",e,i,l)}))}l(u.arg)}var o;a(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,a){r(e,n,t,a)}))}return o=o?o.then(a,a):a()}})}function x(e,t,n){var a="suspendedStart";return function(r,o){if("executing"===a)throw new Error("Generator is already running");if("completed"===a){if("throw"===r)throw o;return{value:void 0,done:!0}}for(n.method=r,n.arg=o;;){var i=n.delegate;if(i){var s=k(i,n);if(s){if(s===h)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===a)throw a="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a="executing";var l=d(e,t,n);if("normal"===l.type){if(a=n.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(a="completed",n.method="throw",n.arg=l.arg)}}}function k(e,t){var n=t.method,a=e.iterator[n];if(void 0===a)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,k(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),h;var r=d(a,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,h;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function P(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,r=function t(){for(;++a=0;--r){var o=this.tryEntries[r],i=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var s=n.call(o,"catchLoc"),l=n.call(o,"finallyLoc");if(s&&l){if(this.prev=0;--a){var r=this.tryEntries[a];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),_(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var a=n.completion;if("throw"===a.type){var r=a.arg;_(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:P(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}function u(e,t,n,a,r,o,i){try{var s=e[o](i),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(a,r)}const c={name:"NcPopover",components:{Dropdown:a.Dropdown},props:{popoverBaseClass:{type:String,default:""},focusTrap:{type:Boolean,default:!0},setReturnFocus:{default:void 0,type:[Object,String,Function,Boolean]}},emits:["after-show","after-hide"],beforeDestroy:function(){this.clearFocusTrap()},methods:{useFocusTrap:function(){var e,t=this;return(e=l().mark((function e(){var n,a,i;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.$nextTick();case 2:if(t.focusTrap){e.next=4;break}return e.abrupt("return");case 4:if(i=null===(n=t.$refs.popover)||void 0===n||null===(a=n.$refs.popperContent)||void 0===a?void 0:a.$el){e.next=7;break}return e.abrupt("return");case 7:t.$focusTrap=(0,r.createFocusTrap)(i,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:t.setReturnFocus,trapStack:(0,o.L)()}),t.$focusTrap.activate();case 9:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(a,r){var o=e.apply(t,n);function i(e){u(o,a,r,i,s,"next",e)}function s(e){u(o,a,r,i,s,"throw",e)}i(void 0)}))})()},clearFocusTrap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var t;null===(t=this.$focusTrap)||void 0===t||t.deactivate(e),this.$focusTrap=null}catch(e){i.warn(e)}},afterShow:function(){var e=this;this.$nextTick((function(){e.$emit("after-show"),e.useFocusTrap()}))},afterHide:function(){this.$emit("after-hide"),this.clearFocusTrap()}}},p=c;var d=n(3379),h=n.n(d),m=n(7795),f=n.n(m),g=n(569),v=n.n(g),A=n(3565),b=n.n(A),y=n(9216),C=n.n(y),w=n(4589),x=n.n(w),k=n(5783),S={};S.styleTagTransform=x(),S.setAttributes=b(),S.insert=v().bind(null,"head"),S.domAPI=f(),S.insertStyleElement=C(),h()(k.Z,S),k.Z&&k.Z.locals&&k.Z.locals;var _=n(1900),T=n(2405),P=n.n(T),E=(0,_.Z)(p,(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 P()&&P()(E);const N=E.exports},336:(e,t,n)=>{"use strict";n.d(t,{default:()=>A});var a=n(9454),r=n(3379),o=n.n(r),i=n(7795),s=n.n(i),l=n(569),u=n.n(l),c=n(3565),p=n.n(c),d=n(9216),h=n.n(d),m=n(4589),f=n.n(m),g=n(8384),v={};v.styleTagTransform=f(),v.setAttributes=p(),v.insert=u().bind(null,"head"),v.domAPI=s(),v.insertStyleElement=h(),o()(g.Z,v),g.Z&&g.Z.locals&&g.Z.locals,a.options.themes.tooltip.html=!1,a.options.themes.tooltip.delay={show:500,hide:200},a.options.themes.tooltip.distance=10,a.options.themes.tooltip["arrow-padding"]=3;const A=a.VTooltip},932:(e,t,n)=>{"use strict";n.d(t,{n:()=>o,t:()=>i});var a=(0,n(7931).getGettextBuilder)().detectLocale();[{locale:"ar",translations:{"{tag} (invisible)":"{tag} (غير مرئي)","{tag} (restricted)":"{tag} (مقيد)",Actions:"الإجراءات",Activities:"النشاطات","Animals & Nature":"الحيوانات والطبيعة","Anything shared with the same group of people will show up here":"أي مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا","Avatar of {displayName}":"صورة {displayName} الرمزية","Avatar of {displayName}, {status}":"صورة {displayName} الرمزية، {status}","Cancel changes":"إلغاء التغييرات","Change title":"تغيير العنوان",Choose:"إختيار","Clear text":"مسح النص",Close:"أغلق","Close modal":"قفل الشرط","Close navigation":"إغلاق المتصفح","Close sidebar":"قفل الشريط الجانبي","Confirm changes":"تأكيد التغييرات",Custom:"مخصص","Edit item":"تعديل عنصر","Error getting related resources":"خطأ في تحصيل مصادر ذات صلة","External documentation for {title}":"الوثائق الخارجية لـ{title}",Favorite:"مفضلة",Flags:"الأعلام","Food & Drink":"الطعام والشراب","Frequently used":"كثيرا ما تستخدم",Global:"عالمي","Go back to the list":"العودة إلى القائمة","Hide password":"إخفاء كلمة السر","Message limit of {count} characters reached":"تم الوصول إلى الحد الأقصى لعدد الأحرف في الرسالة: {count} حرف","More items …":"عناصر أخرى ...",Next:"التالي","No emoji found":"لم يتم العثور على أي رمز تعبيري","No results":"ليس هناك أية نتيجة",Objects:"الأشياء",Open:"فتح",'Open link to "{resourceTitle}"':'فتح رابط إلى "{resourceTitle}"',"Open navigation":"فتح المتصفح","Password is secure":"كلمة السر مُؤمّنة","Pause slideshow":"إيقاف العرض مؤقتًا","People & Body":"الناس والجسم","Pick an emoji":"اختر رمزًا تعبيريًا","Please select a time zone:":"الرجاء تحديد المنطقة الزمنية:",Previous:"السابق","Related resources":"مصادر ذات صلة",Search:"بحث","Search results":"نتائج البحث","Select a tag":"اختر علامة",Settings:"الإعدادات","Settings navigation":"إعدادات المتصفح","Show password":"أعرض كلمة السر","Smileys & Emotion":"الوجوه و الرموز التعبيرية","Start slideshow":"بدء العرض",Submit:"إرسال",Symbols:"الرموز","Travel & Places":"السفر والأماكن","Type to search time zone":"اكتب للبحث عن منطقة زمنية","Unable to search the group":"تعذر البحث في المجموعة","Undo changes":"التراجع عن التغييرات","Write message, @ to mention someone, : for emoji autocompletion …":"اكتب رسالة، @ للإشارة إلى شخص ما، : للإكمال التلقائي للرموز التعبيرية ..."}},{locale:"br",translations:{"{tag} (invisible)":"{tag} (diwelus)","{tag} (restricted)":"{tag} (bevennet)",Actions:"Oberioù",Activities:"Oberiantizoù","Animals & Nature":"Loened & Natur",Choose:"Dibab",Close:"Serriñ",Custom:"Personelañ",Flags:"Bannieloù","Food & Drink":"Boued & Evajoù","Frequently used":"Implijet alies",Next:"Da heul","No emoji found":"Emoji ebet kavet","No results":"Disoc'h ebet",Objects:"Traoù","Pause slideshow":"Arsav an diaporama","People & Body":"Tud & Korf","Pick an emoji":"Choaz un emoji",Previous:"A-raok",Search:"Klask","Search results":"Disoc'hoù an enklask","Select a tag":"Choaz ur c'hlav",Settings:"Arventennoù","Smileys & Emotion":"Smileyioù & Fromoù","Start slideshow":"Kregiñ an diaporama",Symbols:"Arouezioù","Travel & Places":"Beaj & Lec'hioù","Unable to search the group":"Dibosupl eo klask ar strollad"}},{locale:"ca",translations:{"{tag} (invisible)":"{tag} (invisible)","{tag} (restricted)":"{tag} (restringit)",Actions:"Accions",Activities:"Activitats","Animals & Nature":"Animals i natura","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}","Cancel changes":"Cancel·la els canvis","Change title":"Canviar títol",Choose:"Tria","Clear text":"Netejar text",Close:"Tanca","Close modal":"Tancar el mode","Close navigation":"Tanca la navegació","Close sidebar":"Tancar la barra lateral","Confirm changes":"Confirmeu els canvis",Custom:"Personalitzat","Edit item":"Edita l'element","Error getting related resources":"Error obtenint els recursos relacionats","Error parsing svg":"Error en l'anàlisi del svg","External documentation for {title}":"Documentació externa per a {title}",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","Message limit of {count} characters reached":"S'ha arribat al límit de {count} caràcters per missatge","More items …":"Més artícles...",Next:"Següent","No emoji found":"No s'ha trobat cap emoji","No results":"Sense resultats",Objects:"Objectes",Open:"Obrir",'Open link to "{resourceTitle}"':'Obrir enllaç a "{resourceTitle}"',"Open navigation":"Obre la navegació","Password is secure":"Contrasenya segura
","Pause slideshow":"Atura la presentació","People & Body":"Persones i cos","Pick an emoji":"Trieu un emoji","Please select a time zone:":"Seleccioneu una zona horària:",Previous:"Anterior","Related resources":"Recursos relacionats",Search:"Cerca","Search results":"Resultats de cerca","Select a tag":"Seleccioneu una etiqueta",Settings:"Paràmetres","Settings navigation":"Navegació d'opcions","Show password":"Mostrar contrasenya","Smileys & Emotion":"Cares i emocions","Start slideshow":"Inicia la presentació",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_CZ",translations:{"{tag} (invisible)":"{tag} (neviditelné)","{tag} (restricted)":"{tag} (omezené)",Actions:"Akce",Activities:"Aktivity","Animals & Nature":"Zvířata a příroda","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}","Cancel changes":"Zrušit změny","Change title":"Změnit nadpis",Choose:"Zvolit","Clear text":"Čitelný text",Close:"Zavřít","Close modal":"Zavřít dialogové okno","Close navigation":"Zavřít navigaci","Close sidebar":"Zavřít postranní panel","Confirm changes":"Potvrdit změny",Custom:"Uživatelsky určené","Edit item":"Upravit položku","Error getting related resources":"Chyba při získávání souvisejících prostředků","Error parsing svg":"Chyba při zpracovávání svg","External documentation for {title}":"Externí dokumentace k {title}",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","Message limit of {count} characters reached":"Dosaženo limitu počtu ({count}) znaků zprávy","More items …":"Další položky…",Next:"Následující","No emoji found":"Nenalezeno žádné emoji","No results":"Nic nenalezeno",Objects:"Objekty",Open:"Otevřít",'Open link to "{resourceTitle}"':"Otevřít odkaz na „{resourceTitle}“","Open navigation":"Otevřít navigaci","Password is secure":"Heslo je bezpečné","Pause slideshow":"Pozastavit prezentaci","People & Body":"Lidé a tělo","Pick an emoji":"Vybrat emoji","Please select a time zone:":"Vyberte časovou zónu:",Previous:"Předchozí","Related resources":"Související prostředky",Search:"Hledat","Search results":"Výsledky hledání","Select a tag":"Vybrat štítek",Settings:"Nastavení","Settings navigation":"Pohyb po nastavení","Show password":"Zobrazit heslo","Smileys & Emotion":"Úsměvy a emoce","Start slideshow":"Spustit prezentaci",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:"da",translations:{"{tag} (invisible)":"{tag} (usynlig)","{tag} (restricted)":"{tag} (begrænset)",Actions:"Handlinger",Activities:"Aktiviteter","Animals & Nature":"Dyr & Natur","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}","Cancel changes":"Annuller ændringer","Change title":"Ret titel",Choose:"Vælg","Clear text":"Ryd tekst",Close:"Luk","Close modal":"Luk vindue","Close navigation":"Luk navigation","Close sidebar":"Luk sidepanel","Confirm changes":"Bekræft ændringer",Custom:"Brugerdefineret","Edit item":"Rediger emne","Error getting related resources":"Kunne ikke hente tilknyttede data","Error parsing svg":"Fejl ved analysering af svg","External documentation for {title}":"Ekstern dokumentation for {title}",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","Message limit of {count} characters reached":"Begrænsning på {count} tegn er nået","More items …":"Mere ...",Next:"Videre","No emoji found":"Ingen emoji fundet","No results":"Ingen resultater",Objects:"Objekter",Open:"Åbn",'Open link to "{resourceTitle}"':'Åbn link til "{resourceTitle}"',"Open navigation":"Åbn navigation","Password is secure":"Kodeordet er sikkert","Pause slideshow":"Suspender fremvisning","People & Body":"Mennesker & Menneskekroppen","Pick an emoji":"Vælg en emoji","Please select a time zone:":"Vælg venligst en tidszone:",Previous:"Forrige","Related resources":"Relaterede emner",Search:"Søg","Search results":"Søgeresultater","Select a tag":"Vælg et mærke",Settings:"Indstillinger","Settings navigation":"Naviger i indstillinger","Show password":"Vis kodeord","Smileys & Emotion":"Smileys & Emotion","Start slideshow":"Start fremvisning",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)",Actions:"Aktionen",Activities:"Aktivitäten","Animals & Nature":"Tiere & Natur","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}","Cancel changes":"Änderungen verwerfen","Change title":"Titel ändern",Choose:"Auswählen","Clear text":"Klartext",Close:"Schließen","Close modal":"Modal schließen","Close navigation":"Navigation schließen","Close sidebar":"Seitenleiste schließen","Confirm changes":"Änderungen bestätigen",Custom:"Benutzerdefiniert","Edit item":"Objekt bearbeiten","Error getting related resources":"Fehler beim Abrufen verwandter Ressourcen","Error parsing svg":"Fehler beim Einlesen der SVG","External documentation for {title}":"Externe Dokumentation für {title}",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","Message limit of {count} characters reached":"Nachrichtenlimit von {count} Zeichen erreicht","More items …":"Weitere Elemente …",Next:"Weiter","No emoji found":"Kein Emoji gefunden","No results":"Keine Ergebnisse",Objects:"Gegenstände",Open:"Öffnen",'Open link to "{resourceTitle}"':'Link zu "{resourceTitle}" öffnen',"Open navigation":"Navigation öffnen","Password is secure":"Passwort ist sicher","Pause slideshow":"Diashow pausieren","People & Body":"Menschen & Körper","Pick an emoji":"Ein Emoji auswählen","Please select a time zone:":"Bitte wählen Sie eine Zeitzone:",Previous:"Vorherige","Related resources":"Verwandte Ressourcen",Search:"Suche","Search results":"Suchergebnisse","Select a tag":"Schlagwort auswählen",Settings:"Einstellungen","Settings navigation":"Einstellungen für die Navigation","Show password":"Passwort anzeigen","Smileys & Emotion":"Smileys & Emotionen","Start slideshow":"Diashow starten",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)",Actions:"Aktionen",Activities:"Aktivitäten","Animals & Nature":"Tiere & Natur","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}","Cancel changes":"Änderungen verwerfen","Change title":"Titel ändern",Choose:"Auswählen","Clear text":"Klartext",Close:"Schließen","Close modal":"Modal schließen","Close navigation":"Navigation schließen","Close sidebar":"Seitenleiste schließen","Confirm changes":"Änderungen bestätigen",Custom:"Benutzerdefiniert","Edit item":"Objekt bearbeiten","Error getting related resources":"Fehler beim Abrufen verwandter Ressourcen","Error parsing svg":"Fehler beim Einlesen der SVG","External documentation for {title}":"Externe Dokumentation für {title}",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","Message limit of {count} characters reached":"Nachrichtenlimit von {count} Zeichen erreicht","More items …":"Weitere Elemente …",Next:"Weiter","No emoji found":"Kein Emoji gefunden","No results":"Keine Ergebnisse",Objects:"Objekte",Open:"Öffnen",'Open link to "{resourceTitle}"':'Link zu "{resourceTitle}" öffnen',"Open navigation":"Navigation öffnen","Password is secure":"Passwort ist sicher","Pause slideshow":"Diashow pausieren","People & Body":"Menschen & Körper","Pick an emoji":"Ein Emoji auswählen","Please select a time zone:":"Bitte eine Zeitzone auswählen:",Previous:"Vorherige","Related resources":"Verwandte Ressourcen",Search:"Suche","Search results":"Suchergebnisse","Select a tag":"Schlagwort auswählen",Settings:"Einstellungen","Settings navigation":"Einstellungen für die Navigation","Show password":"Passwort anzeigen","Smileys & Emotion":"Smileys & Emotionen","Start slideshow":"Diashow starten",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} (περιορισμένο)",Actions:"Ενέργειες",Activities:"Δραστηριότητες","Animals & Nature":"Ζώα & Φύση","Anything shared with the same group of people will show up here":"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ","Avatar of {displayName}":"Άβαταρ του {displayName}","Avatar of {displayName}, {status}":"Άβαταρ του {displayName}, {status}","Cancel changes":"Ακύρωση αλλαγών","Change title":"Αλλαγή τίτλου",Choose:"Επιλογή","Clear text":"Εκκαθάριση κειμένου",Close:"Κλείσιμο","Close modal":"Βοηθητικό κλείσιμο","Close navigation":"Κλείσιμο πλοήγησης","Close sidebar":"Κλείσιμο πλευρικής μπάρας","Confirm changes":"Επιβεβαίωση αλλαγών",Custom:"Προσαρμογή","Edit item":"Επεξεργασία","Error getting related resources":"Σφάλμα λήψης σχετικών πόρων","Error parsing svg":"Σφάλμα ανάλυσης svg","External documentation for {title}":"Εξωτερική τεκμηρίωση για {title}",Favorite:"Αγαπημένα",Flags:"Σημαίες","Food & Drink":"Φαγητό & Ποτό","Frequently used":"Συχνά χρησιμοποιούμενο",Global:"Καθολικό","Go back to the list":"Επιστροφή στην αρχική λίστα ","Hide password":"Απόκρυψη κωδικού πρόσβασης","Message limit of {count} characters reached":"Συμπληρώθηκε το όριο των {count} χαρακτήρων του μηνύματος","More items …":"Περισσότερα στοιχεία …",Next:"Επόμενο","No emoji found":"Δεν βρέθηκε emoji","No results":"Κανένα αποτέλεσμα",Objects:"Αντικείμενα",Open:"Άνοιγμα",'Open link to "{resourceTitle}"':'Άνοιγμα συνδέσμου στο "{resourceTitle}"',"Open navigation":"Άνοιγμα πλοήγησης","Password is secure":"Ο κωδικός πρόσβασης είναι ασφαλής","Pause slideshow":"Παύση προβολής διαφανειών","People & Body":"Άνθρωποι & Σώμα","Pick an emoji":"Επιλέξτε ένα emoji","Please select a time zone:":"Παρακαλούμε επιλέξτε μια ζώνη ώρας:",Previous:"Προηγούμενο","Related resources":"Σχετικοί πόροι",Search:"Αναζήτηση","Search results":"Αποτελέσματα αναζήτησης","Select a tag":"Επιλογή ετικέτας",Settings:"Ρυθμίσεις","Settings navigation":"Πλοήγηση ρυθμίσεων","Show password":"Εμφάνιση κωδικού πρόσβασης","Smileys & Emotion":"Φατσούλες & Συναίσθημα","Start slideshow":"Έναρξη προβολής διαφανειών",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)",Actions:"Actions",Activities:"Activities","Animals & Nature":"Animals & Nature","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}","Cancel changes":"Cancel changes","Change title":"Change title",Choose:"Choose","Clear text":"Clear text",Close:"Close","Close modal":"Close modal","Close navigation":"Close navigation","Close sidebar":"Close sidebar","Confirm changes":"Confirm changes",Custom:"Custom","Edit item":"Edit item","Error getting related resources":"Error getting related resources","Error parsing svg":"Error parsing svg","External documentation for {title}":"External documentation for {title}",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","Message limit of {count} characters reached":"Message limit of {count} characters reached","More items …":"More items …",Next:"Next","No emoji found":"No emoji found","No results":"No results",Objects:"Objects",Open:"Open",'Open link to "{resourceTitle}"':'Open link to "{resourceTitle}"',"Open navigation":"Open navigation","Password is secure":"Password is secure","Pause slideshow":"Pause slideshow","People & Body":"People & Body","Pick an emoji":"Pick an emoji","Please select a time zone:":"Please select a time zone:",Previous:"Previous","Related resources":"Related resources",Search:"Search","Search results":"Search results","Select a tag":"Select a tag",Settings:"Settings","Settings navigation":"Settings navigation","Show password":"Show password","Smileys & Emotion":"Smileys & Emotion","Start slideshow":"Start slideshow",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)",Actions:"Agoj",Activities:"Aktiveco","Animals & Nature":"Bestoj & Naturo",Choose:"Elektu",Close:"Fermu",Custom:"Propra",Flags:"Flagoj","Food & Drink":"Manĝaĵo & Trinkaĵo","Frequently used":"Ofte uzataj","Message limit of {count} characters reached":"La limo je {count} da literoj atingita",Next:"Sekva","No emoji found":"La emoĝio forestas","No results":"La rezulto forestas",Objects:"Objektoj","Pause slideshow":"Payzi bildprezenton","People & Body":"Homoj & Korpo","Pick an emoji":"Elekti emoĝion ",Previous:"Antaŭa",Search:"Serĉi","Search results":"Serĉrezultoj","Select a tag":"Elektu etikedon",Settings:"Agordo","Settings navigation":"Agorda navigado","Smileys & Emotion":"Ridoj kaj Emocioj","Start slideshow":"Komenci bildprezenton",Symbols:"Signoj","Travel & Places":"Vojaĵoj & Lokoj","Unable to search the group":"Ne eblas serĉi en la grupo","Write message, @ to mention someone …":"Mesaĝi, uzu @ por mencii iun ..."}},{locale:"es",translations:{"{tag} (invisible)":"{tag} (invisible)","{tag} (restricted)":"{tag} (restringido)",Actions:"Acciones",Activities:"Actividades","Animals & Nature":"Animales y naturaleza","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}","Cancel changes":"Cancelar cambios","Change title":"Cambiar título",Choose:"Elegir","Clear text":"Limpiar texto",Close:"Cerrar","Close modal":"Cerrar modal","Close navigation":"Cerrar navegación","Close sidebar":"Cerrar barra lateral","Confirm changes":"Confirmar cambios",Custom:"Personalizado","Edit item":"Editar elemento","Error getting related resources":"Se encontró un error al obtener los recursos relacionados","Error parsing svg":"Error procesando svg","External documentation for {title}":"Documentacion externa de {title}",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","Message limit of {count} characters reached":"El mensaje ha alcanzado el límite de {count} caracteres","More items …":"Más ítems...",Next:"Siguiente","No emoji found":"No hay ningún emoji","No results":" Ningún resultado",Objects:"Objetos",Open:"Abrir",'Open link to "{resourceTitle}"':'Abrir enlace a "{resourceTitle}"',"Open navigation":"Abrir navegación","Password is secure":"La contraseña es segura","Pause slideshow":"Pausar la presentación ","People & Body":"Personas y cuerpos","Pick an emoji":"Elegir un emoji","Please select a time zone:":"Por favor elige un huso de horario:",Previous:"Anterior","Related resources":"Recursos relacionados",Search:"Buscar","Search results":"Resultados de la búsqueda","Select a tag":"Seleccione una etiqueta",Settings:"Ajustes","Settings navigation":"Navegación por ajustes","Show password":"Mostrar contraseña","Smileys & Emotion":"Smileys y emoticonos","Start slideshow":"Iniciar la presentación",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:"eu",translations:{"{tag} (invisible)":"{tag} (ikusezina)","{tag} (restricted)":"{tag} (mugatua)",Actions:"Ekintzak",Activities:"Jarduerak","Animals & Nature":"Animaliak eta Natura","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}","Cancel changes":"Ezeztatu aldaketak","Change title":"Aldatu titulua",Choose:"Aukeratu","Clear text":"Garbitu testua",Close:"Itxi","Close modal":"Itxi modala","Close navigation":"Itxi nabigazioa","Close sidebar":"Itxi albo-barra","Confirm changes":"Baieztatu aldaketak",Custom:"Pertsonalizatua","Edit item":"Editatu elementua","Error getting related resources":"Errorea erlazionatutako baliabideak lortzerakoan","Error parsing svg":"Errore bat gertatu da svg-a analizatzean","External documentation for {title}":"Kanpoko dokumentazioa {title}(r)entzat",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","Message limit of {count} characters reached":"Mezuaren {count} karaketere-limitera heldu zara","More items …":"Elementu gehiago …",Next:"Hurrengoa","No emoji found":"Ez da emojirik aurkitu","No results":"Emaitzarik ez",Objects:"Objektuak",Open:"Ireki",'Open link to "{resourceTitle}"':'Ireki esteka: "{resourceTitle}"',"Open navigation":"Ireki nabigazioa","Password is secure":"Pasahitza segurua da","Pause slideshow":"Pausatu diaporama","People & Body":"Jendea eta gorputza","Pick an emoji":"Hautatu emoji bat","Please select a time zone:":"Mesedez hautatu ordu-zona bat:",Previous:"Aurrekoa","Related resources":"Erlazionatutako baliabideak",Search:"Bilatu","Search results":"Bilaketa emaitzak","Select a tag":"Hautatu etiketa bat",Settings:"Ezarpenak","Settings navigation":"Nabigazio ezarpenak","Show password":"Erakutsi pasahitza","Smileys & Emotion":"Smileyak eta emozioa","Start slideshow":"Hasi diaporama",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:"fi_FI",translations:{"{tag} (invisible)":"{tag} (näkymätön)","{tag} (restricted)":"{tag} (rajoitettu)",Actions:"Toiminnot",Activities:"Aktiviteetit","Animals & Nature":"Eläimet & luonto","Avatar of {displayName}":"Käyttäjän {displayName} avatar","Avatar of {displayName}, {status}":"Käyttäjän {displayName} avatar, {status}","Cancel changes":"Peruuta muutokset",Choose:"Valitse",Close:"Sulje","Close navigation":"Sulje navigaatio","Confirm changes":"Vahvista muutokset",Custom:"Mukautettu","Edit item":"Muokkaa kohdetta","External documentation for {title}":"Ulkoinen dokumentaatio kohteelle {title}",Flags:"Liput","Food & Drink":"Ruoka & juoma","Frequently used":"Usein käytetyt",Global:"Yleinen","Go back to the list":"Siirry takaisin listaan","Message limit of {count} characters reached":"Viestin merkken enimmäisimäärä {count} täynnä ",Next:"Seuraava","No emoji found":"Emojia ei löytynyt","No results":"Ei tuloksia",Objects:"Esineet & asiat","Open navigation":"Avaa navigaatio","Pause slideshow":"Keskeytä diaesitys","People & Body":"Ihmiset & keho","Pick an emoji":"Valitse emoji","Please select a time zone:":"Valitse aikavyöhyke:",Previous:"Edellinen",Search:"Etsi","Search results":"Hakutulokset","Select a tag":"Valitse tagi",Settings:"Asetukset","Settings navigation":"Asetusnavigaatio","Smileys & Emotion":"Hymiöt & tunteet","Start slideshow":"Aloita diaesitys",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, @ to mention someone, : for emoji autocompletion …":"Kirjoita viesti, @ mainitaksesi käyttäjän, : emojin automaattitäydennykseen…"}},{locale:"fr",translations:{"{tag} (invisible)":"{tag} (invisible)","{tag} (restricted)":"{tag} (restreint)",Actions:"Actions",Activities:"Activités","Animals & Nature":"Animaux & Nature","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}","Cancel changes":"Annuler les modifications","Change title":"Modifier le titre",Choose:"Choisir","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","Confirm changes":"Confirmer les modifications",Custom:"Personnalisé","Edit item":"Éditer l'élément","Error getting related resources":"Erreur à la récupération des ressources liées","Error parsing svg":"Erreur d'analyse SVG","External documentation for {title}":"Documentation externe pour {title}",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","Message limit of {count} characters reached":"Limite de messages de {count} caractères atteinte","More items …":"Plus d'éléments...",Next:"Suivant","No emoji found":"Pas d’émoji trouvé","No results":"Aucun résultat",Objects:"Objets",Open:"Ouvrir",'Open link to "{resourceTitle}"':'Ouvrir le lien vers "{resourceTitle}"',"Open navigation":"Ouvrir la navigation","Password is secure":"Le mot de passe est sécurisé","Pause slideshow":"Mettre le diaporama en pause","People & Body":"Personnes & Corps","Pick an emoji":"Choisissez un émoji","Please select a time zone:":"Sélectionnez un fuseau horaire : ",Previous:"Précédent","Related resources":"Ressources liées",Search:"Chercher","Search results":"Résultats de recherche","Select a tag":"Sélectionnez une balise",Settings:"Paramètres","Settings navigation":"Navigation dans les paramètres","Show password":"Afficher le mot de passe","Smileys & Emotion":"Smileys & Émotions","Start slideshow":"Démarrer le diaporama",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:"gl",translations:{"{tag} (invisible)":"{tag} (invisíbel)","{tag} (restricted)":"{tag} (restrinxido)",Actions:"Accións",Activities:"Actividades","Animals & Nature":"Animais e natureza","Cancel changes":"Cancelar os cambios",Choose:"Escoller",Close:"Pechar","Confirm changes":"Confirma os cambios",Custom:"Personalizado","External documentation for {title}":"Documentación externa para {title}",Flags:"Bandeiras","Food & Drink":"Comida e bebida","Frequently used":"Usado con frecuencia","Message limit of {count} characters reached":"Acadouse o límite de {count} caracteres por mensaxe",Next:"Seguinte","No emoji found":"Non se atopou ningún «emoji»","No results":"Sen resultados",Objects:"Obxectos","Pause slideshow":"Pausar o diaporama","People & Body":"Persoas e corpo","Pick an emoji":"Escolla un «emoji»",Previous:"Anterir",Search:"Buscar","Search results":"Resultados da busca","Select a tag":"Seleccione unha etiqueta",Settings:"Axustes","Settings navigation":"Navegación polos axustes","Smileys & Emotion":"Sorrisos e emocións","Start slideshow":"Iniciar o diaporama",Submit:"Enviar",Symbols:"Símbolos","Travel & Places":"Viaxes e lugares","Unable to search the group":"Non foi posíbel buscar o grupo","Write message, @ to mention someone …":"Escriba a mensaxe, @ para mencionar a alguén…"}},{locale:"he",translations:{"{tag} (invisible)":"{tag} (נסתר)","{tag} (restricted)":"{tag} (מוגבל)",Actions:"פעולות",Activities:"פעילויות","Animals & Nature":"חיות וטבע",Choose:"בחירה",Close:"סגירה",Custom:"בהתאמה אישית",Flags:"דגלים","Food & Drink":"מזון ומשקאות","Frequently used":"בשימוש תדיר",Next:"הבא","No emoji found":"לא נמצא אמוג׳י","No results":"אין תוצאות",Objects:"חפצים","Pause slideshow":"השהיית מצגת","People & Body":"אנשים וגוף","Pick an emoji":"נא לבחור אמוג׳י",Previous:"הקודם",Search:"חיפוש","Search results":"תוצאות חיפוש","Select a tag":"בחירת תגית",Settings:"הגדרות","Smileys & Emotion":"חייכנים ורגשונים","Start slideshow":"התחלת המצגת",Symbols:"סמלים","Travel & Places":"טיולים ומקומות","Unable to search the group":"לא ניתן לחפש בקבוצה"}},{locale:"hu_HU",translations:{"{tag} (invisible)":"{tag} (láthatatlan)","{tag} (restricted)":"{tag} (korlátozott)",Actions:"Műveletek",Activities:"Tevékenységek","Animals & Nature":"Állatok és természet","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}","Cancel changes":"Változtatások elvetése","Change title":"Cím megváltoztatása",Choose:"Válassszon","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","Confirm changes":"Változtatások megerősítése",Custom:"Egyéni","Edit item":"Elem szerkesztése","Error getting related resources":"Hiba a kapcsolódó erőforrások lekérésekor","Error parsing svg":"Hiba az SVG feldolgozásakor","External documentation for {title}":"Külső dokumentáció ehhez: {title}",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","Message limit of {count} characters reached":"{count} karakteres üzenetkorlát elérve","More items …":"További elemek...",Next:"Következő","No emoji found":"Nem található emodzsi","No results":"Nincs találat",Objects:"Tárgyak",Open:"Megnyitás",'Open link to "{resourceTitle}"':"A(z) „{resourceTitle}” hivatkozásának megnyitása","Open navigation":"Navigáció megnyitása","Password is secure":"A jelszó biztonságos","Pause slideshow":"Diavetítés szüneteltetése","People & Body":"Emberek és test","Pick an emoji":"Válasszon egy emodzsit","Please select a time zone:":"Válasszon időzónát:",Previous:"Előző","Related resources":"Kapcsolódó erőforrások",Search:"Keresés","Search results":"Találatok","Select a tag":"Válasszon címkét",Settings:"Beállítások","Settings navigation":"Navigáció a beállításokban","Show password":"Jelszó megjelenítése","Smileys & Emotion":"Mosolyok és érzelmek","Start slideshow":"Diavetítés indítása",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:"is",translations:{"{tag} (invisible)":"{tag} (ósýnilegt)","{tag} (restricted)":"{tag} (takmarkað)",Actions:"Aðgerðir",Activities:"Aðgerðir","Animals & Nature":"Dýr og náttúra",Choose:"Velja",Close:"Loka",Custom:"Sérsniðið",Flags:"Flögg","Food & Drink":"Matur og drykkur","Frequently used":"Oftast notað",Next:"Næsta","No emoji found":"Ekkert tjáningartákn fannst","No results":"Engar niðurstöður",Objects:"Hlutir","Pause slideshow":"Gera hlé á skyggnusýningu","People & Body":"Fólk og líkami","Pick an emoji":"Veldu tjáningartákn",Previous:"Fyrri",Search:"Leita","Search results":"Leitarniðurstöður","Select a tag":"Veldu merki",Settings:"Stillingar","Smileys & Emotion":"Broskallar og tilfinningar","Start slideshow":"Byrja skyggnusýningu",Symbols:"Tákn","Travel & Places":"Staðir og ferðalög","Unable to search the group":"Get ekki leitað í hópnum"}},{locale:"it",translations:{"{tag} (invisible)":"{tag} (invisibile)","{tag} (restricted)":"{tag} (limitato)",Actions:"Azioni",Activities:"Attività","Animals & Nature":"Animali e natura","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}","Cancel changes":"Annulla modifiche","Change title":"Modifica il titolo",Choose:"Scegli","Clear text":"Cancella il testo",Close:"Chiudi","Close modal":"Chiudi il messaggio modale","Close navigation":"Chiudi la navigazione","Close sidebar":"Chiudi la barra laterale","Confirm changes":"Conferma modifiche",Custom:"Personalizzato","Edit item":"Modifica l'elemento","Error getting related resources":"Errore nell'ottenere risorse correlate","Error parsing svg":"Errore nell'analizzare l'svg","External documentation for {title}":"Documentazione esterna per {title}",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","Message limit of {count} characters reached":"Limite dei messaggi di {count} caratteri raggiunto","More items …":"Più elementi ...",Next:"Successivo","No emoji found":"Nessun emoji trovato","No results":"Nessun risultato",Objects:"Oggetti",Open:"Apri",'Open link to "{resourceTitle}"':'Apri il link a "{resourceTitle}"',"Open navigation":"Apri la navigazione","Password is secure":"La password è sicura","Pause slideshow":"Presentazione in pausa","People & Body":"Persone e corpo","Pick an emoji":"Scegli un emoji","Please select a time zone:":"Si prega di selezionare un fuso orario:",Previous:"Precedente","Related resources":"Risorse correlate",Search:"Cerca","Search results":"Risultati di ricerca","Select a tag":"Seleziona un'etichetta",Settings:"Impostazioni","Settings navigation":"Navigazione delle impostazioni","Show password":"Mostra la password","Smileys & Emotion":"Faccine ed emozioni","Start slideshow":"Avvia presentazione",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_JP",translations:{"{tag} (invisible)":"{タグ} (不可視)","{tag} (restricted)":"{タグ} (制限付)",Actions:"操作",Activities:"アクティビティ","Animals & Nature":"動物と自然","Anything shared with the same group of people will show up here":"同じグループで共有しているものは、全てここに表示されます","Avatar of {displayName}":"{displayName} のアバター","Avatar of {displayName}, {status}":"{displayName}, {status} のアバター","Cancel changes":"変更をキャンセル","Change title":"タイトルを変更",Choose:"選択","Clear text":"テキストをクリア",Close:"閉じる","Close modal":"モーダルを閉じる","Close navigation":"ナビゲーションを閉じる","Close sidebar":"サイドバーを閉じる","Confirm changes":"変更を承認",Custom:"カスタム","Edit item":"編集","Error getting related resources":"関連リソースの取得エラー","Error parsing svg":"svgの解析エラー","External documentation for {title}":"{title} のための添付文書",Favorite:"お気に入り",Flags:"国旗","Food & Drink":"食べ物と飲み物","Frequently used":"よく使うもの",Global:"全体","Go back to the list":"リストに戻る","Hide password":"パスワードを非表示","Message limit of {count} characters reached":"{count} 文字のメッセージ上限に達しています","More items …":"他のアイテム",Next:"次","No emoji found":"絵文字が見つかりません","No results":"なし",Objects:"物",Open:"開く",'Open link to "{resourceTitle}"':'"{resourceTitle}"のリンクを開く',"Open navigation":"ナビゲーションを開く","Password is secure":"パスワードは保護されています","Pause slideshow":"スライドショーを一時停止","People & Body":"様々な人と体の部位","Pick an emoji":"絵文字を選択","Please select a time zone:":"タイムゾーンを選んで下さい:",Previous:"前","Related resources":"関連リソース",Search:"検索","Search results":"検索結果","Select a tag":"タグを選択",Settings:"設定","Settings navigation":"ナビゲーション設定","Show password":"パスワードを表示","Smileys & Emotion":"感情表現","Start slideshow":"スライドショーを開始",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)",Actions:"Veiksmai",Activities:"Veiklos","Animals & Nature":"Gyvūnai ir gamta",Choose:"Pasirinkti",Close:"Užverti",Custom:"Tinkinti","External documentation for {title}":"Išorinė {title} dokumentacija",Flags:"Vėliavos","Food & Drink":"Maistas ir gėrimai","Frequently used":"Dažniausiai naudoti","Message limit of {count} characters reached":"Pasiekta {count} simbolių žinutės riba",Next:"Kitas","No emoji found":"Nerasta jaustukų","No results":"Nėra rezultatų",Objects:"Objektai","Pause slideshow":"Pristabdyti skaidrių rodymą","People & Body":"Žmonės ir kūnas","Pick an emoji":"Pasirinkti jaustuką",Previous:"Ankstesnis",Search:"Ieškoti","Search results":"Paieškos rezultatai","Select a tag":"Pasirinkti žymę",Settings:"Nustatymai","Settings navigation":"Naršymas nustatymuose","Smileys & Emotion":"Šypsenos ir emocijos","Start slideshow":"Pradėti skaidrių rodymą",Submit:"Pateikti",Symbols:"Simboliai","Travel & Places":"Kelionės ir vietos","Unable to search the group":"Nepavyko atlikti paiešką grupėje","Write message, @ to mention someone …":"Rašykite žinutę, naudokite @ norėdami kažką paminėti…"}},{locale:"lv",translations:{"{tag} (invisible)":"{tag} (neredzams)","{tag} (restricted)":"{tag} (ierobežots)",Choose:"Izvēlēties",Close:"Aizvērt",Next:"Nākamais","No results":"Nav rezultātu","Pause slideshow":"Pauzēt slaidrādi",Previous:"Iepriekšējais","Select a tag":"Izvēlēties birku",Settings:"Iestatījumi","Start slideshow":"Sākt slaidrādi"}},{locale:"mk",translations:{"{tag} (invisible)":"{tag} (невидливо)","{tag} (restricted)":"{tag} (ограничено)",Actions:"Акции",Activities:"Активности","Animals & Nature":"Животни & Природа","Avatar of {displayName}":"Аватар на {displayName}","Avatar of {displayName}, {status}":"Аватар на {displayName}, {status}","Cancel changes":"Откажи ги промените","Change title":"Промени наслов",Choose:"Избери",Close:"Затвори","Close modal":"Затвори модал","Close navigation":"Затвори навигација","Confirm changes":"Потврди ги промените",Custom:"Прилагодени","Edit item":"Уреди","External documentation for {title}":"Надворешна документација за {title}",Favorite:"Фаворити",Flags:"Знамиња","Food & Drink":"Храна & Пијалоци","Frequently used":"Најчесто користени",Global:"Глобално","Go back to the list":"Врати се на листата",items:"ставки","Message limit of {count} characters reached":"Ограничувањето на должината на пораката од {count} карактери е надминато","More {dashboardItemType} …":"Повеќе {dashboardItemType} …",Next:"Следно","No emoji found":"Не се пронајдени емотикони","No results":"Нема резултати",Objects:"Објекти",Open:"Отвори","Open navigation":"Отвори навигација","Pause slideshow":"Пузирај слајдшоу","People & Body":"Луѓе & Тело","Pick an emoji":"Избери емотикон","Please select a time zone:":"Изберете временска зона:",Previous:"Предходно",Search:"Барај","Search results":"Резултати од барувањето","Select a tag":"Избери ознака",Settings:"Параметри","Settings navigation":"Параметри за навигација","Smileys & Emotion":"Смешковци & Емотикони","Start slideshow":"Стартувај слајдшоу",Submit:"Испрати",Symbols:"Симболи","Travel & Places":"Патувања & Места","Type to search time zone":"Напишете за да пребарате временска зона","Unable to search the group":"Неможе да се принајде групата","Undo changes":"Врати ги промените","Write message, @ to mention someone, : for emoji autocompletion …":"Напиши порака, @ за да спомнете некого, : за емотинони автоатско комплетирање ..."}},{locale:"my",translations:{"{tag} (invisible)":"{tag} (ကွယ်ဝှက်ထား)","{tag} (restricted)":"{tag} (ကန့်သတ်)",Actions:"လုပ်ဆောင်ချက်များ",Activities:"ပြုလုပ်ဆောင်တာများ","Animals & Nature":"တိရစ္ဆာန်များနှင့် သဘာဝ","Avatar of {displayName}":"{displayName} ၏ ကိုယ်ပွား","Cancel changes":"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်",Choose:"ရွေးချယ်ရန်",Close:"ပိတ်ရန်","Confirm changes":"ပြောင်းလဲမှုများ အတည်ပြုရန်",Custom:"အလိုကျချိန်ညှိမှု","External documentation for {title}":"{title} အတွက် ပြင်ပ စာရွက်စာတမ်း",Flags:"အလံများ","Food & Drink":"အစားအသောက်","Frequently used":"မကြာခဏအသုံးပြုသော",Global:"ကမ္ဘာလုံးဆိုင်ရာ","Message limit of {count} characters reached":"ကန့်သတ် စာလုံးရေ {count} လုံး ပြည့်ပါပြီ",Next:"နောက်သို့ဆက်ရန်","No emoji found":"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ","No results":"ရလဒ်မရှိပါ",Objects:"အရာဝတ္ထုများ","Pause slideshow":"စလိုက်ရှိုး ခေတ္တရပ်ရန်","People & Body":"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်","Pick an emoji":"အီမိုဂျီရွေးရန်","Please select a time zone:":"ဒေသစံတော်ချိန် ရွေးချယ်ပေးပါ",Previous:"ယခင်",Search:"ရှာဖွေရန်","Search results":"ရှာဖွေမှု ရလဒ်များ","Select a tag":"tag ရွေးချယ်ရန်",Settings:"ချိန်ညှိချက်များ","Settings navigation":"ချိန်ညှိချက်အညွှန်း","Smileys & Emotion":"စမိုင်လီများနှင့် အီမိုရှင်း","Start slideshow":"စလိုက်ရှိုးအား စတင်ရန်",Submit:"တင်သွင်းရန်",Symbols:"သင်္ကေတများ","Travel & Places":"ခရီးသွားလာခြင်းနှင့် နေရာများ","Type to search time zone":"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ","Unable to search the group":"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ","Write message, @ to mention someone …":"စာရေးသားရန်၊ တစ်စုံတစ်ဦးအား @ အသုံးပြု ရည်ညွှန်းရန်..."}},{locale:"nb_NO",translations:{"{tag} (invisible)":"{tag} (usynlig)","{tag} (restricted)":"{tag} (beskyttet)",Actions:"Handlinger",Activities:"Aktiviteter","Animals & Nature":"Dyr og natur","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}","Cancel changes":"Avbryt endringer","Change title":"Endre tittel",Choose:"Velg","Clear text":"Fjern tekst",Close:"Lukk","Close modal":"Lukk modal","Close navigation":"Lukk navigasjon","Close sidebar":"Lukk sidepanel","Confirm changes":"Bekreft endringer",Custom:"Tilpasset","Edit item":"Rediger","Error getting related resources":"Feil ved henting av relaterte ressurser","Error parsing svg":"Feil ved parsing av svg","External documentation for {title}":"Ekstern dokumentasjon for {title}",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","Message limit of {count} characters reached":"Karakter begrensing {count} nådd i melding","More items …":"Flere gjenstander...",Next:"Neste","No emoji found":"Fant ingen emoji","No results":"Ingen resultater",Objects:"Objekter",Open:"Åpne",'Open link to "{resourceTitle}"':'Åpne link til "{resourceTitle}"',"Open navigation":"Åpne navigasjon","Password is secure":"Passordet er sikkert","Pause slideshow":"Pause lysbildefremvisning","People & Body":"Mennesker og kropp","Pick an emoji":"Velg en emoji","Please select a time zone:":"Vennligst velg tidssone",Previous:"Forrige","Related resources":"Relaterte ressurser",Search:"Søk","Search results":"Søkeresultater","Select a tag":"Velg en merkelapp",Settings:"Innstillinger","Settings navigation":"Navigasjonsinstillinger","Show password":"Vis passord","Smileys & Emotion":"Smilefjes og følelser","Start slideshow":"Start lysbildefremvisning",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:"nl",translations:{"{tag} (invisible)":"{tag} (onzichtbaar)","{tag} (restricted)":"{tag} (beperkt)",Actions:"Acties",Activities:"Activiteiten","Animals & Nature":"Dieren & Natuur","Avatar of {displayName}":"Avatar van {displayName}","Avatar of {displayName}, {status}":"Avatar van {displayName}, {status}","Cancel changes":"Wijzigingen annuleren",Choose:"Kies",Close:"Sluiten","Close navigation":"Navigatie sluiten","Confirm changes":"Wijzigingen bevestigen",Custom:"Aangepast","Edit item":"Item bewerken","External documentation for {title}":"Externe documentatie voor {title}",Flags:"Vlaggen","Food & Drink":"Eten & Drinken","Frequently used":"Vaak gebruikt",Global:"Globaal","Go back to the list":"Ga terug naar de lijst","Message limit of {count} characters reached":"Berichtlimiet van {count} karakters bereikt",Next:"Volgende","No emoji found":"Geen emoji gevonden","No results":"Geen resultaten",Objects:"Objecten","Open navigation":"Navigatie openen","Pause slideshow":"Pauzeer diavoorstelling","People & Body":"Mensen & Lichaam","Pick an emoji":"Kies een emoji","Please select a time zone:":"Selecteer een tijdzone:",Previous:"Vorige",Search:"Zoeken","Search results":"Zoekresultaten","Select a tag":"Selecteer een label",Settings:"Instellingen","Settings navigation":"Instellingen navigatie","Smileys & Emotion":"Smileys & Emotie","Start slideshow":"Start diavoorstelling",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, @ to mention someone, : for emoji autocompletion …":"Schrijf bericht, @ om iemand te noemen, : voor emoji auto-aanvullen ..."}},{locale:"oc",translations:{"{tag} (invisible)":"{tag} (invisible)","{tag} (restricted)":"{tag} (limit)",Actions:"Accions",Choose:"Causir",Close:"Tampar",Next:"Seguent","No results":"Cap de resultat","Pause slideshow":"Metre en pausa lo diaporama",Previous:"Precedent","Select a tag":"Seleccionar una etiqueta",Settings:"Paramètres","Start slideshow":"Lançar lo diaporama"}},{locale:"pl",translations:{"{tag} (invisible)":"{tag} (niewidoczna)","{tag} (restricted)":"{tag} (ograniczona)",Actions:"Działania",Activities:"Aktywność","Animals & Nature":"Zwierzęta i natura","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}","Cancel changes":"Anuluj zmiany","Change title":"Zmień tytuł",Choose:"Wybierz","Clear text":"Wyczyść tekst",Close:"Zamknij","Close modal":"Zamknij modal","Close navigation":"Zamknij nawigację","Close sidebar":"Zamknij pasek boczny","Confirm changes":"Potwierdź zmiany",Custom:"Zwyczajne","Edit item":"Edytuj element","Error getting related resources":"Błąd podczas pobierania powiązanych zasobów","Error parsing svg":"Błąd podczas analizowania svg","External documentation for {title}":"Dokumentacja zewnętrzna dla {title}",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","Message limit of {count} characters reached":"Przekroczono limit wiadomości wynoszący {count} znaków","More items …":"Więcej pozycji…",Next:"Następny","No emoji found":"Nie znaleziono emoji","No results":"Brak wyników",Objects:"Obiekty",Open:"Otwórz",'Open link to "{resourceTitle}"':'Otwórz link do "{resourceTitle}"',"Open navigation":"Otwórz nawigację","Password is secure":"Hasło jest bezpieczne","Pause slideshow":"Wstrzymaj pokaz slajdów","People & Body":"Ludzie i ciało","Pick an emoji":"Wybierz emoji","Please select a time zone:":"Wybierz strefę czasową:",Previous:"Poprzedni","Related resources":"Powiązane zasoby",Search:"Szukaj","Search results":"Wyniki wyszukiwania","Select a tag":"Wybierz etykietę",Settings:"Ustawienia","Settings navigation":"Ustawienia nawigacji","Show password":"Pokaż hasło","Smileys & Emotion":"Buźki i emotikony","Start slideshow":"Rozpocznij pokaz slajdów",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:"pt_BR",translations:{"{tag} (invisible)":"{tag} (invisível)","{tag} (restricted)":"{tag} (restrito) ",Actions:"Ações",Activities:"Atividades","Animals & Nature":"Animais & Natureza","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}","Cancel changes":"Cancelar alterações","Change title":"Alterar título",Choose:"Escolher","Clear text":"Limpar texto",Close:"Fechar","Close modal":"Fechar modal","Close navigation":"Fechar navegação","Close sidebar":"Fechar barra lateral","Confirm changes":"Confirmar alterações",Custom:"Personalizado","Edit item":"Editar item","Error getting related resources":"Erro ao obter recursos relacionados","Error parsing svg":"Erro ao analisar svg","External documentation for {title}":"Documentação externa para {title}",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","Message limit of {count} characters reached":"Limite de mensagem de {count} caracteres atingido","More items …":"Mais itens …",Next:"Próximo","No emoji found":"Nenhum emoji encontrado","No results":"Sem resultados",Objects:"Objetos",Open:"Aberto",'Open link to "{resourceTitle}"':'Abrir link para "{resourceTitle}"',"Open navigation":"Abrir navegação","Password is secure":"A senha é segura","Pause slideshow":"Pausar apresentação de slides","People & Body":"Pessoas & Corpo","Pick an emoji":"Escolha um emoji","Please select a time zone:":"Selecione um fuso horário: ",Previous:"Anterior","Related resources":"Recursos relacionados",Search:"Pesquisar","Search results":"Resultados da pesquisa","Select a tag":"Selecionar uma tag",Settings:"Configurações","Settings navigation":"Navegação de configurações","Show password":"Mostrar senha","Smileys & Emotion":"Smiles & Emoções","Start slideshow":"Iniciar apresentação de slides",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)",Actions:"Ações",Choose:"Escolher",Close:"Fechar",Next:"Seguinte","No results":"Sem resultados","Pause slideshow":"Pausar diaporama",Previous:"Anterior","Select a tag":"Selecionar uma etiqueta",Settings:"Definições","Start slideshow":"Iniciar diaporama","Unable to search the group":"Não é possível pesquisar o grupo"}},{locale:"ro",translations:{"{tag} (invisible)":"{tag} (invizibil)","{tag} (restricted)":"{tag} (restricționat)",Actions:"Acțiuni",Activities:"Activități","Animals & Nature":"Animale și natură","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}","Cancel changes":"Anulează modificările","Change title":"Modificați titlul",Choose:"Alegeți","Clear text":"Șterge textul",Close:"Închideți","Close modal":"Închideți modulul","Close navigation":"Închideți navigarea","Close sidebar":"Închide bara laterală","Confirm changes":"Confirmați modificările",Custom:"Personalizat","Edit item":"Editați elementul","Error getting related resources":" Eroare la returnarea resurselor legate","Error parsing svg":"Eroare de analizare a svg","External documentation for {title}":"Documentație externă pentru {title}",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","Message limit of {count} characters reached":"Limita mesajului de {count} caractere a fost atinsă","More items …":"Mai multe articole ...",Next:"Următorul","No emoji found":"Nu s-a găsit niciun emoji","No results":"Nu există rezultate",Objects:"Obiecte",Open:"Deschideți",'Open link to "{resourceTitle}"':'Deschide legătura la "{resourceTitle}"',"Open navigation":"Deschideți navigația","Password is secure":"Parola este sigură","Pause slideshow":"Pauză prezentare de diapozitive","People & Body":"Oameni și corp","Pick an emoji":"Alege un emoji","Please select a time zone:":"Vă rugăm să selectați un fus orar:",Previous:"Anterior","Related resources":"Resurse legate",Search:"Căutare","Search results":"Rezultatele căutării","Select a tag":"Selectați o etichetă",Settings:"Setări","Settings navigation":"Navigare setări","Show password":"Arată parola","Smileys & Emotion":"Zâmbete și emoții","Start slideshow":"Începeți prezentarea de diapozitive",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} (ограниченное)",Actions:"Действия ",Activities:"События","Animals & Nature":"Животные и природа ","Avatar of {displayName}":"Аватар {displayName}","Avatar of {displayName}, {status}":"Фотография {displayName}, {status}","Cancel changes":"Отменить изменения",Choose:"Выберите",Close:"Закрыть","Close modal":"Закрыть модальное окно","Close navigation":"Закрыть навигацию","Confirm changes":"Подтвердить изменения",Custom:"Пользовательское","Edit item":"Изменить элемент","External documentation for {title}":"Внешняя документация для {title}",Flags:"Флаги","Food & Drink":"Еда, напиток","Frequently used":"Часто используемый",Global:"Глобальный","Go back to the list":"Вернуться к списку",items:"элементов","Message limit of {count} characters reached":"Достигнуто ограничение на количество символов в {count}","More {dashboardItemType} …":"Больше {dashboardItemType} …",Next:"Следующее","No emoji found":"Эмодзи не найдено","No results":"Результаты отсуствуют",Objects:"Объекты",Open:"Открыть","Open navigation":"Открыть навигацию","Pause slideshow":"Приостановить показ слйдов","People & Body":"Люди и тело","Pick an emoji":"Выберите эмодзи","Please select a time zone:":"Пожалуйста, выберите часовой пояс:",Previous:"Предыдущее",Search:"Поиск","Search results":"Результаты поиска","Select a tag":"Выберите метку",Settings:"Параметры","Settings navigation":"Навигация по настройкам","Smileys & Emotion":"Смайлики и эмоции","Start slideshow":"Начать показ слайдов",Submit:"Утвердить",Symbols:"Символы","Travel & Places":"Путешествия и места","Type to search time zone":"Введите для поиска часового пояса","Unable to search the group":"Невозможно найти группу","Undo changes":"Отменить изменения","Write message, @ to mention someone, : for emoji autocompletion …":"Напишите сообщение, @ - чтобы упомянуть кого-то, : - для автозаполнения эмодзи …"}},{locale:"sk_SK",translations:{"{tag} (invisible)":"{tag} (neviditeľný)","{tag} (restricted)":"{tag} (obmedzený)",Actions:"Akcie",Activities:"Aktivity","Animals & Nature":"Zvieratá a príroda","Avatar of {displayName}":"Avatar {displayName}","Avatar of {displayName}, {status}":"Avatar {displayName}, {status}","Cancel changes":"Zrušiť zmeny",Choose:"Vybrať",Close:"Zatvoriť","Close navigation":"Zavrieť navigáciu","Confirm changes":"Potvrdiť zmeny",Custom:"Zvyk","Edit item":"Upraviť položku","External documentation for {title}":"Externá dokumentácia pre {title}",Flags:"Vlajky","Food & Drink":"Jedlo a nápoje","Frequently used":"Často používané",Global:"Globálne","Go back to the list":"Naspäť na zoznam","Message limit of {count} characters reached":"Limit správy na {count} znakov dosiahnutý",Next:"Ďalší","No emoji found":"Nenašli sa žiadne emodži","No results":"Žiadne výsledky",Objects:"Objekty","Open navigation":"Otvoriť navigáciu","Pause slideshow":"Pozastaviť prezentáciu","People & Body":"Ľudia a telo","Pick an emoji":"Vyberte si emodži","Please select a time zone:":"Prosím vyberte časovú zónu:",Previous:"Predchádzajúci",Search:"Hľadať","Search results":"Výsledky vyhľadávania","Select a tag":"Vybrať štítok",Settings:"Nastavenia","Settings navigation":"Navigácia v nastaveniach","Smileys & Emotion":"Smajlíky a emócie","Start slideshow":"Začať prezentáciu",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, @ to mention someone, : for emoji autocompletion …":"Napíšte správu, @ ak chcete niekoho spomenúť, : pre automatické dopĺňanie emotikonov…"}},{locale:"sl",translations:{"{tag} (invisible)":"{tag} (nevidno)","{tag} (restricted)":"{tag} (omejeno)",Actions:"Dejanja",Activities:"Dejavnosti","Animals & Nature":"Živali in Narava","Avatar of {displayName}":"Podoba {displayName}","Avatar of {displayName}, {status}":"Prikazna slika {displayName}, {status}","Cancel changes":"Prekliči spremembe","Change title":"Spremeni naziv",Choose:"Izbor","Clear text":"Počisti besedilo",Close:"Zapri","Close modal":"Zapri pojavno okno","Close navigation":"Zapri krmarjenje","Close sidebar":"Zapri stransko vrstico","Confirm changes":"Potrdi spremembe",Custom:"Po meri","Edit item":"Uredi predmet","Error getting related resources":"Napaka pridobivanja povezanih virov","External documentation for {title}":"Zunanja dokumentacija za {title}",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","Message limit of {count} characters reached":"Dosežena omejitev {count} znakov na sporočilo.","More items …":"Več predmetov ...",Next:"Naslednji","No emoji found":"Ni najdenih izraznih ikon","No results":"Ni zadetkov",Objects:"Predmeti",Open:"Odpri",'Open link to "{resourceTitle}"':"Odpri povezavo do »{resourceTitle}«","Open navigation":"Odpri krmarjenje","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","Related resources":"Povezani viri",Search:"Iskanje","Search results":"Zadetki iskanja","Select a tag":"Izbor oznake",Settings:"Nastavitve","Settings navigation":"Krmarjenje nastavitev","Show password":"Pokaži geslo","Smileys & Emotion":"Izrazne ikone","Start slideshow":"Začni predstavitev",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, @ to mention someone, : for emoji autocompletion …":"Napišite sporočilo, za omembo pred ime postavite@, začnite z : za vstavljanje izraznih ikon …"}},{locale:"sr",translations:{"{tag} (invisible)":"{tag} (nevidljivo)","{tag} (restricted)":"{tag} (ograničeno)",Actions:"Radnje",Activities:"Aktivnosti","Animals & Nature":"Životinje i Priroda","Avatar of {displayName}":"Avatar za {displayName}","Avatar of {displayName}, {status}":"Avatar za {displayName}, {status}","Cancel changes":"Otkaži izmene","Change title":"Izmeni naziv",Choose:"Изаберите",Close:"Затвори","Close modal":"Zatvori modal","Close navigation":"Zatvori navigaciju","Close sidebar":"Zatvori bočnu traku","Confirm changes":"Potvrdite promene",Custom:"Po meri","Edit item":"Uredi stavku","External documentation for {title}":"Eksterna dokumentacija za {title}",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",items:"stavke","Message limit of {count} characters reached":"Dostignuto je ograničenje za poruke od {count} znakova","More {dashboardItemType} …":"Više {dashboardItemType} …",Next:"Следеће","No emoji found":"Nije pronađen nijedan emodži","No results":"Нема резултата",Objects:"Objekti",Open:"Otvori","Open navigation":"Otvori navigaciju","Pause slideshow":"Паузирај слајд шоу","People & Body":"Ljudi i Telo","Pick an emoji":"Izaberi emodži","Please select a time zone:":"Molimo izaberite vremensku zonu:",Previous:"Претходно",Search:"Pretraži","Search results":"Rezultati pretrage","Select a tag":"Изаберите ознаку",Settings:"Поставке","Settings navigation":"Navigacija u podešavanjima","Smileys & Emotion":"Smajli i Emocije","Start slideshow":"Покрени слајд шоу",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, @ to mention someone, : for emoji autocompletion …":"Napišite poruku, @ da pomenete nekoga, : za automatsko dovršavanje emodžija…"}},{locale:"sv",translations:{"{tag} (invisible)":"{tag} (osynlig)","{tag} (restricted)":"{tag} (begränsad)",Actions:"Åtgärder",Activities:"Aktiviteter","Animals & Nature":"Djur & Natur","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}","Cancel changes":"Avbryt ändringar","Change title":"Ändra titel",Choose:"Välj","Clear text":"Ta bort text",Close:"Stäng","Close modal":"Stäng modal","Close navigation":"Stäng navigering","Close sidebar":"Stäng sidopanel","Confirm changes":"Bekräfta ändringar",Custom:"Anpassad","Edit item":"Ändra","Error getting related resources":"Problem att hämta relaterade resurser","Error parsing svg":"Fel vid inläsning av svg","External documentation for {title}":"Extern dokumentation för {title}",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","Message limit of {count} characters reached":"Meddelandegräns {count} tecken används","More items …":"Fler objekt",Next:"Nästa","No emoji found":"Hittade inga emojis","No results":"Inga resultat",Objects:"Objekt",Open:"Öppna",'Open link to "{resourceTitle}"':'Öppna länk till "{resourceTitle}"',"Open navigation":"Öppna navigering","Password is secure":"Lössenordet är säkert","Pause slideshow":"Pausa bildspelet","People & Body":"Kropp & Själ","Pick an emoji":"Välj en emoji","Please select a time zone:":"Välj tidszon:",Previous:"Föregående","Related resources":"Relaterade resurser",Search:"Sök","Search results":"Sökresultat","Select a tag":"Välj en tag",Settings:"Inställningar","Settings navigation":"Inställningsmeny","Show password":"Visa lössenordet","Smileys & Emotion":"Selfies & Känslor","Start slideshow":"Starta bildspelet",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:"tr",translations:{"{tag} (invisible)":"{tag} (görünmez)","{tag} (restricted)":"{tag} (kısıtlı)",Actions:"İşlemler",Activities:"Etkinlikler","Animals & Nature":"Hayvanlar ve Doğa","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ı","Cancel changes":"Değişiklikleri iptal et","Change title":"Başlığı değiştir",Choose:"Seçin","Clear text":"Metni temizle",Close:"Kapat","Close modal":"Üste açılan pencereyi kapat","Close navigation":"Gezinmeyi kapat","Close sidebar":"Yan çubuğu kapat","Confirm changes":"Değişiklikleri onayla",Custom:"Özel","Edit item":"Ögeyi düzenle","Error getting related resources":"İlgili kaynaklar alınırken sorun çıktı","Error parsing svg":"svg işlenirken sorun çıktı","External documentation for {title}":"{title} için dış belgeler",Favorite:"Sık kullanılanlara ekle",Flags:"Bayraklar","Food & Drink":"Yeme ve İçme","Frequently used":"Sık kullanılanlar",Global:"Evrensel","Go back to the list":"Listeye dön","Hide password":"Parolayı gizle","Message limit of {count} characters reached":"{count} karakter ileti sınırına ulaşıldı","More items …":"Diğer ögeler…",Next:"Sonraki","No emoji found":"Herhangi bir emoji bulunamadı","No results":"Herhangi bir sonuç bulunamadı",Objects:"Nesneler",Open:"Aç",'Open link to "{resourceTitle}"':'"{resourceTitle}" bağlantısını aç',"Open navigation":"Gezinmeyi aç","Password is secure":"Parola güvenli","Pause slideshow":"Slayt sunumunu duraklat","People & Body":"İnsanlar ve Beden","Pick an emoji":"Bir emoji seçin","Please select a time zone:":"Lütfen bir saat dilimi seçin:",Previous:"Önceki","Related resources":"İlgili kaynaklar",Search:"Arama","Search results":"Arama sonuçları","Select a tag":"Bir etiket seçin",Settings:"Ayarlar","Settings navigation":"Gezinme ayarları","Show password":"Parolayı görüntüle","Smileys & Emotion":"İfadeler ve Duygular","Start slideshow":"Slayt sunumunu başlat",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:"uk",translations:{"{tag} (invisible)":"{tag} (невидимий)","{tag} (restricted)":"{tag} (обмежений)",Actions:"Дії",Activities:"Діяльність","Animals & Nature":"Тварини та природа","Avatar of {displayName}":"Аватар {displayName}","Avatar of {displayName}, {status}":"Аватар {displayName}, {status}","Cancel changes":"Скасувати зміни","Change title":"Змінити назву",Choose:"ВиберітьВиберіть","Clear text":"Очистити текст",Close:"Закрити","Close modal":"Закрити модаль","Close navigation":"Закрити навігацію","Close sidebar":"Закрити бічну панель","Confirm changes":"Підтвердити зміни",Custom:"Власне","Edit item":"Редагувати елемент","External documentation for {title}":"Зовнішня документація для {title}",Favorite:"Улюблений",Flags:"Прапори","Food & Drink":"Їжа та напої","Frequently used":"Найчастіші",Global:"Глобальний","Go back to the list":"Повернутися до списку","Hide password":"Приховати пароль",items:"елементи","Message limit of {count} characters reached":"Вичерпано ліміт у {count} символів для повідомлення","More {dashboardItemType} …":"Більше {dashboardItemType}…",Next:"Вперед","No emoji found":"Емоційки відсутні","No results":"Відсутні результати",Objects:"Об'єкти",Open:"Відкрити","Open navigation":"Відкрити навігацію","Password is secure":"Пароль безпечний","Pause slideshow":"Пауза у показі слайдів","People & Body":"Люди та жести","Pick an emoji":"Виберіть емоційку","Please select a time zone:":"Виберіть часовий пояс:",Previous:"Назад",Search:"Пошук","Search results":"Результати пошуку","Select a tag":"Виберіть позначку",Settings:"Налаштування","Settings navigation":"Навігація у налаштуваннях","Show password":"Показати пароль","Smileys & Emotion":"Смайли та емоції","Start slideshow":"Почати показ слайдів",Submit:"Надіслати",Symbols:"Символи","Travel & Places":"Поїздки та місця","Type to search time zone":"Введіть для пошуку часовий пояс","Unable to search the group":"Неможливо шукати в групі","Undo changes":"Скасувати зміни","Write message, @ to mention someone, : for emoji autocompletion …":"Напишіть повідомлення, @, щоб згадати когось, : для автозаповнення емодзі…"}},{locale:"zh_CN",translations:{"{tag} (invisible)":"{tag} (不可见)","{tag} (restricted)":"{tag} (受限)",Actions:"行为",Activities:"活动","Animals & Nature":"动物 & 自然","Anything shared with the same group of people will show up here":"与同组用户分享的所有内容都会显示于此","Avatar of {displayName}":"{displayName}的头像","Avatar of {displayName}, {status}":"{displayName}的头像,{status}","Cancel changes":"取消更改","Change title":"更改标题",Choose:"选择","Clear text":"清除文本",Close:"关闭","Close modal":"关闭窗口","Close navigation":"关闭导航","Close sidebar":"关闭侧边栏","Confirm changes":"确认更改",Custom:"自定义","Edit item":"编辑项目","Error getting related resources":"获取相关资源时出错","Error parsing svg":"解析 svg 时出错","External documentation for {title}":"{title}的外部文档",Favorite:"喜爱",Flags:"旗帜","Food & Drink":"食物 & 饮品","Frequently used":"经常使用",Global:"全局","Go back to the list":"返回至列表","Hide password":"隐藏密码","Message limit of {count} characters reached":"已达到 {count} 个字符的消息限制","More items …":"更多项目…",Next:"下一个","No emoji found":"表情未找到","No results":"无结果",Objects:"物体",Open:"打开",'Open link to "{resourceTitle}"':'打开"{resourceTitle}"的连接',"Open navigation":"开启导航","Password is secure":"密码安全","Pause slideshow":"暂停幻灯片","People & Body":"人 & 身体","Pick an emoji":"选择一个表情","Please select a time zone:":"请选择一个时区:",Previous:"上一个","Related resources":"相关资源",Search:"搜索","Search results":"搜索结果","Select a tag":"选择一个标签",Settings:"设置","Settings navigation":"设置向导","Show password":"显示密码","Smileys & Emotion":"笑脸 & 情感","Start slideshow":"开始幻灯片",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} (受限)",Actions:"動作",Activities:"活動","Animals & Nature":"動物與自然","Anything shared with the same group of people will show up here":"與同一組人共享的任何內容都會顯示在此處","Avatar of {displayName}":"{displayName} 的頭像","Avatar of {displayName}, {status}":"{displayName} 的頭像,{status}","Cancel changes":"取消更改","Change title":"更改標題",Choose:"選擇","Clear text":"清除文本",Close:"關閉","Close modal":"關閉模態","Close navigation":"關閉導航","Close sidebar":"關閉側邊欄","Confirm changes":"確認更改",Custom:"自定義","Edit item":"編輯項目","Error getting related resources":"獲取相關資源出錯","Error parsing svg":"解析 svg 時出錯","External documentation for {title}":"{title} 的外部文檔",Favorite:"喜愛",Flags:"旗幟","Food & Drink":"食物與飲料","Frequently used":"經常使用",Global:"全球的","Go back to the list":"返回清單","Hide password":"隱藏密碼","Message limit of {count} characters reached":"已達到訊息最多 {count} 字元限制","More items …":"更多項目 …",Next:"下一個","No emoji found":"未找到表情符號","No results":"無結果",Objects:"物件",Open:"打開",'Open link to "{resourceTitle}"':"打開指向 “{resourceTitle}” 的鏈結","Open navigation":"開啟導航","Password is secure":"密碼是安全的","Pause slideshow":"暫停幻燈片","People & Body":"人物","Pick an emoji":"選擇表情符號","Please select a time zone:":"請選擇時區:",Previous:"上一個","Related resources":"相關資源",Search:"搜尋","Search results":"搜尋結果","Select a tag":"選擇標籤",Settings:"設定","Settings navigation":"設定值導覽","Show password":"顯示密碼","Smileys & Emotion":"表情","Start slideshow":"開始幻燈片",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} (受限)",Actions:"動作",Activities:"活動","Animals & Nature":"動物與自然",Choose:"選擇",Close:"關閉",Custom:"自定義",Flags:"旗幟","Food & Drink":"食物與飲料","Frequently used":"最近使用","Message limit of {count} characters reached":"已達到訊息最多 {count} 字元限制",Next:"下一個","No emoji found":"未找到表情符號","No results":"無結果",Objects:"物件","Pause slideshow":"暫停幻燈片","People & Body":"人物","Pick an emoji":"選擇表情符號",Previous:"上一個",Search:"搜尋","Search results":"搜尋結果","Select a tag":"選擇標籤",Settings:"設定","Settings navigation":"設定值導覽","Smileys & Emotion":"表情","Start slideshow":"開始幻燈片",Symbols:"標誌","Travel & Places":"旅遊與景點","Unable to search the group":"無法搜尋群組","Write message, @ to mention someone …":"輸入訊息時可使用 @ 來標示某人..."}}].forEach((function(e){var t={};for(var n in e.translations)e.translations[n].pluralId?t[n]={msgid:n,msgid_plural:e.translations[n].pluralId,msgstr:e.translations[n].msgstr}:t[n]={msgid:n,msgstr:[e.translations[n]]};a.addTranslation(e.locale,{translations:{"":t}})}));var r=a.build(),o=r.ngettext.bind(r),i=r.gettext.bind(r)},3648:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var a=n(932);const r={methods:{n:a.n,t:a.t}}},1205:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=function(e){return Math.random().toString(36).replace(/[^a-z]+/g,"").slice(0,e||5)}},7645:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const a=function(e){e.mounted?Array.isArray(e.mounted)||(e.mounted=[e.mounted]):e.mounted=[],e.mounted.push((function(){this.$el.setAttribute("data-v-".concat("a36c6b4"),"")}))}},1206:(e,t,n)=>{"use strict";n.d(t,{L:()=>a}),n(4505);var a=function(){return Object.assign(window,{_nc_focus_trap:window._nc_focus_trap||[]}),window._nc_focus_trap}},5108:(e,t,n)=>{var a=n(6464),r=n(9084);function o(){return(new Date).getTime()}var i,s=Array.prototype.slice,l={};i=void 0!==n.g&&n.g.console?n.g.console:"undefined"!=typeof window&&window.console?window.console:{};for(var u=[[function(){},"log"],[function(){i.log.apply(i,arguments)},"info"],[function(){i.log.apply(i,arguments)},"warn"],[function(){i.warn.apply(i,arguments)},"error"],[function(e){l[e]=o()},"time"],[function(e){var t=l[e];if(!t)throw new Error("No such label: "+e);delete l[e];var n=o()-t;i.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=a.format.apply(null,arguments),i.error(e.stack)},"trace"],[function(e){i.log(a.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=s.call(arguments,1);r.ok(!1,a.format.apply(null,t))}},"assert"]],c=0;c{"use strict";n.d(t,{Z:()=>s});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-tooltip.v-popper__popper{position:absolute;z-index:100000;top:0;right:auto;left:auto;display:block;margin:0;padding:0;text-align:left;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-tooltip.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-tooltip.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-tooltip.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{right:100%;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{left:100%;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity .15s,visibility .15s;opacity:0}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity .15s;opacity:1}.v-popper--theme-tooltip .v-popper__inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.v-popper--theme-tooltip .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/directives/Tooltip/index.scss"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCQA,0CACC,iBAAA,CACA,cAAA,CACA,KAAA,CACA,UAAA,CACA,SAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,SAAA,CACA,eAAA,CAEA,eAAA,CACA,sDAAA,CAGA,iGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAID,oGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAID,mGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAID,kGACC,SAAA,CACA,oBAAA,CACA,8CAAA,CAID,4DACC,iBAAA,CACA,uCAAA,CACA,SAAA,CAED,6DACC,kBAAA,CACA,uBAAA,CACA,SAAA,CAKF,0CACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,4BAAA,CACA,kCAAA,CACA,6CAAA,CAID,oDACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBAhFY",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:\"a36c6b4\"; @import 'variables'; @import 'material-icons';\n/**\n* @copyright Copyright (c) 2016, John Molakvoæ \n* @copyright Copyright (c) 2016, Robin Appelman \n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt \n* @copyright Copyright (c) 2016, Erik Pellikka \n* @copyright Copyright (c) 2015, Vincent Petry \n*\n* Bootstrap v3.3.5 (http://getbootstrap.com)\n* Copyright 2011-2015 Twitter, Inc.\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n*/\n\n$arrow-width: 10px;\n\n.v-popper--theme-tooltip {\n\t&.v-popper__popper {\n\t\tposition: absolute;\n\t\tz-index: 100000;\n\t\ttop: 0;\n\t\tright: auto;\n\t\tleft: auto;\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\ttext-align: left;\n\t\ttext-align: start;\n\t\topacity: 0;\n\t\tline-height: 1.6;\n\n\t\tline-break: auto;\n\t\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t\t// TOP\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// BOTTOM\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// RIGHT\n\t\t&[data-popper-placement^='right'] .v-popper__arrow-container {\n\t\t\tright: 100%;\n\t\t\tborder-left-width: 0;\n\t\t\tborder-right-color: var(--color-main-background);\n\t\t}\n\n\t\t// LEFT\n\t\t&[data-popper-placement^='left'] .v-popper__arrow-container {\n\t\t\tleft: 100%;\n\t\t\tborder-right-width: 0;\n\t\t\tborder-left-color: var(--color-main-background);\n\t\t}\n\n\t\t// HIDDEN / SHOWN\n\t\t&[aria-hidden='true'] {\n\t\t\tvisibility: hidden;\n\t\t\ttransition: opacity .15s, visibility .15s;\n\t\t\topacity: 0;\n\t\t}\n\t\t&[aria-hidden='false'] {\n\t\t\tvisibility: visible;\n\t\t\ttransition: opacity .15s;\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t// CONTENT\n\t.v-popper__inner {\n\t\tmax-width: 350px;\n\t\tpadding: 5px 8px;\n\t\ttext-align: center;\n\t\tcolor: var(--color-main-text);\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-color: var(--color-main-background);\n\t}\n\n\t// ARROW\n\t.v-popper__arrow-container {\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tmargin: 0;\n\t\tborder-style: solid;\n\t\tborder-color: transparent;\n\t\tborder-width: $arrow-width;\n\t}\n}\n"],sourceRoot:""}]);const s=i},297:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".material-design-icon[data-v-2f315260]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-2f315260]{display:flex;align-items:center}.action-item[data-v-2f315260]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-2f315260]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-2f315260]{--open-background-color: var(--color-primary-light-hover)}.action-item.action-item--error[data-v-2f315260]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-2f315260]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-2f315260]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-2f315260]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-2f315260]{opacity:1;background-color:var(--open-background-color)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcActions/NcActions.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,kBAAA,CAGD,8BACC,gFAAA,CACA,iBAAA,CACA,oBAAA,CAEA,mDACC,2DAAA,CAGD,qDACC,yDAAA,CAGD,iDACC,iDAAA,CAGD,mDACC,mDAAA,CAGD,mDACC,mDAAA,CAGD,kEACC,oCAAA,CAGD,yEACC,SCOa,CDNb,6CAAA",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:\"a36c6b4\"; @import 'variables'; @import 'material-icons';\n\n.action-items {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.action-item {\n\t--open-background-color: var(--color-background-hover, $action-background-hover);\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t&.action-item--primary {\n\t\t--open-background-color: var(--color-primary-element-hover);\n\t}\n\n\t&.action-item--secondary {\n\t\t--open-background-color: var(--color-primary-light-hover);\n\t}\n\n\t&.action-item--error {\n\t\t--open-background-color: var(--color-error-hover);\n\t}\n\n\t&.action-item--warning {\n\t\t--open-background-color: var(--color-warning-hover);\n\t}\n\n\t&.action-item--success {\n\t\t--open-background-color: var(--color-success-hover);\n\t}\n\n\t&.action-item--tertiary-no-background {\n\t\t--open-background-color: transparent;\n\t}\n\n\t&.action-item--open .action-item__menutoggle {\n\t\topacity: $opacity_full;\n\t\tbackground-color: var(--open-background-color);\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\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 s=i},6:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner{border-radius:var(--border-radius-large);padding:4px;max-height:calc(50vh - 16px);overflow:auto}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcActions/NcActions.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,gFACC,wCAAA,CACA,WAAA,CACA,4BAAA,CACA,aAAA",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:\"a36c6b4\"; @import 'variables'; @import 'material-icons';\n\n// We overwrote the popover base class, so we can style\n// the popover__inner for actions only.\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner {\n\tborder-radius: var(--border-radius-large);\n\tpadding: 4px;\n\tmax-height: calc(50vh - 16px);\n\toverflow: auto;\n}\n"],sourceRoot:""}]);const s=i},1064:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,".material-design-icon[data-v-4de3abc4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-4de3abc4]{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-light-text);background-color:var(--color-primary-light)}.button-vue *[data-v-4de3abc4],.button-vue span[data-v-4de3abc4]{cursor:pointer}.button-vue[data-v-4de3abc4]:focus{outline:none}.button-vue[data-v-4de3abc4]:disabled{cursor:default;opacity:.5;filter:saturate(0.7)}.button-vue:disabled *[data-v-4de3abc4]{cursor:default}.button-vue[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-primary-light-hover)}.button-vue[data-v-4de3abc4]:active{background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-4de3abc4]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-4de3abc4]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-4de3abc4]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-4de3abc4]{width:44px !important}.button-vue--text-only[data-v-4de3abc4]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-4de3abc4]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-4de3abc4]{padding:0 16px 0 4px}.button-vue--wide[data-v-4de3abc4]{width:100%}.button-vue[data-v-4de3abc4]:focus-visible{outline:2px solid var(--color-main-text) !important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-4de3abc4]{outline:2px solid var(--color-primary-text);border-radius:var(--border-radius);background-color:rgba(0,0,0,0)}.button-vue--vue-primary[data-v-4de3abc4]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-4de3abc4]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-4de3abc4]{color:var(--color-primary-light-text);background-color:var(--color-primary-light)}.button-vue--vue-secondary[data-v-4de3abc4]:hover:not(:disabled){color:var(--color-primary-light-text);background-color:var(--color-primary-light-hover)}.button-vue--vue-tertiary[data-v-4de3abc4]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-4de3abc4]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-no-background[data-v-4de3abc4]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-4de3abc4]{color:var(--color-primary-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-4de3abc4]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-success[data-v-4de3abc4]{background-color:var(--color-success);color:#fff}.button-vue--vue-success[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-4de3abc4]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-4de3abc4]{background-color:var(--color-warning);color:#fff}.button-vue--vue-warning[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-4de3abc4]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-4de3abc4]{background-color:var(--color-error);color:#fff}.button-vue--vue-error[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-4de3abc4]: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,qCAAA,CACA,2CAAA,CA1BA,iEAEC,cAAA,CAQD,mCACC,YAAA,CAGD,sCACC,cAAA,CAIA,UCIiB,CDFjB,oBAAA,CALA,wCACC,cAAA,CAUF,kDACC,iDAAA,CAKD,oCACC,mDAAA,CAGD,sCACC,mBAAA,CACA,kBAAA,CACA,4BAAA,CAGD,mCACC,WCtCe,CDuCf,UCvCe,CDwCf,eCxCe,CDyCf,cCzCe,CD0Cf,YAAA,CACA,sBAAA,CACA,kBAAA,CAGD,mCACC,gBAAA,CACA,iBAAA,CACA,aAAA,CAID,wCACC,qBAAA,CAID,wCACC,cAAA,CACA,0DACC,eAAA,CACA,gBAAA,CAKF,4CACC,oBAAA,CAID,mCACC,UAAA,CAGD,2CACC,mDAAA,CACA,+EACC,2CAAA,CACA,kCAAA,CACA,8BAAA,CAOF,0CACC,6CAAA,CACA,+BAAA,CACA,+DACC,mDAAA,CAID,iDACC,6CAAA,CAKF,4CACC,qCAAA,CACA,2CAAA,CACA,iEACC,qCAAA,CACA,iDAAA,CAKF,2CACC,4BAAA,CACA,8BAAA,CACA,gEACC,6BAAA,CACA,8CAAA,CAKF,yDACC,4BAAA,CACA,8BAAA,CACA,8EACC,8BAAA,CAKF,sDACC,+BAAA,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:\"a36c6b4\"; @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-light-text);\n\tbackground-color: var(--color-primary-light);\n\t&:hover:not(:disabled) {\n\t\tbackground-color: var(--color-primary-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: space-around;\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}\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: 0 16px 0 4px;\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\t&.button-vue--vue-tertiary-on-primary {\n\t\t\toutline: 2px solid var(--color-primary-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-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-light-text);\n\t\tbackground-color: var(--color-primary-light);\n\t\t&:hover:not(:disabled) {\n\t\t\tcolor: var(--color-primary-light-text);\n\t\t\tbackground-color: var(--color-primary-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);\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-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æ \n *\n * @author John Molakvoæ \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 .\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 s=i},6794:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.push([e.id,'.material-design-icon[data-v-341df4ce]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-341df4ce]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.modal-mask--dark[data-v-341df4ce]{background-color:rgba(0,0,0,.92)}.modal-header[data-v-341df4ce]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;overflow:hidden;transition:opacity 250ms,visibility 250ms}.modal-header.invisible[style*="display:none"][data-v-341df4ce],.modal-header.invisible[style*="display: none"][data-v-341df4ce]{visibility:hidden}.modal-header .modal-title[data-v-341df4ce]{overflow-x:hidden;box-sizing:border-box;width:100%;padding:0 132px 0 12px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px;margin-bottom:0}@media only screen and (min-width: 1024px){.modal-header .modal-title[data-v-341df4ce]{padding-left:132px;text-align:center}}.modal-header .icons-menu[data-v-341df4ce]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-341df4ce]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:3px;padding:0}.modal-header .icons-menu .play-pause-icons[data-v-341df4ce]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;border:none;background-color:rgba(0,0,0,0)}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-341df4ce],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-341df4ce],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-341df4ce],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-341df4ce]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,.25)}.modal-header .icons-menu .play-pause-icons__play[data-v-341df4ce],.modal-header .icons-menu .play-pause-icons__pause[data-v-341df4ce]{box-sizing:border-box;width:44px;height:44px;margin:3px;cursor:pointer;opacity:.7}.modal-header .icons-menu .header-actions[data-v-341df4ce]{color:#fff}.modal-header .icons-menu[data-v-341df4ce] .action-item{margin:3px}.modal-header .icons-menu[data-v-341df4ce] .action-item--single{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-341df4ce] button{color:#fff}.modal-header .icons-menu[data-v-341df4ce] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-341df4ce] .action-item__menutoggle span,.modal-header .icons-menu[data-v-341df4ce] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-341df4ce]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-341df4ce],.modal-wrapper .next[data-v-341df4ce]{z-index:10000;display:flex !important;height:35vw;position:absolute;transition:opacity 250ms,visibility 250ms;color:var(--color-primary-text)}.modal-wrapper .prev[data-v-341df4ce]:focus-visible,.modal-wrapper .next[data-v-341df4ce]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev.invisible[style*="display:none"][data-v-341df4ce],.modal-wrapper .prev.invisible[style*="display: none"][data-v-341df4ce],.modal-wrapper .next.invisible[style*="display:none"][data-v-341df4ce],.modal-wrapper .next.invisible[style*="display: none"][data-v-341df4ce]{visibility:hidden}.modal-wrapper .prev[data-v-341df4ce]{left:2px}.modal-wrapper .next[data-v-341df4ce]{right:2px}.modal-wrapper .modal-container[data-v-341df4ce]{position:relative;display:block;overflow:auto;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 0 40px rgba(0,0,0,.2)}.modal-wrapper .modal-container__close[data-v-341df4ce]{position:absolute;top:4px;right:4px}.modal-wrapper--small .modal-container[data-v-341df4ce]{width:400px;max-width:90%;max-height:90%}.modal-wrapper--normal .modal-container[data-v-341df4ce]{max-width:90%;width:600px;max-height:90%}.modal-wrapper--large .modal-container[data-v-341df4ce]{max-width:90%;width:900px;max-height:90%}.modal-wrapper--full .modal-container[data-v-341df4ce]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}@media only screen and (max-width: 512px){.modal-wrapper .modal-container[data-v-341df4ce]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}}.fade-enter-active[data-v-341df4ce],.fade-leave-active[data-v-341df4ce]{transition:opacity 250ms}.fade-enter[data-v-341df4ce],.fade-leave-to[data-v-341df4ce]{opacity:0}.fade-visibility-enter[data-v-341df4ce],.fade-visibility-leave-to[data-v-341df4ce]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-341df4ce],.modal-in-leave-active[data-v-341df4ce],.modal-out-enter-active[data-v-341df4ce],.modal-out-leave-active[data-v-341df4ce]{transition:opacity 250ms}.modal-in-enter[data-v-341df4ce],.modal-in-leave-to[data-v-341df4ce],.modal-out-enter[data-v-341df4ce],.modal-out-leave-to[data-v-341df4ce]{opacity:0}.modal-in-enter .modal-container[data-v-341df4ce],.modal-in-leave-to .modal-container[data-v-341df4ce]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-341df4ce],.modal-out-leave-to .modal-container[data-v-341df4ce]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-341df4ce]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-341df4ce]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-341df4ce linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .icon-pause[data-v-341df4ce]{animation:breath-341df4ce 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-341df4ce]{animation-play-state:paused !important}@keyframes progressring-341df4ce{from{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-341df4ce{0%{opacity:1}50%{opacity:0}100%{opacity:1}}',"",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcModal/NcModal.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,cAAA,CACA,YAAA,CACA,KAAA,CACA,MAAA,CACA,aAAA,CACA,UAAA,CACA,WAAA,CACA,+BAAA,CACA,mCACC,gCAAA,CAIF,+BACC,iBAAA,CACA,aAAA,CACA,KAAA,CACA,OAAA,CACA,MAAA,CAGA,uBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WCuBe,CDtBf,eAAA,CACA,yCAAA,CAIA,iIAEC,iBAAA,CAGD,4CACC,iBAAA,CACA,qBAAA,CACA,UAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,cChBY,CDiBZ,eAAA,CAID,2CACC,4CACC,kBAAA,CACA,iBAAA,CAAA,CAIF,2CACC,iBAAA,CACA,OAAA,CACA,YAAA,CACA,kBAAA,CACA,wBAAA,CAEA,yDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6DACC,iBAAA,CACA,UC3Ba,CD4Bb,WC5Ba,CD6Bb,QAAA,CACA,SAAA,CACA,cAAA,CACA,WAAA,CACA,8BAAA,CAGC,8WAEC,SC9CU,CD+CV,kBAAA,CACA,sCCxDW,CD2Db,uIAEC,qBAAA,CACA,UCzEa,CD0Eb,WC1Ea,CD2Eb,UAAA,CACA,cAAA,CACA,UC3Da,CD+Df,2DACC,UAAA,CAGD,yDACC,UAAA,CAEA,iEACC,qBAAA,CACA,UC1Fa,CD2Fb,WC3Fa,CD4Fb,cAAA,CACA,0BAAA,CACA,oBAAA,CAIF,kDAEC,UAAA,CAID,oEACC,SAAA,CACA,iJACC,sBAAA,CACA,uBAAA,CAMJ,gCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CAGA,4EAEC,aAAA,CAEA,uBAAA,CACA,WAAA,CACA,iBAAA,CACA,yCAAA,CAEA,+BAAA,CAEA,wGAEC,8CAAA,CACA,wCAAA,CAOD,8RAEC,iBAAA,CAGF,sCACC,QAAA,CAED,sCACC,SAAA,CAID,iDACC,iBAAA,CACA,aAAA,CACA,aAAA,CACA,SAAA,CACA,+BAAA,CACA,wCAAA,CACA,6CAAA,CACA,kCAAA,CACA,wDACC,iBAAA,CACA,OAAA,CACA,SAAA,CAMD,wDACC,WAAA,CACA,aAAA,CACA,cAAA,CAID,yDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,wDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,uDACC,UAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC7Ka,CD8Kb,eAAA,CAKF,0CACC,iDACC,iBAAA,CACA,UAAA,CACA,kBAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC1La,CD2Lb,eAAA,CAAA,CAMH,wEAEC,wBAAA,CAGD,6DAEC,SAAA,CAGD,mFAEC,iBAAA,CACA,SAAA,CAGD,kKAIC,wBAAA,CAGD,4IAIC,SAAA,CAGD,uGAEC,oBAAA,CAGD,yGAEC,oBAAA,CAQA,8DACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CACA,qFACC,kCAAA,CACA,wBAAA,CACA,yEAAA,CAEA,oBAAA,CACA,+BAAA,CACA,8BAAA,CAID,mEACC,kEAAA,CAED,8EACC,sCAAA,CAMH,iCACC,KACC,+BAAA,CAED,GACC,mBAAA,CAAA,CAIF,2BACC,GACC,SAAA,CAED,IACC,SAAA,CAED,KACC,SAAA,CAAA",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:\"a36c6b4\"; @import 'variables'; @import 'material-icons';\n\n\n.modal-mask {\n\tposition: fixed;\n\tz-index: 9998;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, .5);\n\t&--dark {\n\t\tbackground-color: rgba(0, 0, 0, .92);\n\t}\n}\n\n.modal-header {\n\tposition: absolute;\n\tz-index: 10001;\n\ttop: 0;\n\tright: 0;\n\tleft: 0;\n\t// prevent vue show to use display:none and reseting\n\t// the circle animation loop\n\tdisplay: flex !important;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\theight: $header-height;\n\toverflow: hidden;\n\ttransition: opacity 250ms,\n\t\tvisibility 250ms;\n\n\t// replace display by visibility\n\t&.invisible[style*='display:none'],\n\t&.invisible[style*='display: none'] {\n\t\tvisibility: hidden;\n\t}\n\n\t.modal-title {\n\t\toverflow-x: hidden;\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\t\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\n\t\ttransition: padding ease 100ms;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: #fff;\n\t\tfont-size: $icon-margin;\n\t\tmargin-bottom: 0;\n\t}\n\n\t// On wider screens the title can be centered\n\t@media only screen and (min-width: $breakpoint-mobile) {\n\t\t.modal-title {\n\t\t\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t.icons-menu {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\n\t\t.header-close {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbox-sizing: border-box;\n\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t.play-pause-icons {\n\t\t\tposition: relative;\n\t\t\twidth: $header-height;\n\t\t\theight: $header-height;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcursor: pointer;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\t.play-pause-icons__play,\n\t\t\t\t.play-pause-icons__pause {\n\t\t\t\t\topacity: $opacity_full;\n\t\t\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t\t\tbackground-color: $icon-focus-bg;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__play,\n\t\t\t&__pause {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\t\t\t\tcursor: pointer;\n\t\t\t\topacity: $opacity_normal;\n\t\t\t}\n\t\t}\n\n\t\t.header-actions {\n\t\t\tcolor: white;\n\t\t}\n\n\t\t&:deep() .action-item {\n\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\n\t\t\t&--single {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tcursor: pointer;\n\t\t\t\tbackground-position: center;\n\t\t\t\tbackground-size: 22px;\n\t\t\t}\n\t\t}\n\n\t\t:deep(button) {\n\t\t\t// force white instead of default main text\n\t\t\tcolor: #fff;\n\t\t}\n\n\t\t// Force the Actions menu icon to be the same size as other icons\n\t\t&:deep(.action-item__menutoggle) {\n\t\t\tpadding: 0;\n\t\t\tspan, svg {\n\t\t\t\twidth: var(--icon-size);\n\t\t\t\theight: var(--icon-size);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.modal-wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\n\t/* Navigation buttons */\n\t.prev,\n\t.next {\n\t\tz-index: 10000;\n\t\t// ignore display: none\n\t\tdisplay: flex !important;\n\t\theight: 35vw;\n\t\tposition: absolute;\n\t\ttransition: opacity 250ms,\n\t\t\tvisibility 250ms;\n\t\tcolor: var(--color-primary-text);\n\n\t\t&:focus-visible {\n\t\t\t// Override NcButton focus styles\n\t\t\tbox-shadow: 0 0 0 2px var(--color-primary-text);\n\t\t\tbackground-color: var(--color-box-shadow);\n\t\t}\n\n\t\t// we want to keep the elements on page\n\t\t// even if hidden to avoid having a unbalanced\n\t\t// centered content\n\t\t// replace display by visibility\n\t\t&.invisible[style*='display:none'],\n\t\t&.invisible[style*='display: none'] {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\t.prev {\n\t\tleft: 2px;\n\t}\n\t.next {\n\t\tright: 2px;\n\t}\n\n\t/* Content */\n\t.modal-container {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\toverflow: auto; // avoids unecessary hacks if the content should be bigger than the modal\n\t\tpadding: 0;\n\t\ttransition: transform 300ms ease;\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\t\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\n\t\t&__close {\n\t\t\tposition: absolute;\n\t\t\ttop: 4px;\n\t\t\tright: 4px;\n\t\t}\n\t}\n\n\t// Sizing\n\t&--small {\n\t\t.modal-container {\n\t\t\twidth: 400px;\n\t\t\tmax-width: 90%;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--normal {\n\t\t.modal-container {\n\t\t\tmax-width: 90%;\n\t\t\twidth: 600px;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--large {\n\t\t.modal-container {\n\t\t\tmax-width: 90%;\n\t\t\twidth: 900px;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--full {\n\t\t.modal-container {\n\t\t\twidth: 100%;\n\t\t\theight: calc(100% - var(--header-height));\n\t\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\n\t// Make modal full screen on mobile\n\t@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\n\t\t.modal-container {\n\t\t\tmax-width: initial;\n\t\t\twidth: 100%;\n\t\t\tmax-height: initial;\n\t\t\theight: calc(100% - var(--header-height));\n\t\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n}\n\n/* TRANSITIONS */\n.fade-enter-active,\n.fade-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-visibility-enter,\n.fade-visibility-leave-to {\n\tvisibility: hidden;\n\topacity: 0;\n}\n\n.modal-in-enter-active,\n.modal-in-leave-active,\n.modal-out-enter-active,\n.modal-out-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.modal-in-enter,\n.modal-in-leave-to,\n.modal-out-enter,\n.modal-out-leave-to {\n\topacity: 0;\n}\n\n.modal-in-enter .modal-container,\n.modal-in-leave-to .modal-container {\n\ttransform: scale(.9);\n}\n\n.modal-out-enter .modal-container,\n.modal-out-leave-to .modal-container {\n\ttransform: scale(1.1);\n}\n\n// animated circle\n$radius: 15;\n$pi: 3.14159265358979;\n\n.modal-mask .play-pause-icons {\n\t.progress-ring {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransform: rotate(-90deg);\n\t\t.progress-ring__circle {\n\t\t\ttransition: 100ms stroke-dashoffset;\n\t\t\ttransform-origin: 50% 50%; // axis compensation\n\t\t\tanimation: progressring linear var(--slideshow-duration) infinite;\n\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t\t\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\n\t\t}\n\t}\n\t&--paused {\n\t\t.icon-pause {\n\t\t\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\n\t\t}\n\t\t.progress-ring__circle {\n\t\t\tanimation-play-state: paused !important;\n\t\t}\n\t}\n}\n\n// keyframes get scoped too and break the animation name, we need them unscoped\n@keyframes progressring {\n\tfrom {\n\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t}\n\tto {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes breath {\n\t0% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\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 s=i},5783:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(7537),r=n.n(a),o=n(3645),i=n.n(o)()(r());i.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);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,kCAAA,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:\"a36c6b4\"; @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);\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 s=i},3645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(a)for(var s=0;s0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),r&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=r):c[4]="".concat(r)),t.push(c))}},t}},7537:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */");return[t].concat([o]).join("\n")}return[t].join("\n")}},3379:e=>{"use strict";var t=[];function n(e){for(var n=-1,a=0;a{"use strict";var t={};e.exports=function(e,n){var a=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(n)}},9216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},3565:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7795:e=>{"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var a="";n.supports&&(a+="@supports (".concat(n.supports,") {")),n.media&&(a+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(a+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),a+=n.css,r&&(a+="}"),n.media&&(a+="}"),n.supports&&(a+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(a,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},4589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},5727:()=>{},2102:()=>{},9989:()=>{},2405:()=>{},1900:(e,t,n)=>{"use strict";function a(e,t,n,a,r,o,i,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),a&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),i?(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__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},u._ssrRegister=l):r&&(l=s?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:u}}n.d(t,{Z:()=>a})},7931:e=>{"use strict";e.exports=n(3955)},9084:e=>{"use strict";e.exports=n(8583)},9454:e=>{"use strict";e.exports=n(7444)},4505:e=>{"use strict";e.exports=n(4291)},2640:e=>{"use strict";e.exports=n(840)},6464:e=>{"use strict";e.exports=n(9539)},2734:e=>{"use strict";e.exports=n(144)},9044:e=>{"use strict";e.exports=n(1585)},8618:e=>{"use strict";e.exports=n(2675)},1441:e=>{"use strict";e.exports=n(9115)}},t={};function a(n){var r=t[n];if(void 0!==r)return r.exports;var o=t[n]={id:n,exports:{}};return e[n](o,o.exports,a),o.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nc=void 0;var r={};return(()=>{"use strict";a.r(r),a.d(r,{default:()=>W});var e=a(7645),t=a(1206),o=a(932),i=a(1205),s=a(3648),l=a(5471),u=a(9479);function c(e,t){var n,a,r,o=t;this.start=function(){r=!0,a=new Date,n=setTimeout(e,o)},this.pause=function(){r=!1,clearTimeout(n),o-=new Date-a},this.clear=function(){r=!1,clearTimeout(n),o=0},this.getTimeLeft=function(){return r&&(this.pause(),this.start()),o},this.getStateRunning=function(){return r},this.start()}var p=a(336);const d=n(2964);var h=a.n(d),m=a(9044),f=a.n(m),g=a(8618),v=a.n(g);const A=n(1857);var b=a.n(A);const y=n(3071);var C=a.n(y),w=a(4505),x=a(2640),k=a.n(x);function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n{"use strict";var a=n(9394);function r(e,t){if(e===t)return 0;for(var n=e.length,a=t.length,r=0,o=Math.min(n,a);r=0;u--)if(c[u]!==p[u])return!1;for(u=c.length-1;u>=0;u--)if(!b(e[s=c[u]],t[s],n,a))return!1;return!0}(e,t,n,a))}return n?e===t:e==t}function y(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function C(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function w(e,t,n,a){var r;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(a=n,n=null),r=function(e){var t;try{e()}catch(e){t=e}return t}(t),a=(n&&n.name?" ("+n.name+").":".")+(a?" "+a:"."),e&&!r&&v(r,n,"Missing expected exception"+a);var o="string"==typeof a,s=!e&&r&&!n;if((!e&&i.isError(r)&&o&&C(r,n)||s)&&v(r,n,"Got unwanted exception"+a),e&&r&&n&&!C(r,n)||!e&&r)throw r}d.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return f(g(e.actual),128)+" "+e.operator+" "+f(g(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var a=n.stack,r=m(t),o=a.indexOf("\n"+r);if(o>=0){var i=a.indexOf("\n",o+1);a=a.substring(i+1)}this.stack=a}}},i.inherits(d.AssertionError,Error),d.fail=v,d.ok=A,d.equal=function(e,t,n){e!=t&&v(e,t,n,"==",d.equal)},d.notEqual=function(e,t,n){e==t&&v(e,t,n,"!=",d.notEqual)},d.deepEqual=function(e,t,n){b(e,t,!1)||v(e,t,n,"deepEqual",d.deepEqual)},d.deepStrictEqual=function(e,t,n){b(e,t,!0)||v(e,t,n,"deepStrictEqual",d.deepStrictEqual)},d.notDeepEqual=function(e,t,n){b(e,t,!1)&&v(e,t,n,"notDeepEqual",d.notDeepEqual)},d.notDeepStrictEqual=function e(t,n,a){b(t,n,!0)&&v(t,n,a,"notDeepStrictEqual",e)},d.strictEqual=function(e,t,n){e!==t&&v(e,t,n,"===",d.strictEqual)},d.notStrictEqual=function(e,t,n){e===t&&v(e,t,n,"!==",d.notStrictEqual)},d.throws=function(e,t,n){w(!0,e,t,n)},d.doesNotThrow=function(e,t,n){w(!1,e,t,n)},d.ifError=function(e){if(e)throw e},d.strict=a((function e(t,n){t||v(t,!0,n,"==",e)}),d,{equal:d.strictEqual,deepEqual:d.deepStrictEqual,notEqual:d.notStrictEqual,notDeepEqual:d.notDeepStrictEqual}),d.strict.strict=d.strict;var x=Object.keys||function(e){var t=[];for(var n in e)s.call(e,n)&&t.push(n);return t}},6076:e=>{"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},2014:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},69:(e,t,n)=>{var a=n(4155),r=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],n=0;n=o)return e;switch(e){case"%s":return String(a[n++]);case"%d":return Number(a[n++]);case"%j":try{return JSON.stringify(a[n++])}catch(e){return"[Circular]"}default:return e}})),l=a[n];n=3&&(a.depth=arguments[2]),arguments.length>=4&&(a.colors=arguments[3]),m(n)?a.showHidden=n:n&&t._extend(a,n),A(a.showHidden)&&(a.showHidden=!1),A(a.depth)&&(a.depth=2),A(a.colors)&&(a.colors=!1),A(a.customInspect)&&(a.customInspect=!0),a.colors&&(a.stylize=l),c(a,e,a.depth)}function l(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function c(e,n,a){if(e.customInspect&&n&&x(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var r=n.inspect(a,e);return v(r)||(r=c(e,r,a)),r}var o=function(e,t){if(A(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(g(t))return e.stylize(""+t,"number");if(m(t))return e.stylize(""+t,"boolean");if(f(t))return e.stylize("null","null")}(e,n);if(o)return o;var i=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(n)),w(n)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return p(n);if(0===i.length){if(x(n)){var l=n.name?": "+n.name:"";return e.stylize("[Function"+l+"]","special")}if(b(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(C(n))return e.stylize(Date.prototype.toString.call(n),"date");if(w(n))return p(n)}var u,y="",k=!1,S=["{","}"];(h(n)&&(k=!0,S=["[","]"]),x(n))&&(y=" [Function"+(n.name?": "+n.name:"")+"]");return b(n)&&(y=" "+RegExp.prototype.toString.call(n)),C(n)&&(y=" "+Date.prototype.toUTCString.call(n)),w(n)&&(y=" "+p(n)),0!==i.length||k&&0!=n.length?a<0?b(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=k?function(e,t,n,a,r){for(var o=[],i=0,s=t.length;i=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,y,S)):S[0]+y+S[1]}function p(e){return"["+Error.prototype.toString.call(e)+"]"}function d(e,t,n,a,r,o){var i,s,l;if((l=Object.getOwnPropertyDescriptor(t,r)||{value:t[r]}).get?s=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),P(a,r)||(i="["+r+"]"),s||(e.seen.indexOf(l.value)<0?(s=f(n)?c(e,l.value,null):c(e,l.value,n-1)).indexOf("\n")>-1&&(s=o?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),A(i)){if(o&&r.match(/^\d+$/))return s;(i=JSON.stringify(""+r)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(i=i.substr(1,i.length-2),i=e.stylize(i,"name")):(i=i.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),i=e.stylize(i,"string"))}return i+": "+s}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function f(e){return null===e}function g(e){return"number"==typeof e}function v(e){return"string"==typeof e}function A(e){return void 0===e}function b(e){return y(e)&&"[object RegExp]"===k(e)}function y(e){return"object"==typeof e&&null!==e}function C(e){return y(e)&&"[object Date]"===k(e)}function w(e){return y(e)&&("[object Error]"===k(e)||e instanceof Error)}function x(e){return"function"==typeof e}function k(e){return Object.prototype.toString.call(e)}function S(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(A(o)&&(o=a.env.NODE_DEBUG||""),e=e.toUpperCase(),!i[e])if(new RegExp("\\b"+e+"\\b","i").test(o)){var n=a.pid;i[e]=function(){var a=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,a)}}else i[e]=function(){};return i[e]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=m,t.isNull=f,t.isNullOrUndefined=function(e){return null==e},t.isNumber=g,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=A,t.isRegExp=b,t.isObject=y,t.isDate=C,t.isError=w,t.isFunction=x,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(2014);var _=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[S(e.getHours()),S(e.getMinutes()),S(e.getSeconds())].join(":");return[e.getDate(),_[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(6076),t._extend=function(e,t){if(!t||!y(t))return e;for(var n=Object.keys(t),a=n.length;a--;)e[n[a]]=t[n[a]];return e}},7444:(e,t,n)=>{"use strict";function a(e){return e.split("-")[0]}function r(e){return e.split("-")[1]}function o(e){return["top","bottom"].includes(a(e))?"x":"y"}function i(e){return"y"===e?"height":"width"}function s(e){let{reference:t,floating:n,placement:s}=e;const l=t.x+t.width/2-n.width/2,u=t.y+t.height/2-n.height/2;let c;switch(a(s)){case"top":c={x:l,y:t.y-n.height};break;case"bottom":c={x:l,y:t.y+t.height};break;case"right":c={x:t.x+t.width,y:u};break;case"left":c={x:t.x-n.width,y:u};break;default:c={x:t.x,y:t.y}}const p=o(s),d=i(p);switch(r(s)){case"start":c[p]=c[p]-(t[d]/2-n[d]/2);break;case"end":c[p]=c[p]+(t[d]/2-n[d]/2)}return c}n.r(t),n.d(t,{Dropdown:()=>Ut,HIDE_EVENT_MAP:()=>ve,Menu:()=>Ht,Popper:()=>qt,PopperContent:()=>Wt,PopperMethods:()=>Zt,PopperWrapper:()=>Vt,SHOW_EVENT_MAP:()=>ge,ThemeClass:()=>Yt,Tooltip:()=>Kt,TooltipDirective:()=>Jt,VClosePopper:()=>Gt,VTooltip:()=>Rt,createTooltip:()=>Et,default:()=>Qt,destroyTooltip:()=>Nt,hideAllPoppers:()=>je,install:()=>Xt,options:()=>Lt,placements:()=>fe});function l(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function u(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function c(e,t){void 0===t&&(t={});const{x:n,y:a,platform:r,rects:o,elements:i,strategy:s}=e,{boundary:c="clippingParents",rootBoundary:p="viewport",elementContext:d="floating",altBoundary:h=!1,padding:m=0}=t,f=l(m),g=i[h?"floating"===d?"reference":"floating":d],v=await r.getClippingClientRect({element:await r.isElement(g)?g:g.contextElement||await r.getDocumentElement({element:i.floating}),boundary:c,rootBoundary:p}),A=u(await r.convertOffsetParentRelativeRectToViewportRelativeRect({rect:"floating"===d?{...o.floating,x:n,y:a}:o.reference,offsetParent:await r.getOffsetParent({element:i.floating}),strategy:s}));return{top:v.top-A.top+f.top,bottom:A.bottom-v.bottom+f.bottom,left:v.left-A.left+f.left,right:A.right-v.right+f.right}}const p=Math.min,d=Math.max;function h(e,t,n){return d(e,p(t,n))}const m={left:"right",right:"left",bottom:"top",top:"bottom"};function f(e){return e.replace(/left|right|bottom|top/g,(e=>m[e]))}function g(e,t){const n="start"===r(e),a=o(e),s=i(a);let l="x"===a?n?"right":"left":n?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=f(l)),{main:l,cross:f(l)}}const v={start:"end",end:"start"};function A(e){return e.replace(/start|end/g,(e=>v[e]))}const b=["top","right","bottom","left"],y=b.reduce(((e,t)=>e.concat(t,t+"-start",t+"-end")),[]);const C=function(e){return void 0===e&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,o,i,s,l,u;const{x:p,y:d,rects:h,middlewareData:m,placement:f}=t,{alignment:v=null,allowedPlacements:b=y,autoAlignment:C=!0,...w}=e;if(null!=(n=m.autoPlacement)&&n.skip)return{};const x=function(e,t,n){return(e?[...n.filter((t=>r(t)===e)),...n.filter((t=>r(t)!==e))]:n.filter((e=>a(e)===e))).filter((n=>!e||r(n)===e||!!t&&A(n)!==n))}(v,C,b),k=await c(t,w),S=null!=(o=null==(i=m.autoPlacement)?void 0:i.index)?o:0,_=x[S],{main:T,cross:P}=g(_,h);if(f!==_)return{x:p,y:d,reset:{placement:x[0]}};const E=[k[a(_)],k[T],k[P]],N=[...null!=(s=null==(l=m.autoPlacement)?void 0:l.overflows)?s:[],{placement:_,overflows:E}],z=x[S+1];if(z)return{data:{index:S+1,overflows:N},reset:{placement:z}};const j=N.slice().sort(((e,t)=>e.overflows[0]-t.overflows[0])),$=null==(u=j.find((e=>{let{overflows:t}=e;return t.every((e=>e<=0))})))?void 0:u.placement;return{data:{skip:!0},reset:{placement:null!=$?$:j[0].placement}}}}};const w=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:i,rects:s,initialPlacement:l}=t;if(null!=(n=i.flip)&&n.skip)return{};const{mainAxis:u=!0,crossAxis:p=!0,fallbackPlacements:d,fallbackStrategy:h="bestFit",flipAlignment:m=!0,...v}=e,b=a(o),y=d||(b===l||!m?[f(l)]:function(e){const t=f(e);return[A(e),t,A(t)]}(l)),C=[l,...y],w=await c(t,v),x=[];let k=(null==(r=i.flip)?void 0:r.overflows)||[];if(u&&x.push(w[b]),p){const{main:e,cross:t}=g(o,s);x.push(w[e],w[t])}if(k=[...k,{placement:o,overflows:x}],!x.every((e=>e<=0))){var S,_;const e=(null!=(S=null==(_=i.flip)?void 0:_.index)?S:0)+1,t=C[e];if(t)return{data:{index:e,overflows:k},reset:{placement:t}};let n="bottom";switch(h){case"bestFit":{var T;const e=null==(T=k.slice().sort(((e,t)=>e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)-t.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)))[0])?void 0:T.placement;e&&(n=e);break}case"initialPlacement":n=l}return{data:{skip:!0},reset:{placement:n}}}return{}}}};const x=function(e){return void 0===e&&(e=0),{name:"offset",options:e,fn(t){const{x:n,y:r,placement:i,rects:s}=t,l=function(e){let{placement:t,rects:n,value:r}=e;const i=a(t),s=["left","top"].includes(i)?-1:1,l="function"==typeof r?r({...n,placement:t}):r,{mainAxis:u,crossAxis:c}="number"==typeof l?{mainAxis:l,crossAxis:0}:{mainAxis:0,crossAxis:0,...l};return"x"===o(i)?{x:c,y:u*s}:{x:u*s,y:c}}({placement:i,rects:s,value:e});return{x:n+l.x,y:r+l.y,data:l}}}};function k(e){return"x"===e?"y":"x"}function S(e){return"[object Window]"===(null==e?void 0:e.toString())}function _(e){if(null==e)return window;if(!S(e)){const t=e.ownerDocument;return t&&t.defaultView||window}return e}function T(e){return _(e).getComputedStyle(e)}function P(e){return S(e)?"":e?(e.nodeName||"").toLowerCase():""}function E(e){return e instanceof _(e).HTMLElement}function N(e){return e instanceof _(e).Element}function z(e){return e instanceof _(e).ShadowRoot||e instanceof ShadowRoot}function j(e){const{overflow:t,overflowX:n,overflowY:a}=T(e);return/auto|scroll|overlay|hidden/.test(t+a+n)}function $(e){return["table","td","th"].includes(P(e))}function O(e){const t=navigator.userAgent.toLowerCase().includes("firefox"),n=T(e);return"none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||["transform","perspective"].includes(n.willChange)||t&&"filter"===n.willChange||t&&!!n.filter&&"none"!==n.filter}const F=Math.min,D=Math.max,B=Math.round;function I(e,t){void 0===t&&(t=!1);const n=e.getBoundingClientRect();let a=1,r=1;return t&&E(e)&&(a=e.offsetWidth>0&&B(n.width)/e.offsetWidth||1,r=e.offsetHeight>0&&B(n.height)/e.offsetHeight||1),{width:n.width/a,height:n.height/r,top:n.top/r,right:n.right/a,bottom:n.bottom/r,left:n.left/a,x:n.left/a,y:n.top/r}}function M(e){return(t=e,(t instanceof _(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function L(e){return S(e)?{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}:{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function R(e){return I(M(e)).left+L(e).scrollLeft}function G(e,t,n){const a=E(t),r=M(t),o=I(e,a&&function(e){const t=I(e);return B(t.width)!==e.offsetWidth||B(t.height)!==e.offsetHeight}(t));let i={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(a||!a&&"fixed"!==n)if(("body"!==P(t)||j(r))&&(i=L(t)),E(t)){const e=I(t,!0);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else r&&(s.x=R(r));return{x:o.left+i.scrollLeft-s.x,y:o.top+i.scrollTop-s.y,width:o.width,height:o.height}}function U(e){return"html"===P(e)?e:e.assignedSlot||e.parentNode||(z(e)?e.host:null)||M(e)}function H(e){return E(e)&&"fixed"!==getComputedStyle(e).position?e.offsetParent:null}function q(e){const t=_(e);let n=H(e);for(;n&&$(n)&&"static"===getComputedStyle(n).position;)n=H(n);return n&&("html"===P(n)||"body"===P(n)&&"static"===getComputedStyle(n).position&&!O(n))?t:n||function(e){let t=U(e);for(;E(t)&&!["html","body"].includes(P(t));){if(O(t))return t;t=t.parentNode}return null}(e)||t}function W(e){return{width:e.offsetWidth,height:e.offsetHeight}}function Z(e){return["html","body","#document"].includes(P(e))?e.ownerDocument.body:E(e)&&j(e)?e:Z(U(e))}function V(e,t){var n;void 0===t&&(t=[]);const a=Z(e),r=a===(null==(n=e.ownerDocument)?void 0:n.body),o=_(a),i=r?[o].concat(o.visualViewport||[],j(a)?a:[]):a,s=t.concat(i);return r?s:s.concat(V(U(i)))}function Y(e,t){return"viewport"===t?u(function(e){const t=_(e),n=M(e),a=t.visualViewport;let r=n.clientWidth,o=n.clientHeight,i=0,s=0;return a&&(r=a.width,o=a.height,Math.abs(t.innerWidth/a.scale-a.width)<.01&&(i=a.offsetLeft,s=a.offsetTop)),{width:r,height:o,x:i,y:s}}(e)):N(t)?function(e){const t=I(e),n=t.top+e.clientTop,a=t.left+e.clientLeft;return{top:n,left:a,x:a,y:n,right:a+e.clientWidth,bottom:n+e.clientHeight,width:e.clientWidth,height:e.clientHeight}}(t):u(function(e){var t;const n=M(e),a=L(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=D(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),i=D(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0);let s=-a.scrollLeft+R(e);const l=-a.scrollTop;return"rtl"===T(r||n).direction&&(s+=D(n.clientWidth,r?r.clientWidth:0)-o),{width:o,height:i,x:s,y:l}}(M(e)))}function K(e){const t=V(U(e)),n=["absolute","fixed"].includes(T(e).position)&&E(e)?q(e):e;return N(n)?t.filter((e=>N(e)&&function(e,t){const n=null==t.getRootNode?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&z(n)){let n=t;do{if(n&&e===n)return!0;n=n.parentNode||n.host}while(n)}return!1}(e,n)&&"body"!==P(e))):[]}const J={getElementRects:e=>{let{reference:t,floating:n,strategy:a}=e;return{reference:G(t,q(n),a),floating:{...W(n),x:0,y:0}}},convertOffsetParentRelativeRectToViewportRelativeRect:e=>function(e){let{rect:t,offsetParent:n,strategy:a}=e;const r=E(n),o=M(n);if(n===o)return t;let i={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((r||!r&&"fixed"!==a)&&(("body"!==P(n)||j(o))&&(i=L(n)),E(n))){const e=I(n,!0);s.x=e.x+n.clientLeft,s.y=e.y+n.clientTop}return{...t,x:t.x-i.scrollLeft+s.x,y:t.y-i.scrollTop+s.y}}(e),getOffsetParent:e=>{let{element:t}=e;return q(t)},isElement:e=>N(e),getDocumentElement:e=>{let{element:t}=e;return M(t)},getClippingClientRect:e=>function(e){let{element:t,boundary:n,rootBoundary:a}=e;const r=[..."clippingParents"===n?K(t):[].concat(n),a],o=r[0],i=r.reduce(((e,n)=>{const a=Y(t,n);return e.top=D(a.top,e.top),e.right=F(a.right,e.right),e.bottom=F(a.bottom,e.bottom),e.left=D(a.left,e.left),e}),Y(t,o));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}(e),getDimensions:e=>{let{element:t}=e;return W(t)},getClientRects:e=>{let{element:t}=e;return t.getClientRects()}},X=(e,t,n)=>(async(e,t,n)=>{const{placement:a="bottom",strategy:r="absolute",middleware:o=[],platform:i}=n;let l=await i.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:c}=s({...l,placement:a}),p=a,d={};for(let n=0;nt in e?ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,se=(e,t)=>{for(var n in t||(t={}))re.call(t,n)&&ie(e,n,t[n]);if(ae)for(var n of ae(t))oe.call(t,n)&&ie(e,n,t[n]);return e},le=(e,t)=>te(e,ne(t));function ue(e,t){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&("object"==typeof t[n]&&e[n]?ue(e[n],t[n]):e[n]=t[n])}const ce={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:5e3,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover","focus"],delay:{show:0,hide:400}}}};function pe(e,t){let n,a=ce.themes[e]||{};do{n=a[t],void 0===n?a.$extend?a=ce.themes[a.$extend]||{}:(a=null,n=ce[t]):a=null}while(a);return n}function de(e){const t=[e];let n=ce.themes[e]||{};do{n.$extend?(t.push(n.$extend),n=ce.themes[n.$extend]||{}):n=null}while(n);return t}let he=!1;if("undefined"!=typeof window){he=!1;try{const e=Object.defineProperty({},"passive",{get(){he=!0}});window.addEventListener("test",null,e)}catch(e){}}let me=!1;"undefined"!=typeof window&&"undefined"!=typeof navigator&&(me=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const fe=["auto","top","bottom","left","right"].reduce(((e,t)=>e.concat([t,`${t}-start`,`${t}-end`])),[]),ge={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart"},ve={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend"};function Ae(e,t){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}function be(){return new Promise((e=>requestAnimationFrame((()=>{requestAnimationFrame(e)}))))}const ye=[];let Ce=null;const we={};function xe(e){let t=we[e];return t||(t=we[e]=[]),t}let ke=function(){};function Se(e){return function(){return pe(this.$props.theme,e)}}"undefined"!=typeof window&&(ke=window.Element);const _e="__floating-vue__popper";var Te=()=>({name:"VPopper",props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,required:!0},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:Se("disabled")},positioningDisabled:{type:Boolean,default:Se("positioningDisabled")},placement:{type:String,default:Se("placement"),validator:e=>fe.includes(e)},delay:{type:[String,Number,Object],default:Se("delay")},distance:{type:[Number,String],default:Se("distance")},skidding:{type:[Number,String],default:Se("skidding")},triggers:{type:Array,default:Se("triggers")},showTriggers:{type:[Array,Function],default:Se("showTriggers")},hideTriggers:{type:[Array,Function],default:Se("hideTriggers")},popperTriggers:{type:Array,default:Se("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:Se("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:Se("popperHideTriggers")},container:{type:[String,Object,ke,Boolean],default:Se("container")},boundary:{type:[String,ke],default:Se("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:Se("strategy")},autoHide:{type:[Boolean,Function],default:Se("autoHide")},handleResize:{type:Boolean,default:Se("handleResize")},instantMove:{type:Boolean,default:Se("instantMove")},eagerMount:{type:Boolean,default:Se("eagerMount")},popperClass:{type:[String,Array,Object],default:Se("popperClass")},computeTransformOrigin:{type:Boolean,default:Se("computeTransformOrigin")},autoMinSize:{type:Boolean,default:Se("autoMinSize")},autoSize:{type:[Boolean,String],default:Se("autoSize")},autoMaxSize:{type:Boolean,default:Se("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:Se("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:Se("preventOverflow")},overflowPadding:{type:[Number,String],default:Se("overflowPadding")},arrowPadding:{type:[Number,String],default:Se("arrowPadding")},arrowOverflow:{type:Boolean,default:Se("arrowOverflow")},flip:{type:Boolean,default:Se("flip")},shift:{type:Boolean,default:Se("shift")},shiftCrossAxis:{type:Boolean,default:Se("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:Se("noAutoFocus")}},provide(){return{[_e]:{parentPopper:this}}},inject:{[_e]:{default:null}},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},shownChildren:new Set,lastAutoHide:!0}},computed:{popperId(){return null!=this.ariaId?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:"function"==typeof this.autoHide?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:le(se({},this.classes),{popperClass:this.popperClass}),result:this.positioningDisabled?null:this.result}},parentPopper(){var e;return null==(e=this[_e])?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return(null==(e=this.popperTriggers)?void 0:e.includes("hover"))||(null==(t=this.popperShowTriggers)?void 0:t.includes("hover"))}},watch:se(se({shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())}},["triggers","positioningDisabled"].reduce(((e,t)=>(e[t]="$_refreshListeners",e)),{})),["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce(((e,t)=>(e[t]="$_computePosition",e)),{})),created(){this.$_isDisposed=!0,this.randomId=`popper_${[Math.random(),Date.now()].map((e=>e.toString(36).substring(2,10))).join("_")}`,this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeDestroy(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:n=!1}={}){var a,r;(null==(a=this.parentPopper)?void 0:a.lockedChild)&&this.parentPopper.lockedChild!==this||(this.$_pendingHide=!1,!n&&this.disabled||((null==(r=this.parentPopper)?void 0:r.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame((()=>{this.$_showFrameLocked=!1}))),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1,skipAiming:n=!1}={}){var a;this.$_hideInProgress||(this.shownChildren.size>0?this.$_pendingHide=!0:!n&&this.hasPopperShowTriggerHover&&this.$_isAimingPopper()?this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout((()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)}),1e3)):((null==(a=this.parentPopper)?void 0:a.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)))},init(){this.$_isDisposed&&(this.$_isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=this.referenceNode(),this.$_targetNodes=this.targetNodes().filter((e=>e.nodeType===e.ELEMENT_NODE)),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.$_isDisposed||(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"),this.$emit("dispose"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){var e;if(this.$_isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&t.middleware.push(x({mainAxis:this.distance,crossAxis:this.skidding}));const n=this.placement.startsWith("auto");if(n?t.middleware.push(C({alignment:null!=(e=this.placement.split("-")[1])?e:""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...p}=e,d={x:n,y:r},m=await c(t,p),f=o(a(i)),g=k(f);let v=d[f],A=d[g];if(s){const e="y"===f?"bottom":"right";v=h(v+m["y"===f?"top":"left"],v,v-m[e])}if(l){const e="y"===g?"bottom":"right";A=h(A+m["y"===g?"top":"left"],A,A-m[e])}const b=u.fn({...t,[f]:v,[g]:A});return{...b,data:{x:b.x-n,y:b.y-r}}}}}({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!n&&this.flip&&t.middleware.push(w({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push((e=>({name:"arrow",options:e,async fn(t){const{element:n,padding:r=0}=null!=e?e:{},{x:s,y:u,placement:c,rects:p,platform:d}=t;if(null==n)return{};const m=l(r),f={x:s,y:u},g=o(a(c)),v=i(g),A=await d.getDimensions({element:n}),b="y"===g?"top":"left",y="y"===g?"bottom":"right",C=p.reference[v]+p.reference[g]-f[g]-p.floating[v],w=f[g]-p.reference[g],x=await d.getOffsetParent({element:n}),k=x?"y"===g?x.clientHeight||0:x.clientWidth||0:0,S=C/2-w/2,_=m[b],T=k-A[v]-m[y],P=k/2-A[v]/2+S,E=h(_,P,T);return{data:{[g]:E,centerOffset:P-E}}}}))({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:e,rects:t,middlewareData:n})=>{let a;const{centerOffset:r}=n.arrow;return a=e.startsWith("top")||e.startsWith("bottom")?Math.abs(r)>t.reference.width/2:Math.abs(r)>t.reference.height/2,{data:{overflow:a}}}}),this.autoMinSize||this.autoSize){const e=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:t,placement:n,middlewareData:a})=>{var r;if(null==(r=a.autoSize)?void 0:r.skip)return{};let o,i;return n.startsWith("top")||n.startsWith("bottom")?o=t.reference.width:i=t.reference.height,this.$_innerNode.style["min"===e?"minWidth":"max"===e?"maxWidth":"width"]=null!=o?`${o}px`:null,this.$_innerNode.style["min"===e?"minHeight":"max"===e?"maxHeight":"height"]=null!=i?`${i}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,t.middleware.push(function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n;const{placement:o,rects:i,middlewareData:s}=t,{apply:l,...u}=e;if(null!=(n=s.size)&&n.skip)return{};const p=await c(t,u),h=a(o),m="end"===r(o);let f,g;"top"===h||"bottom"===h?(f=h,g=m?"left":"right"):(g=h,f=m?"top":"bottom");const v=d(p.left,0),A=d(p.right,0),b=d(p.top,0),y=d(p.bottom,0),C={height:i.floating.height-(["left","right"].includes(o)?2*(0!==b||0!==y?b+y:d(p.top,p.bottom)):p[f]),width:i.floating.width-(["top","bottom"].includes(o)?2*(0!==v||0!==A?v+A:d(p.left,p.right)):p[g])};return null==l||l({...C,...i}),{data:{skip:!0},reset:{rects:!0}}}}}({boundary:this.boundary,padding:this.overflowPadding,apply:({width:e,height:t})=>{this.$_innerNode.style.maxWidth=null!=e?`${e}px`:null,this.$_innerNode.style.maxHeight=null!=t?`${t}px`:null}})));const s=await X(this.$_referenceNode,this.$_popperNode,t);Object.assign(this.result,{x:s.x,y:s.y,placement:s.placement,strategy:s.strategy,arrow:se(se({},s.middlewareData.arrow),s.middlewareData.arrowOverflow)})},$_scheduleShow(e=null,t=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Ce&&this.instantMove&&Ce.instantMove&&Ce!==this.parentPopper)return Ce.$_applyHide(!0),void this.$_applyShow(!0);t?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(e=null,t=!1){this.shownChildren.size>0?this.$_pendingHide=!0:(this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Ce=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide")))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,this.isShown||(this.$_ensureTeleport(),await be(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...V(this.$_referenceNode),...V(this.$_popperNode)],"scroll",(()=>{this.$_computePosition()})))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const e=this.$_referenceNode.getBoundingClientRect(),t=this.$_popperNode.querySelector(".v-popper__wrapper"),n=t.parentNode.getBoundingClientRect(),a=e.x+e.width/2-(n.left+t.offsetLeft),r=e.y+e.height/2-(n.top+t.offsetTop);this.result.transformOrigin=`${a}px ${r}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let n=0;n0)return this.$_pendingHide=!0,void(this.$_hideInProgress=!1);if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,Ae(ye,this),0===ye.length&&document.body.classList.remove("v-popper--some-open");for(const e of de(this.theme)){const t=xe(e);Ae(t,this),0===t.length&&document.body.classList.remove(`v-popper--some-open--${e}`)}Ce===this&&(Ce=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=pe(this.theme,"disposeTimeout");null!==t&&(this.$_disposeTimer=setTimeout((()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)}),t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await be(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.$_isDisposed)return;let e=this.container;if("string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=e=>{this.isShown&&!this.$_hideInProgress||(e.usedByTooltip=!0,!this.$_preventShow&&this.show({event:e}))};this.$_registerTriggerListeners(this.$_targetNodes,ge,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],ge,this.popperTriggers,this.popperShowTriggers,e);const t=e=>t=>{t.usedByTooltip||this.hide({event:t,skipAiming:e})};this.$_registerTriggerListeners(this.$_targetNodes,ve,this.triggers,this.hideTriggers,t(!1)),this.$_registerTriggerListeners([this.$_popperNode],ve,this.popperTriggers,this.popperHideTriggers,t(!0))},$_registerEventListeners(e,t,n){this.$_events.push({targetNodes:e,eventType:t,handler:n}),e.forEach((e=>e.addEventListener(t,n,he?{passive:!0}:void 0)))},$_registerTriggerListeners(e,t,n,a,r){let o=n;null!=a&&(o="function"==typeof a?a(o):a),o.forEach((n=>{const a=t[n];a&&this.$_registerEventListeners(e,a,r)}))},$_removeEventListeners(e){const t=[];this.$_events.forEach((n=>{const{targetNodes:a,eventType:r,handler:o}=n;e&&e!==r?t.push(n):a.forEach((e=>e.removeEventListener(r,o)))})),this.$_events=t},$_refreshListeners(){this.$_isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout((()=>{this.$_preventShow=!1}),300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const n of this.$_targetNodes){const a=n.getAttribute(e);a&&(n.removeAttribute(e),n.setAttribute(t,a))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const n in e){const a=e[n];null==a?t.removeAttribute(n):t.setAttribute(n,a)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.$_pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$el.getBoundingClientRect();if(Fe>=e.left&&Fe<=e.right&&De>=e.top&&De<=e.bottom){const e=this.$_popperNode.getBoundingClientRect(),t=Fe-$e,n=De-Oe,a=e.left+e.width/2-$e+(e.top+e.height/2)-Oe+e.width+e.height,r=$e+t*a,o=Oe+n*a;return Be($e,Oe,r,o,e.left,e.top,e.left,e.bottom)||Be($e,Oe,r,o,e.left,e.top,e.right,e.top)||Be($e,Oe,r,o,e.right,e.top,e.right,e.bottom)||Be($e,Oe,r,o,e.left,e.bottom,e.right,e.bottom)}return!1}},render(){return this.$scopedSlots.default(this.slotData)[0]}});function Pe(e){for(let t=0;t=0;a--){const r=ye[a];try{const a=r.$_containsGlobalTarget=Ne(r,e);r.$_pendingHide=!1,requestAnimationFrame((()=>{if(r.$_pendingHide=!1,!n[r.randomId]&&ze(r,a,e)){if(r.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&a){let e=r.parentPopper;for(;e;)n[e.randomId]=!0,e=e.parentPopper;return}let o=r.parentPopper;for(;o&&ze(o,o.$_containsGlobalTarget,e);)o.$_handleGlobalClose(e,t),o=o.parentPopper}}))}catch(e){}}}function Ne(e,t){const n=e.popperNode();return e.$_mouseDownContains||n.contains(t.target)}function ze(e,t,n){return n.closeAllPopover||n.closePopover&&t||function(e,t){if("function"==typeof e.autoHide){const n=e.autoHide(t);return e.lastAutoHide=n,n}return e.autoHide}(e,n)&&!t}function je(){for(let e=0;e=0&&l<=1&&u>=0&&u<=1}var Ie;function Me(){Me.init||(Me.init=!0,Ie=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var a=e.indexOf("Edge/");return a>0?parseInt(e.substring(a+5,e.indexOf(".",a)),10):-1}())}function Le(e,t,n,a,r,o,i,s,l,u){"boolean"!=typeof i&&(l=s,s=i,i=!1);var c,p="function"==typeof n?n.options:n;if(e&&e.render&&(p.render=e.render,p.staticRenderFns=e.staticRenderFns,p._compiled=!0,r&&(p.functional=!0)),a&&(p._scopeId=a),o?(c=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__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(o)},p._ssrRegister=c):t&&(c=i?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),c)if(p.functional){var d=p.render;p.render=function(e,t){return c.call(t),d(e,t)}}else{var h=p.beforeCreate;p.beforeCreate=h?[].concat(h,c):[c]}return n}"undefined"!=typeof window&&window.addEventListener("mousemove",(e=>{$e=Fe,Oe=De,Fe=e.clientX,De=e.clientY}),he?{passive:!0}:void 0);var Re={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;Me(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",Ie&&this.$el.appendChild(t),t.data="about:blank",Ie||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!Ie&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},Ge=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};Ge._withStripped=!0;var Ue=Le({render:Ge,staticRenderFns:[]},undefined,Re,"data-v-8859cc6c",false,undefined,!1,void 0,void 0,void 0);var He={version:"1.0.1",install:function(e){e.component("resize-observer",Ue),e.component("ResizeObserver",Ue)}},qe=null;"undefined"!=typeof window?qe=window.Vue:void 0!==n.g&&(qe=n.g.Vue),qe&&qe.use(He);var We={computed:{themeClass(){return function(e){const t=[e];let n=ce.themes[e]||{};do{n.$extend&&!n.$resetCss?(t.push(n.$extend),n=ce.themes[n.$extend]||{}):n=null}while(n);return t.map((e=>`v-popper--theme-${e}`))}(this.theme)}}},Ze={name:"VPopperContent",components:{ResizeObserver:Ue},mixins:[We],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},methods:{toPx:e=>null==e||isNaN(e)?null:`${e}px`}};function Ve(e,t,n,a,r,o,i,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),a&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),i?(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__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},u._ssrRegister=l):r&&(l=s?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:u}}const Ye={};var Ke=Ve(Ze,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"popover",staticClass:"v-popper__popper",class:[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}],style:e.result?{position:e.result.strategy,transform:"translate3d("+Math.round(e.result.x)+"px,"+Math.round(e.result.y)+"px,0)"}:void 0,attrs:{id:e.popperId,"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0},on:{keyup:function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;e.autoHide&&e.$emit("hide")}}},[n("div",{staticClass:"v-popper__backdrop",on:{click:function(t){e.autoHide&&e.$emit("hide")}}}),n("div",{staticClass:"v-popper__wrapper",style:e.result?{transformOrigin:e.result.transformOrigin}:void 0},[n("div",{ref:"inner",staticClass:"v-popper__inner"},[e.mounted?[n("div",[e._t("default")],2),e.handleResize?n("ResizeObserver",{on:{notify:function(t){return e.$emit("resize",t)}}}):e._e()]:e._e()],2),n("div",{ref:"arrow",staticClass:"v-popper__arrow-container",style:e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0},[n("div",{staticClass:"v-popper__arrow-outer"}),n("div",{staticClass:"v-popper__arrow-inner"})])])])}),[],!1,Je,null,null,null);function Je(e){for(let e in Ye)this[e]=Ye[e]}var Xe=function(){return Ke.exports}(),Qe={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}},et={name:"VPopperWrapper",components:{Popper:Te(),PopperContent:Xe},mixins:[Qe,We],inheritAttrs:!1,props:{theme:{type:String,default(){return this.$options.vPopperTheme}}},methods:{getTargetNodes(){return Array.from(this.$refs.reference.children).filter((e=>e!==this.$refs.popperContent.$el))}}},tt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Popper",e._g(e._b({ref:"popper",attrs:{theme:e.theme,"target-nodes":e.getTargetNodes,"reference-node":function(){return e.$refs.reference},"popper-node":function(){return e.$refs.popperContent.$el}},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.popperId,r=t.isShown,o=t.shouldMountContent,i=t.skipTransition,s=t.autoHide,l=t.show,u=t.hide,c=t.handleResize,p=t.onResize,d=t.classes,h=t.result;return[n("div",{ref:"reference",staticClass:"v-popper",class:[e.themeClass,{"v-popper--shown":r}]},[e._t("default",null,{shown:r,show:l,hide:u}),n("PopperContent",{ref:"popperContent",attrs:{"popper-id":a,theme:e.theme,shown:r,mounted:o,"skip-transition":i,"auto-hide":s,"handle-resize":c,classes:d,result:h},on:{hide:u,resize:p}},[e._t("popper",null,{shown:r,hide:u})],2)],2)]}}],null,!0)},"Popper",e.$attrs,!1),e.$listeners))};const nt={};var at=Ve(et,tt,[],!1,rt,null,null,null);function rt(e){for(let e in nt)this[e]=nt[e]}var ot=function(){return at.exports}(),it=le(se({},ot),{name:"VDropdown",vPopperTheme:"dropdown"});const st={};var lt=Ve(it,undefined,undefined,!1,ut,null,null,null);function ut(e){for(let e in st)this[e]=st[e]}var ct=function(){return lt.exports}(),pt=le(se({},ot),{name:"VMenu",vPopperTheme:"menu"});const dt={};var ht=Ve(pt,undefined,undefined,!1,mt,null,null,null);function mt(e){for(let e in dt)this[e]=dt[e]}var ft=function(){return ht.exports}(),gt=le(se({},ot),{name:"VTooltip",vPopperTheme:"tooltip"});const vt={};var At=Ve(gt,undefined,undefined,!1,bt,null,null,null);function bt(e){for(let e in vt)this[e]=vt[e]}var yt=function(){return At.exports}(),Ct={name:"VTooltipDirective",components:{Popper:Te(),PopperContent:Xe},mixins:[Qe],inheritAttrs:!1,props:{theme:{type:String,default:"tooltip"},html:{type:Boolean,default(){return pe(this.theme,"html")}},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default(){return pe(this.theme,"loadingContent")}}},data:()=>({asyncContent:null}),computed:{isContentAsync(){return"function"==typeof this.content},loading(){return this.isContentAsync&&null==this.asyncContent},finalContent(){return this.isContentAsync?this.loading?this.loadingContent:this.asyncContent:this.content}},watch:{content:{handler(){this.fetchContent(!0)},immediate:!0},async finalContent(e){await this.$nextTick(),this.$refs.popper.onResize()}},created(){this.$_fetchId=0},methods:{fetchContent(e){if("function"==typeof this.content&&this.$_isShown&&(e||!this.$_loading&&null==this.asyncContent)){this.asyncContent=null,this.$_loading=!0;const e=++this.$_fetchId,t=this.content(this);t.then?t.then((t=>this.onResult(e,t))):this.onResult(e,t)}},onResult(e,t){e===this.$_fetchId&&(this.$_loading=!1,this.asyncContent=t)},onShow(){this.$_isShown=!0,this.fetchContent()},onHide(){this.$_isShown=!1}}},wt=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Popper",e._g(e._b({ref:"popper",attrs:{theme:e.theme,"popper-node":function(){return e.$refs.popperContent.$el}},on:{"apply-show":e.onShow,"apply-hide":e.onHide},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.popperId,r=t.isShown,o=t.shouldMountContent,i=t.skipTransition,s=t.autoHide,l=t.hide,u=t.handleResize,c=t.onResize,p=t.classes,d=t.result;return[n("PopperContent",{ref:"popperContent",class:{"v-popper--tooltip-loading":e.loading},attrs:{"popper-id":a,theme:e.theme,shown:r,mounted:o,"skip-transition":i,"auto-hide":s,"handle-resize":u,classes:p,result:d},on:{hide:l,resize:c}},[e.html?n("div",{domProps:{innerHTML:e._s(e.finalContent)}}):n("div",{domProps:{textContent:e._s(e.finalContent)}})])]}}])},"Popper",e.$attrs,!1),e.$listeners))};const xt={};var kt=Ve(Ct,wt,[],!1,St,null,null,null);function St(e){for(let e in xt)this[e]=xt[e]}var _t=function(){return kt.exports}();const Tt="v-popper--has-tooltip";function Pt(e,t,n){let a;const r=typeof t;return a="string"===r?{content:t}:t&&"object"===r?t:{content:!1},a.placement=function(e,t){let n=e.placement;if(!n&&t)for(const e of fe)t[e]&&(n=e);return n||(n=pe(e.theme||"tooltip","placement")),n}(a,n),a.targetNodes=()=>[e],a.referenceNode=()=>e,a}function Et(e,t,n){const a=Pt(e,t,n),r=e.$_popper=new Q.default({mixins:[Qe],data:()=>({options:a}),render(e){const t=this.options,{theme:n,html:a,content:r,loadingContent:o}=t,i=((e,t)=>{var n={};for(var a in e)re.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&ae)for(var a of ae(e))t.indexOf(a)<0&&oe.call(e,a)&&(n[a]=e[a]);return n})(t,["theme","html","content","loadingContent"]);return e(_t,{props:{theme:n,html:a,content:r,loadingContent:o},attrs:i,ref:"popper"})},devtools:{hide:!0}}),o=document.createElement("div");return document.body.appendChild(o),r.$mount(o),e.classList&&e.classList.add(Tt),r}function Nt(e){e.$_popper&&(e.$_popper.$destroy(),delete e.$_popper,delete e.$_popperOldShown),e.classList&&e.classList.remove(Tt)}function zt(e,{value:t,oldValue:n,modifiers:a}){const r=Pt(e,t,a);if(!r.content||pe(r.theme||"tooltip","disabled"))Nt(e);else{let n;e.$_popper?(n=e.$_popper,n.options=r):n=Et(e,t,a),void 0!==t.shown&&t.shown!==e.$_popperOldShown&&(e.$_popperOldShown=t.shown,t.shown?n.show():n.hide())}}var jt={bind:zt,update:zt,unbind(e){Nt(e)}};function $t(e){e.addEventListener("click",Ft),e.addEventListener("touchstart",Dt,!!he&&{passive:!0})}function Ot(e){e.removeEventListener("click",Ft),e.removeEventListener("touchstart",Dt),e.removeEventListener("touchend",Bt),e.removeEventListener("touchcancel",It)}function Ft(e){const t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Dt(e){if(1===e.changedTouches.length){const t=e.currentTarget;t.$_vclosepopover_touch=!0;const n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",Bt),t.addEventListener("touchcancel",It)}}function Bt(e){const t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){const n=e.changedTouches[0],a=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-a.screenY)<20&&Math.abs(n.screenX-a.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function It(e){e.currentTarget.$_vclosepopover_touch=!1}var Mt={bind(e,{value:t,modifiers:n}){e.$_closePopoverModifiers=n,(void 0===t||t)&&$t(e)},update(e,{value:t,oldValue:n,modifiers:a}){e.$_closePopoverModifiers=a,t!==n&&(void 0===t||t?$t(e):Ot(e))},unbind(e){Ot(e)}};const Lt=ce,Rt=jt,Gt=Mt,Ut=ct,Ht=ft,qt=Te,Wt=Xe,Zt=Qe,Vt=ot,Yt=We,Kt=yt,Jt=_t;function Xt(e,t={}){e.$_vTooltipInstalled||(e.$_vTooltipInstalled=!0,ue(ce,t),e.directive("tooltip",jt),e.directive("close-popper",Mt),e.component("v-tooltip",yt),e.component("VTooltip",yt),e.component("v-dropdown",ct),e.component("VDropdown",ct),e.component("v-menu",ft),e.component("VMenu",ft))}const Qt={version:"1.0.0-beta.19",install:Xt,options:ce};let en=null;"undefined"!=typeof window?en=window.Vue:void 0!==n.g&&(en=n.g.Vue),en&&en.use(Qt)},4291:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createFocusTrap:()=>O});var a=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],r=a.join(","),o="undefined"==typeof Element,i=o?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,s=!o&&Element.prototype.getRootNode?function(e){return e.getRootNode()}:function(e){return e.ownerDocument},l=function(e,t,n){var a=Array.prototype.slice.apply(e.querySelectorAll(r));return t&&i.call(e,r)&&a.unshift(e),a=a.filter(n)},u=function e(t,n,a){for(var o=[],s=Array.from(t);s.length;){var l=s.shift();if("SLOT"===l.tagName){var u=l.assignedElements(),c=e(u.length?u:l.children,!0,a);a.flatten?o.push.apply(o,c):o.push({scopeParent:l,candidates:c})}else{i.call(l,r)&&a.filter(l)&&(n||!t.includes(l))&&o.push(l);var p=l.shadowRoot||"function"==typeof a.getShadowRoot&&a.getShadowRoot(l),d=!a.shadowRootFilter||a.shadowRootFilter(l);if(p&&d){var h=e(!0===p?l.children:p.children,!0,a);a.flatten?o.push.apply(o,h):o.push({scopeParent:l,candidates:h})}else s.unshift.apply(s,l.children)}}return o},c=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||e.isContentEditable)&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},p=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},d=function(e){return"INPUT"===e.tagName},h=function(e){return function(e){return d(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||s(e),a=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=a(window.CSS.escape(e.name));else try{t=a(e.name)}catch(e){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var r=function(e,t){for(var n=0;nsummary:first-of-type")?e.parentElement:e;if(i.call(r,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return m(e)}else{if("function"==typeof a){for(var o=e;e;){var l=e.parentElement,u=s(e);if(l&&!l.shadowRoot&&!0===a(l))return m(e);e=e.assignedSlot?e.assignedSlot:l||u===e.ownerDocument?l:u.host}e=o}if(function(e){for(var t,n=s(e).host,a=!!(null!==(t=n)&&void 0!==t&&t.ownerDocument.contains(n)||e.ownerDocument.contains(e));!a&&n;){var r;a=!(null===(r=n=s(n).host)||void 0===r||!r.ownerDocument.contains(n))}return a}(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1},g=function(e,t){return!(t.disabled||function(e){return d(e)&&"hidden"===e.type}(t)||f(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n=0)},b=function e(t){var n=[],a=[];return t.forEach((function(t,r){var o=!!t.scopeParent,i=o?t.scopeParent:t,s=c(i,o),l=o?e(t.candidates):i;0===s?o?n.push.apply(n,l):n.push(i):a.push({documentOrder:r,tabIndex:s,item:t,isScope:o,content:l})})),a.sort(p).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},y=function(e,t){var n;return n=(t=t||{}).getShadowRoot?u([e],t.includeContainer,{filter:v.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:A}):l(e,t.includeContainer,v.bind(null,t)),b(n)},C=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==i.call(e,r)&&v(t,e)},w=a.concat("iframe").join(","),x=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==i.call(e,w)&&g(t,e)};function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function S(e){for(var t=1;t0){var n=e[e.length-1];n!==t&&n.pause()}var a=e.indexOf(t);-1===a||e.splice(a,1),e.push(t)},E=function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()},N=function(e){return setTimeout(e,0)},z=function(e,t){var n=-1;return e.every((function(e,a){return!t(e)||(n=a,!1)})),n},j=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a1?n-1:0),i=1;i=0)e=a.activeElement;else{var t=i.tabbableGroups[0];e=t&&t.firstTabbableNode||p("fallbackFocus")}if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},h=function(){if(i.containerGroups=i.containers.map((function(e){var t,n,a=y(e,o.tabbableOptions),r=(t=e,(n=(n=o.tabbableOptions)||{}).getShadowRoot?u([t],n.includeContainer,{filter:g.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):l(t,n.includeContainer,g.bind(null,n)));return{container:e,tabbableNodes:a,focusableNodes:r,firstTabbableNode:a.length>0?a[0]:null,lastTabbableNode:a.length>0?a[a.length-1]:null,nextTabbableNode:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=r.findIndex((function(t){return t===e}));if(!(n<0))return t?r.slice(n+1).find((function(e){return C(e,o.tabbableOptions)})):r.slice(0,n).reverse().find((function(e){return C(e,o.tabbableOptions)}))}}})),i.tabbableGroups=i.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),i.tabbableGroups.length<=0&&!p("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times")},m=function e(t){!1!==t&&t!==a.activeElement&&(t&&t.focus?(t.focus({preventScroll:!!o.preventScroll}),i.mostRecentlyFocusedNode=t,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"==typeof e.select}(t)&&t.select()):e(d()))},f=function(e){var t=p("setReturnFocus",e);return t||!1!==t&&e},v=function(e){var t=$(e);c(t)>=0||(j(o.clickOutsideDeactivates,e)?n.deactivate({returnFocus:o.returnFocusOnDeactivate&&!x(t,o.tabbableOptions)}):j(o.allowOutsideClick,e)||e.preventDefault())},A=function(e){var t=$(e),n=c(t)>=0;n||t instanceof Document?n&&(i.mostRecentlyFocusedNode=t):(e.stopImmediatePropagation(),m(i.mostRecentlyFocusedNode||d()))},b=function(e){if(function(e){return"Escape"===e.key||"Esc"===e.key||27===e.keyCode}(e)&&!1!==j(o.escapeDeactivates,e))return e.preventDefault(),void n.deactivate();(function(e){return"Tab"===e.key||9===e.keyCode})(e)&&function(e){var t=$(e);h();var n=null;if(i.tabbableGroups.length>0){var a=c(t),r=a>=0?i.containerGroups[a]:void 0;if(a<0)n=e.shiftKey?i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:i.tabbableGroups[0].firstTabbableNode;else if(e.shiftKey){var s=z(i.tabbableGroups,(function(e){var n=e.firstTabbableNode;return t===n}));if(s<0&&(r.container===t||x(t,o.tabbableOptions)&&!C(t,o.tabbableOptions)&&!r.nextTabbableNode(t,!1))&&(s=a),s>=0){var l=0===s?i.tabbableGroups.length-1:s-1;n=i.tabbableGroups[l].lastTabbableNode}}else{var u=z(i.tabbableGroups,(function(e){var n=e.lastTabbableNode;return t===n}));if(u<0&&(r.container===t||x(t,o.tabbableOptions)&&!C(t,o.tabbableOptions)&&!r.nextTabbableNode(t))&&(u=a),u>=0){var d=u===i.tabbableGroups.length-1?0:u+1;n=i.tabbableGroups[d].firstTabbableNode}}}else n=p("fallbackFocus");n&&(e.preventDefault(),m(n))}(e)},w=function(e){var t=$(e);c(t)>=0||j(o.clickOutsideDeactivates,e)||j(o.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},k=function(){if(i.active)return P(r,n),i.delayInitialFocusTimer=o.delayInitialFocus?N((function(){m(d())})):m(d()),a.addEventListener("focusin",A,!0),a.addEventListener("mousedown",v,{capture:!0,passive:!1}),a.addEventListener("touchstart",v,{capture:!0,passive:!1}),a.addEventListener("click",w,{capture:!0,passive:!1}),a.addEventListener("keydown",b,{capture:!0,passive:!1}),n},_=function(){if(i.active)return a.removeEventListener("focusin",A,!0),a.removeEventListener("mousedown",v,!0),a.removeEventListener("touchstart",v,!0),a.removeEventListener("click",w,!0),a.removeEventListener("keydown",b,!0),n};return(n={get active(){return i.active},get paused(){return i.paused},activate:function(e){if(i.active)return this;var t=s(e,"onActivate"),n=s(e,"onPostActivate"),r=s(e,"checkCanFocusTrap");r||h(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=a.activeElement,t&&t();var o=function(){r&&h(),k(),n&&n()};return r?(r(i.containers.concat()).then(o,o),this):(o(),this)},deactivate:function(e){if(!i.active)return this;var t=S({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},e);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,_(),i.active=!1,i.paused=!1,E(r,n);var a=s(t,"onDeactivate"),l=s(t,"onPostDeactivate"),u=s(t,"checkCanReturnFocus"),c=s(t,"returnFocus","returnFocusOnDeactivate");a&&a();var p=function(){N((function(){c&&m(f(i.nodeFocusedBeforeActivation)),l&&l()}))};return c&&u?(u(f(i.nodeFocusedBeforeActivation)).then(p,p),this):(p(),this)},pause:function(){return i.paused||!i.active||(i.paused=!0,_()),this},unpause:function(){return i.paused&&i.active?(i.paused=!1,h(),k(),this):this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return i.containers=t.map((function(e){return"string"==typeof e?a.querySelector(e):e})),i.active&&h(),this}}).updateContainerElements(e),n}},840:(e,t,n)=>{var a;!function(r,o,i,s){"use strict";var l,u=["","webkit","Moz","MS","ms","o"],c=o.createElement("div"),p=Math.round,d=Math.abs,h=Date.now;function m(e,t,n){return setTimeout(C(e,n),t)}function f(e,t,n){return!!Array.isArray(e)&&(g(e,n[t],n),!0)}function g(e,t,n){var a;if(e)if(e.forEach)e.forEach(t,n);else if(e.length!==s)for(a=0;a\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=r.console&&(r.console.warn||r.console.log);return o&&o.call(r.console,a,n),e.apply(this,arguments)}}l="function"!=typeof Object.assign?function(e){if(e===s||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n-1}function P(e){return e.trim().split(/\s+/g)}function E(e,t,n){if(e.indexOf&&!n)return e.indexOf(t);for(var a=0;an[t]})):a.sort()),a}function j(e,t){for(var n,a,r=t[0].toUpperCase()+t.slice(1),o=0;o1&&!n.firstMultiple?n.firstMultiple=q(t):1===r&&(n.firstMultiple=!1);var o=n.firstInput,i=n.firstMultiple,l=i?i.center:o.center,u=t.center=W(a);t.timeStamp=h(),t.deltaTime=t.timeStamp-o.timeStamp,t.angle=K(l,u),t.distance=Y(l,u),function(e,t){var n=t.center,a=e.offsetDelta||{},r=e.prevDelta||{},o=e.prevInput||{};1!==t.eventType&&4!==o.eventType||(r=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},a=e.offsetDelta={x:n.x,y:n.y});t.deltaX=r.x+(n.x-a.x),t.deltaY=r.y+(n.y-a.y)}(n,t),t.offsetDirection=V(t.deltaX,t.deltaY);var c=Z(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=c.x,t.overallVelocityY=c.y,t.overallVelocity=d(c.x)>d(c.y)?c.x:c.y,t.scale=i?(p=i.pointers,m=a,Y(m[0],m[1],G)/Y(p[0],p[1],G)):1,t.rotation=i?function(e,t){return K(t[1],t[0],G)+K(e[1],e[0],G)}(i.pointers,a):0,t.maxPointers=n.prevInput?t.pointers.length>n.prevInput.maxPointers?t.pointers.length:n.prevInput.maxPointers:t.pointers.length,function(e,t){var n,a,r,o,i=e.lastInterval||t,l=t.timeStamp-i.timeStamp;if(8!=t.eventType&&(l>25||i.velocity===s)){var u=t.deltaX-i.deltaX,c=t.deltaY-i.deltaY,p=Z(l,u,c);a=p.x,r=p.y,n=d(p.x)>d(p.y)?p.x:p.y,o=V(u,c),e.lastInterval=t}else n=i.velocity,a=i.velocityX,r=i.velocityY,o=i.direction;t.velocity=n,t.velocityX=a,t.velocityY=r,t.direction=o}(n,t);var p,m;var f=e.element;_(t.srcEvent.target,f)&&(f=t.srcEvent.target);t.target=f}(e,n),e.emit("hammer.input",n),e.recognize(n),e.session.prevInput=n}function q(e){for(var t=[],n=0;n=d(t)?e<0?2:4:t<0?8:16}function Y(e,t,n){n||(n=R);var a=t[n[0]]-e[n[0]],r=t[n[1]]-e[n[1]];return Math.sqrt(a*a+r*r)}function K(e,t,n){n||(n=R);var a=t[n[0]]-e[n[0]],r=t[n[1]]-e[n[1]];return 180*Math.atan2(r,a)/Math.PI}U.prototype={handler:function(){},init:function(){this.evEl&&k(this.element,this.evEl,this.domHandler),this.evTarget&&k(this.target,this.evTarget,this.domHandler),this.evWin&&k(O(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&S(this.element,this.evEl,this.domHandler),this.evTarget&&S(this.target,this.evTarget,this.domHandler),this.evWin&&S(O(this.element),this.evWin,this.domHandler)}};var J={mousedown:1,mousemove:2,mouseup:4},X="mousedown",Q="mousemove mouseup";function ee(){this.evEl=X,this.evWin=Q,this.pressed=!1,U.apply(this,arguments)}y(ee,U,{handler:function(e){var t=J[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:M,srcEvent:e}))}});var te={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},ne={2:I,3:"pen",4:M,5:"kinect"},ae="pointerdown",re="pointermove pointerup pointercancel";function oe(){this.evEl=ae,this.evWin=re,U.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}r.MSPointerEvent&&!r.PointerEvent&&(ae="MSPointerDown",re="MSPointerMove MSPointerUp MSPointerCancel"),y(oe,U,{handler:function(e){var t=this.store,n=!1,a=e.type.toLowerCase().replace("ms",""),r=te[a],o=ne[e.pointerType]||e.pointerType,i=o==I,s=E(t,e.pointerId,"pointerId");1&r&&(0===e.button||i)?s<0&&(t.push(e),s=t.length-1):12&r&&(n=!0),s<0||(t[s]=e,this.callback(this.manager,r,{pointers:t,changedPointers:[e],pointerType:o,srcEvent:e}),n&&t.splice(s,1))}});var ie={touchstart:1,touchmove:2,touchend:4,touchcancel:8},se="touchstart",le="touchstart touchmove touchend touchcancel";function ue(){this.evTarget=se,this.evWin=le,this.started=!1,U.apply(this,arguments)}function ce(e,t){var n=N(e.touches),a=N(e.changedTouches);return 12&t&&(n=z(n.concat(a),"identifier",!0)),[n,a]}y(ue,U,{handler:function(e){var t=ie[e.type];if(1===t&&(this.started=!0),this.started){var n=ce.call(this,e,t);12&t&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:I,srcEvent:e})}}});var pe={touchstart:1,touchmove:2,touchend:4,touchcancel:8},de="touchstart touchmove touchend touchcancel";function he(){this.evTarget=de,this.targetIds={},U.apply(this,arguments)}function me(e,t){var n=N(e.touches),a=this.targetIds;if(3&t&&1===n.length)return a[n[0].identifier]=!0,[n,n];var r,o,i=N(e.changedTouches),s=[],l=this.target;if(o=n.filter((function(e){return _(e.target,l)})),1===t)for(r=0;r-1&&a.splice(e,1)}),2500)}}function Ae(e){for(var t=e.srcEvent.clientX,n=e.srcEvent.clientY,a=0;a-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,n=this.state;function a(n){t.manager.emit(n,e)}n<8&&a(t.options.event+ze(n)),a(t.options.event),e.additionalEvent&&a(e.additionalEvent),n>=8&&a(t.options.event+ze(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=Ee},canEmit:function(){for(var e=0;et.threshold&&r&t.direction},attrTest:function(e){return Oe.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=je(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),y(De,Oe,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ke]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),y(Be,Ne,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[we]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,a=e.distancet.time;if(this._input=e,!a||!n||12&e.eventType&&!r)this.reset();else if(1&e.eventType)this.reset(),this._timer=m((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return Ee},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=h(),this.manager.emit(this.options.event,this._input)))}}),y(Ie,Oe,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ke]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),y(Me,Oe,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return Fe.prototype.getTouchAction.call(this)},attrTest:function(e){var t,n=this.options.direction;return 30&n?t=e.overallVelocity:6&n?t=e.overallVelocityX:n&L&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&d(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=je(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),y(Le,Ne,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[xe]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,a=e.distance{var a="__lodash_hash_undefined__",r="[object Function]",o="[object GeneratorFunction]",i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/,l=/^\./,u=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,c=/\\(\\)?/g,p=/^\[object .+?Constructor\]$/,d="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,h="object"==typeof self&&self&&self.Object===Object&&self,m=d||h||Function("return this")();var f,g=Array.prototype,v=Function.prototype,A=Object.prototype,b=m["__core-js_shared__"],y=(f=/[^.]+$/.exec(b&&b.keys&&b.keys.IE_PROTO||""))?"Symbol(src)_1."+f:"",C=v.toString,w=A.hasOwnProperty,x=A.toString,k=RegExp("^"+C.call(w).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),S=m.Symbol,_=g.splice,T=I(m,"Map"),P=I(Object,"create"),E=S?S.prototype:void 0,N=E?E.toString:void 0;function z(e){var t=-1,n=e?e.length:0;for(this.clear();++t-1},j.prototype.set=function(e,t){var n=this.__data__,a=O(n,e);return a<0?n.push([e,t]):n[a][1]=t,this},$.prototype.clear=function(){this.__data__={hash:new z,map:new(T||j),string:new z}},$.prototype.delete=function(e){return B(this,e).delete(e)},$.prototype.get=function(e){return B(this,e).get(e)},$.prototype.has=function(e){return B(this,e).has(e)},$.prototype.set=function(e,t){return B(this,e).set(e,t),this};var M=R((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(H(e))return N?N.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var n=[];return l.test(e)&&n.push(""),e.replace(u,(function(e,t,a,r){n.push(a?r.replace(c,"$1"):t||e)})),n}));function L(e){if("string"==typeof e||H(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function R(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var a=arguments,r=t?t.apply(this,a):a[0],o=n.cache;if(o.has(r))return o.get(r);var i=e.apply(this,a);return n.cache=o.set(r,i),i};return n.cache=new(R.Cache||$),n}R.Cache=$;var G=Array.isArray;function U(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function H(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==x.call(e)}e.exports=function(e,t,n){var a=null==e?void 0:F(e,t);return void 0===a?n:a}},7699:(e,t,n)=>{"use strict";var a=n(9208),r=n(4587);function o(e){e=e||{},this.catalogs={},this.locale="",this.domain="messages",this.listeners=[],this.sourceLocale="",e.sourceLocale&&("string"==typeof e.sourceLocale?this.sourceLocale=e.sourceLocale:this.warn("The `sourceLocale` option should be a string")),this.debug="debug"in e&&!0===e.debug}e.exports=o,o.prototype.on=function(e,t){this.listeners.push({eventName:e,callback:t})},o.prototype.off=function(e,t){this.listeners=this.listeners.filter((function(n){return!1==(n.eventName===e&&n.callback===t)}))},o.prototype.emit=function(e,t){for(var n=0;n{"use strict";e.exports={ach:{name:"Acholi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},af:{name:"Afrikaans",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ak:{name:"Akan",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},am:{name:"Amharic",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},an:{name:"Aragonese",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ar:{name:"Arabic",examples:[{plural:0,sample:0},{plural:1,sample:1},{plural:2,sample:2},{plural:3,sample:3},{plural:4,sample:11},{plural:5,sample:100}],nplurals:6,pluralsText:"nplurals = 6; plural = (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5)",pluralsFunc:function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5}},arn:{name:"Mapudungun",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},ast:{name:"Asturian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ay:{name:"Aymará",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},az:{name:"Azerbaijani",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},be:{name:"Belarusian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}},bg:{name:"Bulgarian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},bn:{name:"Bengali",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},bo:{name:"Tibetan",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},br:{name:"Breton",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},brx:{name:"Bodo",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},bs:{name:"Bosnian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}},ca:{name:"Catalan",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},cgg:{name:"Chiga",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},cs:{name:"Czech",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)",pluralsFunc:function(e){return 1===e?0:e>=2&&e<=4?1:2}},csb:{name:"Kashubian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return 1===e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}},cy:{name:"Welsh",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:3},{plural:3,sample:8}],nplurals:4,pluralsText:"nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3)",pluralsFunc:function(e){return 1===e?0:2===e?1:8!==e&&11!==e?2:3}},da:{name:"Danish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},de:{name:"German",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},doi:{name:"Dogri",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},dz:{name:"Dzongkha",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},el:{name:"Greek",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},en:{name:"English",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},eo:{name:"Esperanto",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},es:{name:"Spanish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},et:{name:"Estonian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},eu:{name:"Basque",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},fa:{name:"Persian",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},ff:{name:"Fulah",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},fi:{name:"Finnish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},fil:{name:"Filipino",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},fo:{name:"Faroese",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},fr:{name:"French",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},fur:{name:"Friulian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},fy:{name:"Frisian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ga:{name:"Irish",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:3},{plural:3,sample:7},{plural:4,sample:11}],nplurals:5,pluralsText:"nplurals = 5; plural = (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4)",pluralsFunc:function(e){return 1===e?0:2===e?1:e<7?2:e<11?3:4}},gd:{name:"Scottish Gaelic",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:3},{plural:3,sample:20}],nplurals:4,pluralsText:"nplurals = 4; plural = ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3)",pluralsFunc:function(e){return 1===e||11===e?0:2===e||12===e?1:e>2&&e<20?2:3}},gl:{name:"Galician",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},gu:{name:"Gujarati",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},gun:{name:"Gun",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},ha:{name:"Hausa",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},he:{name:"Hebrew",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},hi:{name:"Hindi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},hne:{name:"Chhattisgarhi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},hr:{name:"Croatian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}},hu:{name:"Hungarian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},hy:{name:"Armenian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},id:{name:"Indonesian",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},is:{name:"Icelandic",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n % 10 !== 1 || n % 100 === 11)",pluralsFunc:function(e){return e%10!=1||e%100==11}},it:{name:"Italian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ja:{name:"Japanese",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},jbo:{name:"Lojban",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},jv:{name:"Javanese",examples:[{plural:0,sample:0},{plural:1,sample:1}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 0)",pluralsFunc:function(e){return 0!==e}},ka:{name:"Georgian",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},kk:{name:"Kazakh",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},km:{name:"Khmer",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},kn:{name:"Kannada",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ko:{name:"Korean",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},ku:{name:"Kurdish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},kw:{name:"Cornish",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:3},{plural:3,sample:4}],nplurals:4,pluralsText:"nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3)",pluralsFunc:function(e){return 1===e?0:2===e?1:3===e?2:3}},ky:{name:"Kyrgyz",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},lb:{name:"Letzeburgesch",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ln:{name:"Lingala",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},lo:{name:"Lao",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},lt:{name:"Lithuanian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:10}],nplurals:3,pluralsText:"nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2}},lv:{name:"Latvian",examples:[{plural:2,sample:0},{plural:0,sample:1},{plural:1,sample:2}],nplurals:3,pluralsText:"nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2)",pluralsFunc:function(e){return e%10==1&&e%100!=11?0:0!==e?1:2}},mai:{name:"Maithili",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},mfe:{name:"Mauritian Creole",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},mg:{name:"Malagasy",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},mi:{name:"Maori",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},mk:{name:"Macedonian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n === 1 || n % 10 === 1 ? 0 : 1)",pluralsFunc:function(e){return 1===e||e%10==1?0:1}},ml:{name:"Malayalam",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},mn:{name:"Mongolian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},mni:{name:"Manipuri",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},mnk:{name:"Mandinka",examples:[{plural:0,sample:0},{plural:1,sample:1},{plural:2,sample:2}],nplurals:3,pluralsText:"nplurals = 3; plural = (n === 0 ? 0 : n === 1 ? 1 : 2)",pluralsFunc:function(e){return 0===e?0:1===e?1:2}},mr:{name:"Marathi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ms:{name:"Malay",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},mt:{name:"Maltese",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:11},{plural:3,sample:20}],nplurals:4,pluralsText:"nplurals = 4; plural = (n === 1 ? 0 : n === 0 || ( n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20 ) ? 2 : 3)",pluralsFunc:function(e){return 1===e?0:0===e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3}},my:{name:"Burmese",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},nah:{name:"Nahuatl",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},nap:{name:"Neapolitan",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},nb:{name:"Norwegian Bokmal",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ne:{name:"Nepali",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},nl:{name:"Dutch",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},nn:{name:"Norwegian Nynorsk",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},no:{name:"Norwegian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},nso:{name:"Northern Sotho",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},oc:{name:"Occitan",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},or:{name:"Oriya",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},pa:{name:"Punjabi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},pap:{name:"Papiamento",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},pl:{name:"Polish",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return 1===e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}},pms:{name:"Piemontese",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ps:{name:"Pashto",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},pt:{name:"Portuguese",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},rm:{name:"Romansh",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ro:{name:"Romanian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:20}],nplurals:3,pluralsText:"nplurals = 3; plural = (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2)",pluralsFunc:function(e){return 1===e?0:0===e||e%100>0&&e%100<20?1:2}},ru:{name:"Russian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}},rw:{name:"Kinyarwanda",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},sah:{name:"Yakut",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},sat:{name:"Santali",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},sco:{name:"Scots",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},sd:{name:"Sindhi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},se:{name:"Northern Sami",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},si:{name:"Sinhala",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},sk:{name:"Slovak",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)",pluralsFunc:function(e){return 1===e?0:e>=2&&e<=4?1:2}},sl:{name:"Slovenian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:3},{plural:3,sample:5}],nplurals:4,pluralsText:"nplurals = 4; plural = (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3)",pluralsFunc:function(e){return e%100==1?0:e%100==2?1:e%100==3||e%100==4?2:3}},so:{name:"Somali",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},son:{name:"Songhay",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},sq:{name:"Albanian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},sr:{name:"Serbian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}},su:{name:"Sundanese",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},sv:{name:"Swedish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},sw:{name:"Swahili",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},ta:{name:"Tamil",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},te:{name:"Telugu",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},tg:{name:"Tajik",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},th:{name:"Thai",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},ti:{name:"Tigrinya",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},tk:{name:"Turkmen",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},tr:{name:"Turkish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},tt:{name:"Tatar",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},ug:{name:"Uyghur",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},uk:{name:"Ukrainian",examples:[{plural:0,sample:1},{plural:1,sample:2},{plural:2,sample:5}],nplurals:3,pluralsText:"nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)",pluralsFunc:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2}},ur:{name:"Urdu",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},uz:{name:"Uzbek",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},vi:{name:"Vietnamese",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},wa:{name:"Walloon",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(e){return e>1}},wo:{name:"Wolof",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}},yo:{name:"Yoruba",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(e){return 1!==e}},zh:{name:"Chinese",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}}}},9394:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function r(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach((function(e){a[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},a)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,s,l=r(e),u=1;u{"use strict";n.r(t),n.d(t,{default:()=>r});const a={name:"ChevronLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};const r=(0,n(1900).Z)(a,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon chevron-left-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports},1585:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const a={name:"ChevronRightIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};const r=(0,n(1900).Z)(a,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon chevron-right-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports},2675:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const a={name:"CloseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};const r=(0,n(1900).Z)(a,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon close-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports},9115:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const a={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};const r=(0,n(1900).Z)(a,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon dots-horizontal-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports},1857:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const a={name:"PauseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};const r=(0,n(1900).Z)(a,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon pause-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M14,19H18V5H14M6,19H10V5H6V19Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports},3071:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const a={name:"PlayIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};const r=(0,n(1900).Z)(a,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon play-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M8,5.14V19.14L19,12.14L8,5.14Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports}}]); -//# sourceMappingURL=viewer-components.js.map?v=e92b65cc93cc331c1c58 \ No newline at end of file +(self["webpackChunkviewer"] = self["webpackChunkviewer"] || []).push([["components"],{ + +/***/ "./node_modules/@nextcloud/l10n/dist/gettext.js": +/*!******************************************************!*\ + !*** ./node_modules/@nextcloud/l10n/dist/gettext.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +var GetText = __webpack_require__(/*! node-gettext */ "./node_modules/node-gettext/lib/gettext.js"); +__webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.js"); +__webpack_require__(/*! dompurify */ "./node_modules/dompurify/dist/purify.js"); +__webpack_require__(/*! escape-html */ "./node_modules/escape-html/index.js"); + +/** + * Returns the user's language + */ +function getLanguage() { + return document.documentElement.lang || 'en'; +} + +/** + * This module provides functionality to translate applications independent from Nextcloud + * + * @packageDocumentation + * @module @nextcloud/l10n/gettext + * @example + * ```js +import { getGettextBuilder } from '@nextcloud/l10n/gettext' +const gt = getGettextBuilder() + .detectLocale() // or use setLanguage() + .addTranslation(/* ... *\/) + .build() +gt.gettext('some string to translate') +``` + */ +/** + * @notExported + */ +class GettextBuilder { + constructor() { + this.translations = {}; + this.debug = false; + } + setLanguage(language) { + this.locale = language; + return this; + } + /** Try to detect locale from context with `en` as fallback value */ + detectLocale() { + return this.setLanguage(getLanguage().replace('-', '_')); + } + addTranslation(language, data) { + this.translations[language] = data; + return this; + } + enableDebugMode() { + this.debug = true; + return this; + } + build() { + return new GettextWrapper(this.locale || 'en', this.translations, this.debug); + } +} +/** + * @notExported + */ +class GettextWrapper { + constructor(locale, data, debug) { + this.gt = new GetText({ + debug, + sourceLocale: 'en', + }); + for (const key in data) { + this.gt.addTranslations(key, 'messages', data[key]); + } + this.gt.setLocale(locale); + } + subtitudePlaceholders(translated, vars) { + return translated.replace(/{([^{}]*)}/g, (a, b) => { + const r = vars[b]; + if (typeof r === 'string' || typeof r === 'number') { + return r.toString(); + } + else { + return a; + } + }); + } + /** + * Get translated string (singular form), optionally with placeholders + * + * @param original original string to translate + * @param placeholders map of placeholder key to value + */ + gettext(original, placeholders = {}) { + return this.subtitudePlaceholders(this.gt.gettext(original), placeholders); + } + /** + * Get translated string with plural forms + * + * @param singular Singular text form + * @param plural Plural text form to be used if `count` requires it + * @param count The number to insert into the text + * @param placeholders optional map of placeholder key to value + */ + ngettext(singular, plural, count, placeholders = {}) { + return this.subtitudePlaceholders(this.gt.ngettext(singular, plural, count).replace(/%n/g, count.toString()), placeholders); + } +} +/** + * Create a new GettextBuilder instance + */ +function getGettextBuilder() { + return new GettextBuilder(); +} + +exports.getGettextBuilder = getGettextBuilder; + + +/***/ }), + +/***/ "./node_modules/@nextcloud/vue/dist/Components/NcActionButton.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@nextcloud/vue/dist/Components/NcActionButton.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/*! For license information please see NcActionButton.js.LICENSE.txt */ +!function(t,n){ true?module.exports=n():0}(self,(()=>(()=>{var t={723:(t,n,e)=>{"use strict";e.d(n,{Z:()=>a});var o=e(2734),i=e.n(o);const a={before:function(){this.$slots.default&&""!==this.text.trim()||(i().util.warn("".concat(this.$options.name," cannot be empty and requires a meaningful text content"),this),this.$destroy(),this.$el.remove())},beforeUpdate:function(){this.text=this.getText()},data:function(){return{text:this.getText()}},computed:{isLongText:function(){return this.text&&this.text.trim().length>20}},methods:{getText:function(){return this.$slots.default?this.$slots.default[0].text.trim():""}}}},1139:(t,n,e)=>{"use strict";e.d(n,{Z:()=>a});var o=e(723);const i=function(t,n){for(var e=t.$parent;e;){if(e.$options.name===n)return e;e=e.$parent}},a={mixins:[o.Z],props:{icon:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:""}},emits:["click"],computed:{isIconUrl:function(){try{return new URL(this.icon)}catch(t){return!1}}},methods:{onClick:function(t){if(this.$emit("click",t),this.closeAfterClick){var n=i(this,"NcActions");n&&n.closeMenu&&n.closeMenu(!1)}}}}},9725:(t,n,e)=>{"use strict";e.d(n,{Z:()=>s});var o=e(7537),i=e.n(o),a=e(3645),r=e.n(a)()(i());r.push([t.id,".material-design-icon[data-v-1846a4cc]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-1846a4cc]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action--disabled[data-v-1846a4cc]{pointer-events:none;opacity:.5}.action--disabled[data-v-1846a4cc]:hover,.action--disabled[data-v-1846a4cc]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-1846a4cc]{opacity:1 !important}.action-button[data-v-1846a4cc]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-button[data-v-1846a4cc]:hover,.action-button[data-v-1846a4cc]:focus{opacity:1}.action-button>span[data-v-1846a4cc]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-1846a4cc]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-1846a4cc] .material-design-icon{width:44px;height:44px;opacity:1}.action-button[data-v-1846a4cc] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button p[data-v-1846a4cc]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-1846a4cc]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-1846a4cc]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAMF,mCACC,mBAAA,CACA,UCMiB,CDLjB,kFACC,cAAA,CACA,UCGgB,CDDjB,qCACC,oBAAA,CAOF,gCACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,4EAEC,SChCY,CDmCb,qCACC,cAAA,CACA,kBAAA,CAGD,sCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,sDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,iFACC,qBAAA,CAKF,kCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,0CACC,cAAA,CAEA,oBAAA,CAGD,uCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA",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","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \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 .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\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 s=r},3645:t=>{"use strict";t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e="",o=void 0!==n[5];return n[4]&&(e+="@supports (".concat(n[4],") {")),n[2]&&(e+="@media ".concat(n[2]," {")),o&&(e+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),e+=t(n),o&&(e+="}"),n[2]&&(e+="}"),n[4]&&(e+="}"),e})).join("")},n.i=function(t,e,o,i,a){"string"==typeof t&&(t=[[null,t,void 0]]);var r={};if(o)for(var s=0;s0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),e&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=e):u[2]=e),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),n.push(u))}},n}},7537:t=>{"use strict";t.exports=function(t){var n=t[1],e=t[3];if(!e)return n;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),a="/*# ".concat(i," */");return[n].concat([a]).join("\n")}return[n].join("\n")}},3379:t=>{"use strict";var n=[];function e(t){for(var e=-1,o=0;o{"use strict";var n={};t.exports=function(t,e){var o=function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(t){e=null}n[t]=e}return n[t]}(t);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(e)}},9216:t=>{"use strict";t.exports=function(t){var n=document.createElement("style");return t.setAttributes(n,t.attributes),t.insert(n,t.options),n}},3565:(t,n,e)=>{"use strict";t.exports=function(t){var n=e.nc;n&&t.setAttribute("nonce",n)}},7795:t=>{"use strict";t.exports=function(t){var n=t.insertStyleElement(t);return{update:function(e){!function(t,n,e){var o="";e.supports&&(o+="@supports (".concat(e.supports,") {")),e.media&&(o+="@media ".concat(e.media," {"));var i=void 0!==e.layer;i&&(o+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),o+=e.css,i&&(o+="}"),e.media&&(o+="}"),e.supports&&(o+="}");var a=e.sourceMap;a&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleTagTransform(o,t,n.options)}(n,t,e)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)}}}},4589:t=>{"use strict";t.exports=function(t,n){if(n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}},4216:()=>{},1900:(t,n,e)=>{"use strict";function o(t,n,e,o,i,a,r,s){var c,l="function"==typeof t?t.options:t;if(n&&(l.render=n,l.staticRenderFns=e,l._compiled=!0),o&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),r?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},l._ssrRegister=c):i&&(c=s?function(){i.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:i),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,n){return c.call(n),u(t,n)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c]}return{exports:t,options:l}}e.d(n,{Z:()=>o})},2734:t=>{"use strict";t.exports=__webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js")}},n={};function e(o){var i=n[o];if(void 0!==i)return i.exports;var a=n[o]={id:o,exports:{}};return t[o](a,a.exports,e),a.exports}e.n=t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},e.d=(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},e.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.nc=void 0;var o={};return(()=>{"use strict";e.r(o),e.d(o,{default:()=>x});const t={name:"NcActionButton",mixins:[e(1139).Z],props:{disabled:{type:Boolean,default:!1}},computed:{isFocusable:function(){return!this.disabled}}};var n=e(3379),i=e.n(n),a=e(7795),r=e.n(a),s=e(569),c=e.n(s),l=e(3565),u=e.n(l),d=e(9216),p=e.n(d),A=e(4589),f=e.n(A),h=e(9725),C={};C.styleTagTransform=f(),C.setAttributes=u(),C.insert=c().bind(null,"head"),C.domAPI=r(),C.insertStyleElement=p();i()(h.Z,C);h.Z&&h.Z.locals&&h.Z.locals;var v=e(1900),g=e(4216),b=e.n(g),m=(0,v.Z)(t,(function(){var t=this,n=t._self._c;return n("li",{staticClass:"action",class:{"action--disabled":t.disabled},attrs:{role:"presentation"}},[n("button",{staticClass:"action-button",class:{focusable:t.isFocusable},attrs:{"aria-label":t.ariaLabel,role:"menuitem",type:"button"},on:{click:t.onClick}},[t._t("icon",(function(){return[n("span",{staticClass:"action-button__icon",class:[t.isIconUrl?"action-button__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?"url(".concat(t.icon,")"):null}})]})),t._v(" "),t.title?n("p",[n("strong",{staticClass:"action-button__title"},[t._v("\n\t\t\t\t"+t._s(t.title)+"\n\t\t\t")]),t._v(" "),n("br"),t._v(" "),n("span",{staticClass:"action-button__longtext",domProps:{textContent:t._s(t.text)}})]):t.isLongText?n("p",{staticClass:"action-button__longtext",domProps:{textContent:t._s(t.text)}}):n("span",{staticClass:"action-button__text"},[t._v(t._s(t.text))]),t._v(" "),t._e()],2)])}),[],!1,null,"1846a4cc",null);"function"==typeof b()&&b()(m);const x=m.exports})(),o})())); +//# sourceMappingURL=NcActionButton.js.map + +/***/ }), + +/***/ "./node_modules/@nextcloud/vue/dist/Components/NcActionLink.js": +/*!*********************************************************************!*\ + !*** ./node_modules/@nextcloud/vue/dist/Components/NcActionLink.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/*! For license information please see NcActionLink.js.LICENSE.txt */ +!function(t,n){ true?module.exports=n():0}(self,(()=>(()=>{var t={723:(t,n,e)=>{"use strict";e.d(n,{Z:()=>r});var o=e(2734),i=e.n(o);const r={before:function(){this.$slots.default&&""!==this.text.trim()||(i().util.warn("".concat(this.$options.name," cannot be empty and requires a meaningful text content"),this),this.$destroy(),this.$el.remove())},beforeUpdate:function(){this.text=this.getText()},data:function(){return{text:this.getText()}},computed:{isLongText:function(){return this.text&&this.text.trim().length>20}},methods:{getText:function(){return this.$slots.default?this.$slots.default[0].text.trim():""}}}},1139:(t,n,e)=>{"use strict";e.d(n,{Z:()=>r});var o=e(723);const i=function(t,n){for(var e=t.$parent;e;){if(e.$options.name===n)return e;e=e.$parent}},r={mixins:[o.Z],props:{icon:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:""}},emits:["click"],computed:{isIconUrl:function(){try{return new URL(this.icon)}catch(t){return!1}}},methods:{onClick:function(t){if(this.$emit("click",t),this.closeAfterClick){var n=i(this,"NcActions");n&&n.closeMenu&&n.closeMenu(!1)}}}}},6368:(t,n,e)=>{"use strict";e.d(n,{Z:()=>s});var o=e(7537),i=e.n(o),r=e(3645),a=e.n(r)()(i());a.push([t.id,".material-design-icon[data-v-b0b3faba]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-b0b3faba]{background-color:var(--color-background-hover);border-radius:6px;padding:0}.action-link[data-v-b0b3faba]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:rgba(0,0,0,0);box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-link[data-v-b0b3faba]:hover,.action-link[data-v-b0b3faba]:focus{opacity:1}.action-link>span[data-v-b0b3faba]{cursor:pointer;white-space:nowrap}.action-link__icon[data-v-b0b3faba]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-link[data-v-b0b3faba] .material-design-icon{width:44px;height:44px;opacity:1}.action-link[data-v-b0b3faba] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-link p[data-v-b0b3faba]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-link__longtext[data-v-b0b3faba]{cursor:pointer;white-space:pre-wrap}.action-link__title[data-v-b0b3faba]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/assets/action.scss","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCiBC,2BACC,8CAAA,CACA,iBAAA,CACA,SAAA,CAqBF,8BACC,YAAA,CACA,sBAAA,CAEA,UAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,kBCxBY,CDyBZ,qBAAA,CAEA,cAAA,CACA,kBAAA,CAEA,UCpBe,CDqBf,4BAAA,CACA,QAAA,CACA,eAAA,CACA,8BAAA,CACA,eAAA,CAEA,kBAAA,CACA,kCAAA,CACA,gBC/Ce,CDiDf,wEAEC,SChCY,CDmCb,mCACC,cAAA,CACA,kBAAA,CAGD,oCACC,UC5Dc,CD6Dd,WC7Dc,CD8Dd,SC3CY,CD4CZ,+BAAA,CACA,oBC5DS,CD6DT,2BAAA,CAGD,oDACC,UCrEc,CDsEd,WCtEc,CDuEd,SCpDY,CDsDZ,+EACC,qBAAA,CAKF,gCACC,eAAA,CACA,iBAAA,CAGA,gBAAA,CAEA,cAAA,CACA,eAAA,CAGA,eAAA,CACA,sBAAA,CAGD,wCACC,cAAA,CAEA,oBAAA,CAGD,qCACC,gBAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,oBAAA",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","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Marco Ambrosini \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 .\n *\n */\n\n@mixin action-active {\n\tli {\n\t\t&.active {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t\tborder-radius: 6px;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n}\n\n@mixin action--disabled {\n\t.action--disabled {\n\t\tpointer-events: none;\n\t\topacity: $opacity_disabled;\n\t\t&:hover, &:focus {\n\t\t\tcursor: default;\n\t\t\topacity: $opacity_disabled;\n\t\t}\n\t\t& * {\n\t\t\topacity: 1 !important;\n\t\t}\n\t}\n}\n\n\n@mixin action-item($name) {\n\t.action-#{$name} {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\n\t\twidth: 100%;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpadding-right: $icon-margin;\n\t\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\n\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\n\t\topacity: $opacity_normal;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tbox-shadow: none;\n\n\t\tfont-weight: normal;\n\t\tfont-size: var(--default-font-size);\n\t\tline-height: $clickable-area;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\topacity: $opacity_full;\n\t\t}\n\n\t\t& > span {\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t&__icon {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tbackground-size: $icon-size;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\n\t\t// long text area\n\t\tp {\n\t\t\tmax-width: 220px;\n\t\t\tline-height: 1.6em;\n\n\t\t\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\n\t\t\tpadding: #{math.div($clickable-area - 1.6 * 14px, 2)} 0;\n\n\t\t\tcursor: pointer;\n\t\t\ttext-align: left;\n\n\t\t\t// in case there are no spaces like long email addresses\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&__longtext {\n\t\t\tcursor: pointer;\n\t\t\t// allow the use of `\\n`\n\t\t\twhite-space: pre-wrap;\n\t\t}\n\n\t\t&__title {\n\t\t\tfont-weight: bold;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\tmax-width: 100%;\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\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 s=a},3645:t=>{"use strict";t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e="",o=void 0!==n[5];return n[4]&&(e+="@supports (".concat(n[4],") {")),n[2]&&(e+="@media ".concat(n[2]," {")),o&&(e+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),e+=t(n),o&&(e+="}"),n[2]&&(e+="}"),n[4]&&(e+="}"),e})).join("")},n.i=function(t,e,o,i,r){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(o)for(var s=0;s0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),e&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=e):d[2]=e),i&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=i):d[4]="".concat(i)),n.push(d))}},n}},7537:t=>{"use strict";t.exports=function(t){var n=t[1],e=t[3];if(!e)return n;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),r="/*# ".concat(i," */");return[n].concat([r]).join("\n")}return[n].join("\n")}},3379:t=>{"use strict";var n=[];function e(t){for(var e=-1,o=0;o{"use strict";var n={};t.exports=function(t,e){var o=function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(t){e=null}n[t]=e}return n[t]}(t);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(e)}},9216:t=>{"use strict";t.exports=function(t){var n=document.createElement("style");return t.setAttributes(n,t.attributes),t.insert(n,t.options),n}},3565:(t,n,e)=>{"use strict";t.exports=function(t){var n=e.nc;n&&t.setAttribute("nonce",n)}},7795:t=>{"use strict";t.exports=function(t){var n=t.insertStyleElement(t);return{update:function(e){!function(t,n,e){var o="";e.supports&&(o+="@supports (".concat(e.supports,") {")),e.media&&(o+="@media ".concat(e.media," {"));var i=void 0!==e.layer;i&&(o+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),o+=e.css,i&&(o+="}"),e.media&&(o+="}"),e.supports&&(o+="}");var r=e.sourceMap;r&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),n.styleTagTransform(o,t,n.options)}(n,t,e)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)}}}},4589:t=>{"use strict";t.exports=function(t,n){if(n.styleSheet)n.styleSheet.cssText=t;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(t))}}},9158:()=>{},1900:(t,n,e)=>{"use strict";function o(t,n,e,o,i,r,a,s){var c,l="function"==typeof t?t.options:t;if(n&&(l.render=n,l.staticRenderFns=e,l._compiled=!0),o&&(l.functional=!0),r&&(l._scopeId="data-v-"+r),a?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},l._ssrRegister=c):i&&(c=s?function(){i.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:i),c)if(l.functional){l._injectStyles=c;var d=l.render;l.render=function(t,n){return c.call(n),d(t,n)}}else{var u=l.beforeCreate;l.beforeCreate=u?[].concat(u,c):[c]}return{exports:t,options:l}}e.d(n,{Z:()=>o})},2734:t=>{"use strict";t.exports=__webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js")}},n={};function e(o){var i=n[o];if(void 0!==i)return i.exports;var r=n[o]={id:o,exports:{}};return t[o](r,r.exports,e),r.exports}e.n=t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},e.d=(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},e.o=(t,n)=>Object.prototype.hasOwnProperty.call(t,n),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.nc=void 0;var o={};return(()=>{"use strict";e.r(o),e.d(o,{default:()=>x});const t={name:"NcActionLink",mixins:[e(1139).Z],props:{href:{type:String,default:"#",required:!0,validator:function(t){try{return new URL(t)}catch(n){return t.startsWith("#")||t.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:function(t){return t&&(!t.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(t)>-1)}},title:{type:String,default:null}}};var n=e(3379),i=e.n(n),r=e(7795),a=e.n(r),s=e(569),c=e.n(s),l=e(3565),d=e.n(l),u=e(9216),p=e.n(u),A=e(4589),f=e.n(A),h=e(6368),b={};b.styleTagTransform=f(),b.setAttributes=d(),b.insert=c().bind(null,"head"),b.domAPI=a(),b.insertStyleElement=p();i()(h.Z,b);h.Z&&h.Z.locals&&h.Z.locals;var C=e(1900),g=e(9158),v=e.n(g),m=(0,C.Z)(t,(function(){var t=this,n=t._self._c;return n("li",{staticClass:"action"},[n("a",{staticClass:"action-link focusable",attrs:{download:t.download,href:t.href,"aria-label":t.ariaLabel,target:t.target,title:t.title,rel:"nofollow noreferrer noopener"},on:{click:t.onClick}},[t._t("icon",(function(){return[n("span",{staticClass:"action-link__icon",class:[t.isIconUrl?"action-link__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?"url(".concat(t.icon,")"):null}})]})),t._v(" "),t.title?n("p",[n("strong",{staticClass:"action-link__title"},[t._v("\n\t\t\t\t"+t._s(t.title)+"\n\t\t\t")]),t._v(" "),n("br"),t._v(" "),n("span",{staticClass:"action-link__longtext",domProps:{textContent:t._s(t.text)}})]):t.isLongText?n("p",{staticClass:"action-link__longtext",domProps:{textContent:t._s(t.text)}}):n("span",{staticClass:"action-link__text"},[t._v(t._s(t.text))]),t._v(" "),t._e()],2)])}),[],!1,null,"b0b3faba",null);"function"==typeof v()&&v()(m);const x=m.exports})(),o})())); +//# sourceMappingURL=NcActionLink.js.map + +/***/ }), + +/***/ "./node_modules/@nextcloud/vue/dist/Components/NcModal.js": +/*!****************************************************************!*\ + !*** ./node_modules/@nextcloud/vue/dist/Components/NcModal.js ***! + \****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/*! For license information please see NcModal.js.LICENSE.txt */ +!function(e,t){ true?module.exports=t():0}(self,(()=>(()=>{var e={5471:(e,t,a)=>{"use strict";a.d(t,{default:()=>M});var o=a(9479),n=a(1241),i=a(336),r=a(1205),s=a(932),l=a(2734),c=a.n(l),u=a(1441),d=a.n(u);function p(e){return p="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},p(e)}function m(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function A(e){for(var t=1;te.length)&&(t=e.length);for(var a=0,o=new Array(t);a0&&void 0!==arguments[0])||arguments[0];this.opened&&(this.opened=!1,this.$refs.popover.clearFocusTrap({returnFocus:e}),this.$emit("update:open",!1),this.$emit("close"),this.opened=!1,this.focusIndex=0,this.$refs.menuButton.$el.focus())},onOpen:function(e){var t=this;this.$nextTick((function(){t.focusFirstAction(e)}))},onMouseFocusAction:function(e){if(document.activeElement!==e.target){var t=e.target.closest("li");if(t){var a=t.querySelector(f);if(a){var o=g(this.$refs.menu.querySelectorAll(f)).indexOf(a);o>-1&&(this.focusIndex=o,this.focusAction())}}}},onKeydown:function(e){(38===e.keyCode||9===e.keyCode&&e.shiftKey)&&this.focusPreviousAction(e),(40===e.keyCode||9===e.keyCode&&!e.shiftKey)&&this.focusNextAction(e),33===e.keyCode&&this.focusFirstAction(e),34===e.keyCode&&this.focusLastAction(e),27===e.keyCode&&(this.closeMenu(),e.preventDefault())},removeCurrentActive:function(){var e=this.$refs.menu.querySelector("li.active");e&&e.classList.remove("active")},focusAction:function(){var e=this.$refs.menu.querySelectorAll(f)[this.focusIndex];if(e){this.removeCurrentActive();var t=e.closest("li.action");e.focus(),t&&t.classList.add("active")}},focusPreviousAction:function(e){this.opened&&(0===this.focusIndex?this.closeMenu():(this.preventIfEvent(e),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction:function(e){if(this.opened){var t=this.$refs.menu.querySelectorAll(f).length-1;this.focusIndex===t?this.closeMenu():(this.preventIfEvent(e),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction:function(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=0,this.focusAction())},focusLastAction:function(e){this.opened&&(this.preventIfEvent(e),this.focusIndex=this.$refs.menu.querySelectorAll(f).length-1,this.focusAction())},preventIfEvent:function(e){e&&(e.preventDefault(),e.stopPropagation())},onFocus:function(e){this.$emit("focus",e)},onBlur:function(e){this.$emit("blur",e)}},render:function(e){var t=this,a=(this.$slots.default||[]).filter((function(e){var t;return null==e||null===(t=e.componentOptions)||void 0===t?void 0:t.tag})),o=a.filter(this.isValidSingleAction);if(this.forceMenu&&o.length>0&&this.inline>0&&(c().util.warn("Specifying forceMenu will ignore any inline actions rendering."),o=[]),0!==a.length){var n=function(a){var o,n,i,r,s,l,c,u,d,p,m,h,g,v,f,b,C,y,k,w,S,x,j,z=(null==a||null===(o=a.data)||void 0===o||null===(n=o.scopedSlots)||void 0===n||null===(i=n.icon())||void 0===i?void 0:i[0])||e("span",{class:["icon",null==a||null===(r=a.componentOptions)||void 0===r||null===(s=r.propsData)||void 0===s?void 0:s.icon]}),N=t.forceTitle?t.menuTitle:"",P=null==a||null===(l=a.componentOptions)||void 0===l||null===(c=l.listeners)||void 0===c?void 0:c.click;return e("NcButton",{class:["action-item action-item--single",null==a||null===(u=a.data)||void 0===u?void 0:u.staticClass,null==a||null===(d=a.data)||void 0===d?void 0:d.class],attrs:{"aria-label":(null==a||null===(p=a.componentOptions)||void 0===p||null===(m=p.propsData)||void 0===m?void 0:m.ariaLabel)||(null==a||null===(h=a.componentOptions)||void 0===h||null===(g=h.children)||void 0===g||null===(v=g[0])||void 0===v?void 0:v.text),title:null==a||null===(f=a.componentOptions)||void 0===f||null===(b=f.propsData)||void 0===b?void 0:b.title},ref:null==a||null===(C=a.data)||void 0===C?void 0:C.ref,props:A({type:t.type||(N?"secondary":"tertiary"),disabled:t.disabled||(null==a||null===(y=a.componentOptions)||void 0===y||null===(k=y.propsData)||void 0===k?void 0:k.disabled)},null==a||null===(w=a.componentOptions)||void 0===w?void 0:w.propsData),directives:[{name:"tooltip",value:null==a||null===(S=a.componentOptions)||void 0===S||null===(x=S.children)||void 0===x||null===(j=x[0])||void 0===j?void 0:j.text,modifiers:{auto:!0}}],on:A({focus:t.onFocus,blur:t.onBlur},!!P&&{click:function(e){P&&P(e)}})},[e("template",{slot:"icon"},[z]),N])},i=function(a){var o,n,i=(null===(o=t.$slots.icon)||void 0===o?void 0:o[0])||(t.defaultIcon?e("span",{class:["icon",t.defaultIcon]}):e("DotsHorizontal",{props:{size:20}}));return e("NcPopover",{ref:"popover",props:{delay:0,handleResize:!0,shown:t.opened,placement:t.placement,boundary:t.boundariesElement,container:t.container,popoverBaseClass:"action-item__popper",setReturnFocus:null===(n=t.$refs.menuButton)||void 0===n?void 0:n.$el},attrs:{delay:0,handleResize:!0,shown:t.opened,placement:t.placement,boundary:t.boundariesElement,container:t.container,popoverBaseClass:"action-item__popper"},on:{show:t.openMenu,"after-show":t.onOpen,hide:t.closeMenu}},[e("NcButton",{class:"action-item__menutoggle",props:{type:t.triggerBtnType,disabled:t.disabled},slot:"trigger",ref:"menuButton",attrs:{"aria-haspopup":"menu","aria-label":t.ariaLabel,"aria-controls":t.opened?t.randomId:null,"aria-expanded":t.opened.toString()},on:{focus:t.onFocus,blur:t.onBlur}},[e("template",{slot:"icon"},[i]),t.menuTitle]),e("div",{class:{open:t.opened},attrs:{tabindex:"-1"},on:{keydown:t.onKeydown,mousemove:t.onMouseFocusAction},ref:"menu"},[e("ul",{attrs:{id:t.randomId,tabindex:"-1",role:"menu"}},[a])])])};if(1===a.length&&1===o.length&&!this.forceMenu)return n(o[0]);if(o.length>0&&this.inline>0){var r=o.slice(0,this.inline),s=a.filter((function(e){return!r.includes(e)}));return e("div",{class:["action-items","action-item--".concat(this.triggerBtnType)]},[].concat(g(r.map(n)),[s.length>0?e("div",{class:["action-item",{"action-item--open":this.opened}]},[i(s)]):null]))}return e("div",{class:["action-item action-item--default-popover","action-item--".concat(this.triggerBtnType),{"action-item--open":this.opened}]},[i(a)])}}};var C=a(3379),y=a.n(C),k=a(7795),w=a.n(k),S=a(569),x=a.n(S),j=a(3565),z=a.n(j),N=a(9216),P=a.n(N),E=a(4589),B=a.n(E),T=a(297),O={};O.styleTagTransform=B(),O.setAttributes=z(),O.insert=x().bind(null,"head"),O.domAPI=w(),O.insertStyleElement=P();y()(T.Z,O);T.Z&&T.Z.locals&&T.Z.locals;var _=a(6),D={};D.styleTagTransform=B(),D.setAttributes=z(),D.insert=x().bind(null,"head"),D.domAPI=w(),D.insertStyleElement=P();y()(_.Z,D);_.Z&&_.Z.locals&&_.Z.locals;var F=a(1900),G=a(5727),I=a.n(G),$=(0,F.Z)(b,undefined,undefined,!1,null,"2f315260",null);"function"==typeof I()&&I()($);const M=$.exports},9479:(e,t,a)=>{"use strict";a.d(t,{default:()=>z});var o=a(5108);function n(e){return n="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},n(e)}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,o)}return a}function r(e){for(var t=1;t{"use strict";a.d(t,{default:()=>E});var o=a(9454),n=a(4505),i=a(1206),r=a(5108);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 l(){l=function(){return e};var e={},t=Object.prototype,a=t.hasOwnProperty,o=Object.defineProperty||function(e,t,a){e[t]=a.value},n="function"==typeof Symbol?Symbol:{},i=n.iterator||"@@iterator",r=n.asyncIterator||"@@asyncIterator",c=n.toStringTag||"@@toStringTag";function u(e,t,a){return Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,a){return e[t]=a}}function d(e,t,a,n){var i=t&&t.prototype instanceof A?t:A,r=Object.create(i.prototype),s=new z(n||[]);return o(r,"_invoke",{value:w(e,a,s)}),r}function p(e,t,a){try{return{type:"normal",arg:e.call(t,a)}}catch(e){return{type:"throw",arg:e}}}e.wrap=d;var m={};function A(){}function h(){}function g(){}var v={};u(v,i,(function(){return this}));var f=Object.getPrototypeOf,b=f&&f(f(N([])));b&&b!==t&&a.call(b,i)&&(v=b);var C=g.prototype=A.prototype=Object.create(v);function y(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(o,i,r,l){var c=p(e[o],e,i);if("throw"!==c.type){var u=c.arg,d=u.value;return d&&"object"==s(d)&&a.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,r,l)}),(function(e){n("throw",e,r,l)})):t.resolve(d).then((function(e){u.value=e,r(u)}),(function(e){return n("throw",e,r,l)}))}l(c.arg)}var i;o(this,"_invoke",{value:function(e,a){function o(){return new t((function(t,o){n(e,a,t,o)}))}return i=i?i.then(o,o):o()}})}function w(e,t,a){var o="suspendedStart";return function(n,i){if("executing"===o)throw new Error("Generator is already running");if("completed"===o){if("throw"===n)throw i;return P()}for(a.method=n,a.arg=i;;){var r=a.delegate;if(r){var s=S(r,a);if(s){if(s===m)continue;return s}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if("suspendedStart"===o)throw o="completed",a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);o="executing";var l=p(e,t,a);if("normal"===l.type){if(o=a.done?"completed":"suspendedYield",l.arg===m)continue;return{value:l.arg,done:a.done}}"throw"===l.type&&(o="completed",a.method="throw",a.arg=l.arg)}}}function S(e,t){var a=t.method,o=e.iterator[a];if(void 0===o)return t.delegate=null,"throw"===a&&e.iterator.return&&(t.method="return",t.arg=void 0,S(e,t),"throw"===t.method)||"return"!==a&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+a+"' method")),m;var n=p(o,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,m;var i=n.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,m):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function x(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function z(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(x,this),this.reset(!0)}function N(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,n=function t(){for(;++o=0;--n){var i=this.tryEntries[n],r=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),l=a.call(i,"finallyLoc");if(s&&l){if(this.prev=0;--o){var n=this.tryEntries[o];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev=0;--t){var a=this.tryEntries[t];if(a.finallyLoc===e)return this.complete(a.completion,a.afterLoc),j(a),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var a=this.tryEntries[t];if(a.tryLoc===e){var o=a.completion;if("throw"===o.type){var n=o.arg;j(a)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,a){return this.delegate={iterator:N(e),resultName:t,nextLoc:a},"next"===this.method&&(this.arg=void 0),m}},e}function c(e,t,a,o,n,i,r){try{var s=e[i](r),l=s.value}catch(e){return void a(e)}s.done?t(l):Promise.resolve(l).then(o,n)}const u={name:"NcPopover",components:{Dropdown:o.Dropdown},props:{popoverBaseClass:{type:String,default:""},focusTrap:{type:Boolean,default:!0},setReturnFocus:{default:void 0,type:[Object,String,Function,Boolean]}},emits:["after-show","after-hide"],beforeDestroy:function(){this.clearFocusTrap()},methods:{useFocusTrap:function(){var e,t=this;return(e=l().mark((function e(){var a,o,r;return l().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.$nextTick();case 2:if(t.focusTrap){e.next=4;break}return e.abrupt("return");case 4:if(r=null===(a=t.$refs.popover)||void 0===a||null===(o=a.$refs.popperContent)||void 0===o?void 0:o.$el){e.next=7;break}return e.abrupt("return");case 7:t.$focusTrap=(0,n.createFocusTrap)(r,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:t.setReturnFocus,trapStack:(0,i.L)()}),t.$focusTrap.activate();case 9:case"end":return e.stop()}}),e)})),function(){var t=this,a=arguments;return new Promise((function(o,n){var i=e.apply(t,a);function r(e){c(i,o,n,r,s,"next",e)}function s(e){c(i,o,n,r,s,"throw",e)}r(void 0)}))})()},clearFocusTrap:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var t;null===(t=this.$focusTrap)||void 0===t||t.deactivate(e),this.$focusTrap=null}catch(e){r.warn(e)}},afterShow:function(){var e=this;this.$nextTick((function(){e.$emit("after-show"),e.useFocusTrap()}))},afterHide:function(){this.$emit("after-hide"),this.clearFocusTrap()}}},d=u;var p=a(3379),m=a.n(p),A=a(7795),h=a.n(A),g=a(569),v=a.n(g),f=a(3565),b=a.n(f),C=a(9216),y=a.n(C),k=a(4589),w=a.n(k),S=a(5783),x={};x.styleTagTransform=w(),x.setAttributes=b(),x.insert=v().bind(null,"head"),x.domAPI=h(),x.insertStyleElement=y();m()(S.Z,x);S.Z&&S.Z.locals&&S.Z.locals;var j=a(1900),z=a(2405),N=a.n(z),P=(0,j.Z)(d,(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 N()&&N()(P);const E=P.exports},336:(e,t,a)=>{"use strict";a.d(t,{default:()=>f});var o=a(9454),n=a(3379),i=a.n(n),r=a(7795),s=a.n(r),l=a(569),c=a.n(l),u=a(3565),d=a.n(u),p=a(9216),m=a.n(p),A=a(4589),h=a.n(A),g=a(8384),v={};v.styleTagTransform=h(),v.setAttributes=d(),v.insert=c().bind(null,"head"),v.domAPI=s(),v.insertStyleElement=m();i()(g.Z,v);g.Z&&g.Z.locals&&g.Z.locals;o.options.themes.tooltip.html=!1,o.options.themes.tooltip.delay={show:500,hide:200},o.options.themes.tooltip.distance=10,o.options.themes.tooltip["arrow-padding"]=3;const f=o.VTooltip},932:(e,t,a)=>{"use strict";a.d(t,{n:()=>r,t:()=>s});var o=a(7931),n=(0,o.getGettextBuilder)().detectLocale();[{locale:"ar",translations:{"{tag} (invisible)":"{tag} (غير مرئي)","{tag} (restricted)":"{tag} (مقيد)",Actions:"الإجراءات",Activities:"النشاطات","Animals & Nature":"الحيوانات والطبيعة","Anything shared with the same group of people will show up here":"أي مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا","Avatar of {displayName}":"صورة {displayName} الرمزية","Avatar of {displayName}, {status}":"صورة {displayName} الرمزية، {status}","Cancel changes":"إلغاء التغييرات","Change title":"تغيير العنوان",Choose:"إختيار","Clear text":"مسح النص",Close:"أغلق","Close modal":"قفل الشرط","Close navigation":"إغلاق المتصفح","Close sidebar":"قفل الشريط الجانبي","Confirm changes":"تأكيد التغييرات",Custom:"مخصص","Edit item":"تعديل عنصر","Error getting related resources":"خطأ في تحصيل مصادر ذات صلة","External documentation for {title}":"الوثائق الخارجية لـ{title}",Favorite:"مفضلة",Flags:"الأعلام","Food & Drink":"الطعام والشراب","Frequently used":"كثيرا ما تستخدم",Global:"عالمي","Go back to the list":"العودة إلى القائمة","Hide password":"إخفاء كلمة السر","Message limit of {count} characters reached":"تم الوصول إلى الحد الأقصى لعدد الأحرف في الرسالة: {count} حرف","More items …":"عناصر أخرى ...",Next:"التالي","No emoji found":"لم يتم العثور على أي رمز تعبيري","No results":"ليس هناك أية نتيجة",Objects:"الأشياء",Open:"فتح",'Open link to "{resourceTitle}"':'فتح رابط إلى "{resourceTitle}"',"Open navigation":"فتح المتصفح","Password is secure":"كلمة السر مُؤمّنة","Pause slideshow":"إيقاف العرض مؤقتًا","People & Body":"الناس والجسم","Pick an emoji":"اختر رمزًا تعبيريًا","Please select a time zone:":"الرجاء تحديد المنطقة الزمنية:",Previous:"السابق","Related resources":"مصادر ذات صلة",Search:"بحث","Search results":"نتائج البحث","Select a tag":"اختر علامة",Settings:"الإعدادات","Settings navigation":"إعدادات المتصفح","Show password":"أعرض كلمة السر","Smileys & Emotion":"الوجوه و الرموز التعبيرية","Start slideshow":"بدء العرض",Submit:"إرسال",Symbols:"الرموز","Travel & Places":"السفر والأماكن","Type to search time zone":"اكتب للبحث عن منطقة زمنية","Unable to search the group":"تعذر البحث في المجموعة","Undo changes":"التراجع عن التغييرات","Write message, @ to mention someone, : for emoji autocompletion …":"اكتب رسالة، @ للإشارة إلى شخص ما، : للإكمال التلقائي للرموز التعبيرية ..."}},{locale:"br",translations:{"{tag} (invisible)":"{tag} (diwelus)","{tag} (restricted)":"{tag} (bevennet)",Actions:"Oberioù",Activities:"Oberiantizoù","Animals & Nature":"Loened & Natur",Choose:"Dibab",Close:"Serriñ",Custom:"Personelañ",Flags:"Bannieloù","Food & Drink":"Boued & Evajoù","Frequently used":"Implijet alies",Next:"Da heul","No emoji found":"Emoji ebet kavet","No results":"Disoc'h ebet",Objects:"Traoù","Pause slideshow":"Arsav an diaporama","People & Body":"Tud & Korf","Pick an emoji":"Choaz un emoji",Previous:"A-raok",Search:"Klask","Search results":"Disoc'hoù an enklask","Select a tag":"Choaz ur c'hlav",Settings:"Arventennoù","Smileys & Emotion":"Smileyioù & Fromoù","Start slideshow":"Kregiñ an diaporama",Symbols:"Arouezioù","Travel & Places":"Beaj & Lec'hioù","Unable to search the group":"Dibosupl eo klask ar strollad"}},{locale:"ca",translations:{"{tag} (invisible)":"{tag} (invisible)","{tag} (restricted)":"{tag} (restringit)",Actions:"Accions",Activities:"Activitats","Animals & Nature":"Animals i natura","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}","Cancel changes":"Cancel·la els canvis","Change title":"Canviar títol",Choose:"Tria","Clear text":"Netejar text",Close:"Tanca","Close modal":"Tancar el mode","Close navigation":"Tanca la navegació","Close sidebar":"Tancar la barra lateral","Confirm changes":"Confirmeu els canvis",Custom:"Personalitzat","Edit item":"Edita l'element","Error getting related resources":"Error obtenint els recursos relacionats","Error parsing svg":"Error en l'anàlisi del svg","External documentation for {title}":"Documentació externa per a {title}",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","Message limit of {count} characters reached":"S'ha arribat al límit de {count} caràcters per missatge","More items …":"Més artícles...",Next:"Següent","No emoji found":"No s'ha trobat cap emoji","No results":"Sense resultats",Objects:"Objectes",Open:"Obrir",'Open link to "{resourceTitle}"':'Obrir enllaç a "{resourceTitle}"',"Open navigation":"Obre la navegació","Password is secure":"Contrasenya segura
","Pause slideshow":"Atura la presentació","People & Body":"Persones i cos","Pick an emoji":"Trieu un emoji","Please select a time zone:":"Seleccioneu una zona horària:",Previous:"Anterior","Related resources":"Recursos relacionats",Search:"Cerca","Search results":"Resultats de cerca","Select a tag":"Seleccioneu una etiqueta",Settings:"Paràmetres","Settings navigation":"Navegació d'opcions","Show password":"Mostrar contrasenya","Smileys & Emotion":"Cares i emocions","Start slideshow":"Inicia la presentació",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_CZ",translations:{"{tag} (invisible)":"{tag} (neviditelné)","{tag} (restricted)":"{tag} (omezené)",Actions:"Akce",Activities:"Aktivity","Animals & Nature":"Zvířata a příroda","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}","Cancel changes":"Zrušit změny","Change title":"Změnit nadpis",Choose:"Zvolit","Clear text":"Čitelný text",Close:"Zavřít","Close modal":"Zavřít dialogové okno","Close navigation":"Zavřít navigaci","Close sidebar":"Zavřít postranní panel","Confirm changes":"Potvrdit změny",Custom:"Uživatelsky určené","Edit item":"Upravit položku","Error getting related resources":"Chyba při získávání souvisejících prostředků","Error parsing svg":"Chyba při zpracovávání svg","External documentation for {title}":"Externí dokumentace k {title}",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","Message limit of {count} characters reached":"Dosaženo limitu počtu ({count}) znaků zprávy","More items …":"Další položky…",Next:"Následující","No emoji found":"Nenalezeno žádné emoji","No results":"Nic nenalezeno",Objects:"Objekty",Open:"Otevřít",'Open link to "{resourceTitle}"':"Otevřít odkaz na „{resourceTitle}“","Open navigation":"Otevřít navigaci","Password is secure":"Heslo je bezpečné","Pause slideshow":"Pozastavit prezentaci","People & Body":"Lidé a tělo","Pick an emoji":"Vybrat emoji","Please select a time zone:":"Vyberte časovou zónu:",Previous:"Předchozí","Related resources":"Související prostředky",Search:"Hledat","Search results":"Výsledky hledání","Select a tag":"Vybrat štítek",Settings:"Nastavení","Settings navigation":"Pohyb po nastavení","Show password":"Zobrazit heslo","Smileys & Emotion":"Úsměvy a emoce","Start slideshow":"Spustit prezentaci",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:"da",translations:{"{tag} (invisible)":"{tag} (usynlig)","{tag} (restricted)":"{tag} (begrænset)",Actions:"Handlinger",Activities:"Aktiviteter","Animals & Nature":"Dyr & Natur","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}","Cancel changes":"Annuller ændringer","Change title":"Ret titel",Choose:"Vælg","Clear text":"Ryd tekst",Close:"Luk","Close modal":"Luk vindue","Close navigation":"Luk navigation","Close sidebar":"Luk sidepanel","Confirm changes":"Bekræft ændringer",Custom:"Brugerdefineret","Edit item":"Rediger emne","Error getting related resources":"Kunne ikke hente tilknyttede data","Error parsing svg":"Fejl ved analysering af svg","External documentation for {title}":"Ekstern dokumentation for {title}",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","Message limit of {count} characters reached":"Begrænsning på {count} tegn er nået","More items …":"Mere ...",Next:"Videre","No emoji found":"Ingen emoji fundet","No results":"Ingen resultater",Objects:"Objekter",Open:"Åbn",'Open link to "{resourceTitle}"':'Åbn link til "{resourceTitle}"',"Open navigation":"Åbn navigation","Password is secure":"Kodeordet er sikkert","Pause slideshow":"Suspender fremvisning","People & Body":"Mennesker & Menneskekroppen","Pick an emoji":"Vælg en emoji","Please select a time zone:":"Vælg venligst en tidszone:",Previous:"Forrige","Related resources":"Relaterede emner",Search:"Søg","Search results":"Søgeresultater","Select a tag":"Vælg et mærke",Settings:"Indstillinger","Settings navigation":"Naviger i indstillinger","Show password":"Vis kodeord","Smileys & Emotion":"Smileys & Emotion","Start slideshow":"Start fremvisning",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)",Actions:"Aktionen",Activities:"Aktivitäten","Animals & Nature":"Tiere & Natur","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}","Cancel changes":"Änderungen verwerfen","Change title":"Titel ändern",Choose:"Auswählen","Clear text":"Klartext",Close:"Schließen","Close modal":"Modal schließen","Close navigation":"Navigation schließen","Close sidebar":"Seitenleiste schließen","Confirm changes":"Änderungen bestätigen",Custom:"Benutzerdefiniert","Edit item":"Objekt bearbeiten","Error getting related resources":"Fehler beim Abrufen verwandter Ressourcen","Error parsing svg":"Fehler beim Einlesen der SVG","External documentation for {title}":"Externe Dokumentation für {title}",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","Message limit of {count} characters reached":"Nachrichtenlimit von {count} Zeichen erreicht","More items …":"Weitere Elemente …",Next:"Weiter","No emoji found":"Kein Emoji gefunden","No results":"Keine Ergebnisse",Objects:"Gegenstände",Open:"Öffnen",'Open link to "{resourceTitle}"':'Link zu "{resourceTitle}" öffnen',"Open navigation":"Navigation öffnen","Password is secure":"Passwort ist sicher","Pause slideshow":"Diashow pausieren","People & Body":"Menschen & Körper","Pick an emoji":"Ein Emoji auswählen","Please select a time zone:":"Bitte wählen Sie eine Zeitzone:",Previous:"Vorherige","Related resources":"Verwandte Ressourcen",Search:"Suche","Search results":"Suchergebnisse","Select a tag":"Schlagwort auswählen",Settings:"Einstellungen","Settings navigation":"Einstellungen für die Navigation","Show password":"Passwort anzeigen","Smileys & Emotion":"Smileys & Emotionen","Start slideshow":"Diashow starten",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)",Actions:"Aktionen",Activities:"Aktivitäten","Animals & Nature":"Tiere & Natur","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}","Cancel changes":"Änderungen verwerfen","Change title":"Titel ändern",Choose:"Auswählen","Clear text":"Klartext",Close:"Schließen","Close modal":"Modal schließen","Close navigation":"Navigation schließen","Close sidebar":"Seitenleiste schließen","Confirm changes":"Änderungen bestätigen",Custom:"Benutzerdefiniert","Edit item":"Objekt bearbeiten","Error getting related resources":"Fehler beim Abrufen verwandter Ressourcen","Error parsing svg":"Fehler beim Einlesen der SVG","External documentation for {title}":"Externe Dokumentation für {title}",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","Message limit of {count} characters reached":"Nachrichtenlimit von {count} Zeichen erreicht","More items …":"Weitere Elemente …",Next:"Weiter","No emoji found":"Kein Emoji gefunden","No results":"Keine Ergebnisse",Objects:"Objekte",Open:"Öffnen",'Open link to "{resourceTitle}"':'Link zu "{resourceTitle}" öffnen',"Open navigation":"Navigation öffnen","Password is secure":"Passwort ist sicher","Pause slideshow":"Diashow pausieren","People & Body":"Menschen & Körper","Pick an emoji":"Ein Emoji auswählen","Please select a time zone:":"Bitte eine Zeitzone auswählen:",Previous:"Vorherige","Related resources":"Verwandte Ressourcen",Search:"Suche","Search results":"Suchergebnisse","Select a tag":"Schlagwort auswählen",Settings:"Einstellungen","Settings navigation":"Einstellungen für die Navigation","Show password":"Passwort anzeigen","Smileys & Emotion":"Smileys & Emotionen","Start slideshow":"Diashow starten",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} (περιορισμένο)",Actions:"Ενέργειες",Activities:"Δραστηριότητες","Animals & Nature":"Ζώα & Φύση","Anything shared with the same group of people will show up here":"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ","Avatar of {displayName}":"Άβαταρ του {displayName}","Avatar of {displayName}, {status}":"Άβαταρ του {displayName}, {status}","Cancel changes":"Ακύρωση αλλαγών","Change title":"Αλλαγή τίτλου",Choose:"Επιλογή","Clear text":"Εκκαθάριση κειμένου",Close:"Κλείσιμο","Close modal":"Βοηθητικό κλείσιμο","Close navigation":"Κλείσιμο πλοήγησης","Close sidebar":"Κλείσιμο πλευρικής μπάρας","Confirm changes":"Επιβεβαίωση αλλαγών",Custom:"Προσαρμογή","Edit item":"Επεξεργασία","Error getting related resources":"Σφάλμα λήψης σχετικών πόρων","Error parsing svg":"Σφάλμα ανάλυσης svg","External documentation for {title}":"Εξωτερική τεκμηρίωση για {title}",Favorite:"Αγαπημένα",Flags:"Σημαίες","Food & Drink":"Φαγητό & Ποτό","Frequently used":"Συχνά χρησιμοποιούμενο",Global:"Καθολικό","Go back to the list":"Επιστροφή στην αρχική λίστα ","Hide password":"Απόκρυψη κωδικού πρόσβασης","Message limit of {count} characters reached":"Συμπληρώθηκε το όριο των {count} χαρακτήρων του μηνύματος","More items …":"Περισσότερα στοιχεία …",Next:"Επόμενο","No emoji found":"Δεν βρέθηκε emoji","No results":"Κανένα αποτέλεσμα",Objects:"Αντικείμενα",Open:"Άνοιγμα",'Open link to "{resourceTitle}"':'Άνοιγμα συνδέσμου στο "{resourceTitle}"',"Open navigation":"Άνοιγμα πλοήγησης","Password is secure":"Ο κωδικός πρόσβασης είναι ασφαλής","Pause slideshow":"Παύση προβολής διαφανειών","People & Body":"Άνθρωποι & Σώμα","Pick an emoji":"Επιλέξτε ένα emoji","Please select a time zone:":"Παρακαλούμε επιλέξτε μια ζώνη ώρας:",Previous:"Προηγούμενο","Related resources":"Σχετικοί πόροι",Search:"Αναζήτηση","Search results":"Αποτελέσματα αναζήτησης","Select a tag":"Επιλογή ετικέτας",Settings:"Ρυθμίσεις","Settings navigation":"Πλοήγηση ρυθμίσεων","Show password":"Εμφάνιση κωδικού πρόσβασης","Smileys & Emotion":"Φατσούλες & Συναίσθημα","Start slideshow":"Έναρξη προβολής διαφανειών",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)",Actions:"Actions",Activities:"Activities","Animals & Nature":"Animals & Nature","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}","Cancel changes":"Cancel changes","Change title":"Change title",Choose:"Choose","Clear text":"Clear text",Close:"Close","Close modal":"Close modal","Close navigation":"Close navigation","Close sidebar":"Close sidebar","Confirm changes":"Confirm changes",Custom:"Custom","Edit item":"Edit item","Error getting related resources":"Error getting related resources","Error parsing svg":"Error parsing svg","External documentation for {title}":"External documentation for {title}",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","Message limit of {count} characters reached":"Message limit of {count} characters reached","More items …":"More items …",Next:"Next","No emoji found":"No emoji found","No results":"No results",Objects:"Objects",Open:"Open",'Open link to "{resourceTitle}"':'Open link to "{resourceTitle}"',"Open navigation":"Open navigation","Password is secure":"Password is secure","Pause slideshow":"Pause slideshow","People & Body":"People & Body","Pick an emoji":"Pick an emoji","Please select a time zone:":"Please select a time zone:",Previous:"Previous","Related resources":"Related resources",Search:"Search","Search results":"Search results","Select a tag":"Select a tag",Settings:"Settings","Settings navigation":"Settings navigation","Show password":"Show password","Smileys & Emotion":"Smileys & Emotion","Start slideshow":"Start slideshow",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)",Actions:"Agoj",Activities:"Aktiveco","Animals & Nature":"Bestoj & Naturo",Choose:"Elektu",Close:"Fermu",Custom:"Propra",Flags:"Flagoj","Food & Drink":"Manĝaĵo & Trinkaĵo","Frequently used":"Ofte uzataj","Message limit of {count} characters reached":"La limo je {count} da literoj atingita",Next:"Sekva","No emoji found":"La emoĝio forestas","No results":"La rezulto forestas",Objects:"Objektoj","Pause slideshow":"Payzi bildprezenton","People & Body":"Homoj & Korpo","Pick an emoji":"Elekti emoĝion ",Previous:"Antaŭa",Search:"Serĉi","Search results":"Serĉrezultoj","Select a tag":"Elektu etikedon",Settings:"Agordo","Settings navigation":"Agorda navigado","Smileys & Emotion":"Ridoj kaj Emocioj","Start slideshow":"Komenci bildprezenton",Symbols:"Signoj","Travel & Places":"Vojaĵoj & Lokoj","Unable to search the group":"Ne eblas serĉi en la grupo","Write message, @ to mention someone …":"Mesaĝi, uzu @ por mencii iun ..."}},{locale:"es",translations:{"{tag} (invisible)":"{tag} (invisible)","{tag} (restricted)":"{tag} (restringido)",Actions:"Acciones",Activities:"Actividades","Animals & Nature":"Animales y naturaleza","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}","Cancel changes":"Cancelar cambios","Change title":"Cambiar título",Choose:"Elegir","Clear text":"Limpiar texto",Close:"Cerrar","Close modal":"Cerrar modal","Close navigation":"Cerrar navegación","Close sidebar":"Cerrar barra lateral","Confirm changes":"Confirmar cambios",Custom:"Personalizado","Edit item":"Editar elemento","Error getting related resources":"Se encontró un error al obtener los recursos relacionados","Error parsing svg":"Error procesando svg","External documentation for {title}":"Documentacion externa de {title}",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","Message limit of {count} characters reached":"El mensaje ha alcanzado el límite de {count} caracteres","More items …":"Más ítems...",Next:"Siguiente","No emoji found":"No hay ningún emoji","No results":" Ningún resultado",Objects:"Objetos",Open:"Abrir",'Open link to "{resourceTitle}"':'Abrir enlace a "{resourceTitle}"',"Open navigation":"Abrir navegación","Password is secure":"La contraseña es segura","Pause slideshow":"Pausar la presentación ","People & Body":"Personas y cuerpos","Pick an emoji":"Elegir un emoji","Please select a time zone:":"Por favor elige un huso de horario:",Previous:"Anterior","Related resources":"Recursos relacionados",Search:"Buscar","Search results":"Resultados de la búsqueda","Select a tag":"Seleccione una etiqueta",Settings:"Ajustes","Settings navigation":"Navegación por ajustes","Show password":"Mostrar contraseña","Smileys & Emotion":"Smileys y emoticonos","Start slideshow":"Iniciar la presentación",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:"eu",translations:{"{tag} (invisible)":"{tag} (ikusezina)","{tag} (restricted)":"{tag} (mugatua)",Actions:"Ekintzak",Activities:"Jarduerak","Animals & Nature":"Animaliak eta Natura","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}","Cancel changes":"Ezeztatu aldaketak","Change title":"Aldatu titulua",Choose:"Aukeratu","Clear text":"Garbitu testua",Close:"Itxi","Close modal":"Itxi modala","Close navigation":"Itxi nabigazioa","Close sidebar":"Itxi albo-barra","Confirm changes":"Baieztatu aldaketak",Custom:"Pertsonalizatua","Edit item":"Editatu elementua","Error getting related resources":"Errorea erlazionatutako baliabideak lortzerakoan","Error parsing svg":"Errore bat gertatu da svg-a analizatzean","External documentation for {title}":"Kanpoko dokumentazioa {title}(r)entzat",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","Message limit of {count} characters reached":"Mezuaren {count} karaketere-limitera heldu zara","More items …":"Elementu gehiago …",Next:"Hurrengoa","No emoji found":"Ez da emojirik aurkitu","No results":"Emaitzarik ez",Objects:"Objektuak",Open:"Ireki",'Open link to "{resourceTitle}"':'Ireki esteka: "{resourceTitle}"',"Open navigation":"Ireki nabigazioa","Password is secure":"Pasahitza segurua da","Pause slideshow":"Pausatu diaporama","People & Body":"Jendea eta gorputza","Pick an emoji":"Hautatu emoji bat","Please select a time zone:":"Mesedez hautatu ordu-zona bat:",Previous:"Aurrekoa","Related resources":"Erlazionatutako baliabideak",Search:"Bilatu","Search results":"Bilaketa emaitzak","Select a tag":"Hautatu etiketa bat",Settings:"Ezarpenak","Settings navigation":"Nabigazio ezarpenak","Show password":"Erakutsi pasahitza","Smileys & Emotion":"Smileyak eta emozioa","Start slideshow":"Hasi diaporama",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:"fi_FI",translations:{"{tag} (invisible)":"{tag} (näkymätön)","{tag} (restricted)":"{tag} (rajoitettu)",Actions:"Toiminnot",Activities:"Aktiviteetit","Animals & Nature":"Eläimet & luonto","Avatar of {displayName}":"Käyttäjän {displayName} avatar","Avatar of {displayName}, {status}":"Käyttäjän {displayName} avatar, {status}","Cancel changes":"Peruuta muutokset",Choose:"Valitse",Close:"Sulje","Close navigation":"Sulje navigaatio","Confirm changes":"Vahvista muutokset",Custom:"Mukautettu","Edit item":"Muokkaa kohdetta","External documentation for {title}":"Ulkoinen dokumentaatio kohteelle {title}",Flags:"Liput","Food & Drink":"Ruoka & juoma","Frequently used":"Usein käytetyt",Global:"Yleinen","Go back to the list":"Siirry takaisin listaan","Message limit of {count} characters reached":"Viestin merkken enimmäisimäärä {count} täynnä ",Next:"Seuraava","No emoji found":"Emojia ei löytynyt","No results":"Ei tuloksia",Objects:"Esineet & asiat","Open navigation":"Avaa navigaatio","Pause slideshow":"Keskeytä diaesitys","People & Body":"Ihmiset & keho","Pick an emoji":"Valitse emoji","Please select a time zone:":"Valitse aikavyöhyke:",Previous:"Edellinen",Search:"Etsi","Search results":"Hakutulokset","Select a tag":"Valitse tagi",Settings:"Asetukset","Settings navigation":"Asetusnavigaatio","Smileys & Emotion":"Hymiöt & tunteet","Start slideshow":"Aloita diaesitys",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, @ to mention someone, : for emoji autocompletion …":"Kirjoita viesti, @ mainitaksesi käyttäjän, : emojin automaattitäydennykseen…"}},{locale:"fr",translations:{"{tag} (invisible)":"{tag} (invisible)","{tag} (restricted)":"{tag} (restreint)",Actions:"Actions",Activities:"Activités","Animals & Nature":"Animaux & Nature","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}","Cancel changes":"Annuler les modifications","Change title":"Modifier le titre",Choose:"Choisir","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","Confirm changes":"Confirmer les modifications",Custom:"Personnalisé","Edit item":"Éditer l'élément","Error getting related resources":"Erreur à la récupération des ressources liées","Error parsing svg":"Erreur d'analyse SVG","External documentation for {title}":"Documentation externe pour {title}",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","Message limit of {count} characters reached":"Limite de messages de {count} caractères atteinte","More items …":"Plus d'éléments...",Next:"Suivant","No emoji found":"Pas d’émoji trouvé","No results":"Aucun résultat",Objects:"Objets",Open:"Ouvrir",'Open link to "{resourceTitle}"':'Ouvrir le lien vers "{resourceTitle}"',"Open navigation":"Ouvrir la navigation","Password is secure":"Le mot de passe est sécurisé","Pause slideshow":"Mettre le diaporama en pause","People & Body":"Personnes & Corps","Pick an emoji":"Choisissez un émoji","Please select a time zone:":"Sélectionnez un fuseau horaire : ",Previous:"Précédent","Related resources":"Ressources liées",Search:"Chercher","Search results":"Résultats de recherche","Select a tag":"Sélectionnez une balise",Settings:"Paramètres","Settings navigation":"Navigation dans les paramètres","Show password":"Afficher le mot de passe","Smileys & Emotion":"Smileys & Émotions","Start slideshow":"Démarrer le diaporama",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:"gl",translations:{"{tag} (invisible)":"{tag} (invisíbel)","{tag} (restricted)":"{tag} (restrinxido)",Actions:"Accións",Activities:"Actividades","Animals & Nature":"Animais e natureza","Cancel changes":"Cancelar os cambios",Choose:"Escoller",Close:"Pechar","Confirm changes":"Confirma os cambios",Custom:"Personalizado","External documentation for {title}":"Documentación externa para {title}",Flags:"Bandeiras","Food & Drink":"Comida e bebida","Frequently used":"Usado con frecuencia","Message limit of {count} characters reached":"Acadouse o límite de {count} caracteres por mensaxe",Next:"Seguinte","No emoji found":"Non se atopou ningún «emoji»","No results":"Sen resultados",Objects:"Obxectos","Pause slideshow":"Pausar o diaporama","People & Body":"Persoas e corpo","Pick an emoji":"Escolla un «emoji»",Previous:"Anterir",Search:"Buscar","Search results":"Resultados da busca","Select a tag":"Seleccione unha etiqueta",Settings:"Axustes","Settings navigation":"Navegación polos axustes","Smileys & Emotion":"Sorrisos e emocións","Start slideshow":"Iniciar o diaporama",Submit:"Enviar",Symbols:"Símbolos","Travel & Places":"Viaxes e lugares","Unable to search the group":"Non foi posíbel buscar o grupo","Write message, @ to mention someone …":"Escriba a mensaxe, @ para mencionar a alguén…"}},{locale:"he",translations:{"{tag} (invisible)":"{tag} (נסתר)","{tag} (restricted)":"{tag} (מוגבל)",Actions:"פעולות",Activities:"פעילויות","Animals & Nature":"חיות וטבע",Choose:"בחירה",Close:"סגירה",Custom:"בהתאמה אישית",Flags:"דגלים","Food & Drink":"מזון ומשקאות","Frequently used":"בשימוש תדיר",Next:"הבא","No emoji found":"לא נמצא אמוג׳י","No results":"אין תוצאות",Objects:"חפצים","Pause slideshow":"השהיית מצגת","People & Body":"אנשים וגוף","Pick an emoji":"נא לבחור אמוג׳י",Previous:"הקודם",Search:"חיפוש","Search results":"תוצאות חיפוש","Select a tag":"בחירת תגית",Settings:"הגדרות","Smileys & Emotion":"חייכנים ורגשונים","Start slideshow":"התחלת המצגת",Symbols:"סמלים","Travel & Places":"טיולים ומקומות","Unable to search the group":"לא ניתן לחפש בקבוצה"}},{locale:"hu_HU",translations:{"{tag} (invisible)":"{tag} (láthatatlan)","{tag} (restricted)":"{tag} (korlátozott)",Actions:"Műveletek",Activities:"Tevékenységek","Animals & Nature":"Állatok és természet","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}","Cancel changes":"Változtatások elvetése","Change title":"Cím megváltoztatása",Choose:"Válassszon","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","Confirm changes":"Változtatások megerősítése",Custom:"Egyéni","Edit item":"Elem szerkesztése","Error getting related resources":"Hiba a kapcsolódó erőforrások lekérésekor","Error parsing svg":"Hiba az SVG feldolgozásakor","External documentation for {title}":"Külső dokumentáció ehhez: {title}",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","Message limit of {count} characters reached":"{count} karakteres üzenetkorlát elérve","More items …":"További elemek...",Next:"Következő","No emoji found":"Nem található emodzsi","No results":"Nincs találat",Objects:"Tárgyak",Open:"Megnyitás",'Open link to "{resourceTitle}"':"A(z) „{resourceTitle}” hivatkozásának megnyitása","Open navigation":"Navigáció megnyitása","Password is secure":"A jelszó biztonságos","Pause slideshow":"Diavetítés szüneteltetése","People & Body":"Emberek és test","Pick an emoji":"Válasszon egy emodzsit","Please select a time zone:":"Válasszon időzónát:",Previous:"Előző","Related resources":"Kapcsolódó erőforrások",Search:"Keresés","Search results":"Találatok","Select a tag":"Válasszon címkét",Settings:"Beállítások","Settings navigation":"Navigáció a beállításokban","Show password":"Jelszó megjelenítése","Smileys & Emotion":"Mosolyok és érzelmek","Start slideshow":"Diavetítés indítása",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:"is",translations:{"{tag} (invisible)":"{tag} (ósýnilegt)","{tag} (restricted)":"{tag} (takmarkað)",Actions:"Aðgerðir",Activities:"Aðgerðir","Animals & Nature":"Dýr og náttúra",Choose:"Velja",Close:"Loka",Custom:"Sérsniðið",Flags:"Flögg","Food & Drink":"Matur og drykkur","Frequently used":"Oftast notað",Next:"Næsta","No emoji found":"Ekkert tjáningartákn fannst","No results":"Engar niðurstöður",Objects:"Hlutir","Pause slideshow":"Gera hlé á skyggnusýningu","People & Body":"Fólk og líkami","Pick an emoji":"Veldu tjáningartákn",Previous:"Fyrri",Search:"Leita","Search results":"Leitarniðurstöður","Select a tag":"Veldu merki",Settings:"Stillingar","Smileys & Emotion":"Broskallar og tilfinningar","Start slideshow":"Byrja skyggnusýningu",Symbols:"Tákn","Travel & Places":"Staðir og ferðalög","Unable to search the group":"Get ekki leitað í hópnum"}},{locale:"it",translations:{"{tag} (invisible)":"{tag} (invisibile)","{tag} (restricted)":"{tag} (limitato)",Actions:"Azioni",Activities:"Attività","Animals & Nature":"Animali e natura","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}","Cancel changes":"Annulla modifiche","Change title":"Modifica il titolo",Choose:"Scegli","Clear text":"Cancella il testo",Close:"Chiudi","Close modal":"Chiudi il messaggio modale","Close navigation":"Chiudi la navigazione","Close sidebar":"Chiudi la barra laterale","Confirm changes":"Conferma modifiche",Custom:"Personalizzato","Edit item":"Modifica l'elemento","Error getting related resources":"Errore nell'ottenere risorse correlate","Error parsing svg":"Errore nell'analizzare l'svg","External documentation for {title}":"Documentazione esterna per {title}",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","Message limit of {count} characters reached":"Limite dei messaggi di {count} caratteri raggiunto","More items …":"Più elementi ...",Next:"Successivo","No emoji found":"Nessun emoji trovato","No results":"Nessun risultato",Objects:"Oggetti",Open:"Apri",'Open link to "{resourceTitle}"':'Apri il link a "{resourceTitle}"',"Open navigation":"Apri la navigazione","Password is secure":"La password è sicura","Pause slideshow":"Presentazione in pausa","People & Body":"Persone e corpo","Pick an emoji":"Scegli un emoji","Please select a time zone:":"Si prega di selezionare un fuso orario:",Previous:"Precedente","Related resources":"Risorse correlate",Search:"Cerca","Search results":"Risultati di ricerca","Select a tag":"Seleziona un'etichetta",Settings:"Impostazioni","Settings navigation":"Navigazione delle impostazioni","Show password":"Mostra la password","Smileys & Emotion":"Faccine ed emozioni","Start slideshow":"Avvia presentazione",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_JP",translations:{"{tag} (invisible)":"{タグ} (不可視)","{tag} (restricted)":"{タグ} (制限付)",Actions:"操作",Activities:"アクティビティ","Animals & Nature":"動物と自然","Anything shared with the same group of people will show up here":"同じグループで共有しているものは、全てここに表示されます","Avatar of {displayName}":"{displayName} のアバター","Avatar of {displayName}, {status}":"{displayName}, {status} のアバター","Cancel changes":"変更をキャンセル","Change title":"タイトルを変更",Choose:"選択","Clear text":"テキストをクリア",Close:"閉じる","Close modal":"モーダルを閉じる","Close navigation":"ナビゲーションを閉じる","Close sidebar":"サイドバーを閉じる","Confirm changes":"変更を承認",Custom:"カスタム","Edit item":"編集","Error getting related resources":"関連リソースの取得エラー","Error parsing svg":"svgの解析エラー","External documentation for {title}":"{title} のための添付文書",Favorite:"お気に入り",Flags:"国旗","Food & Drink":"食べ物と飲み物","Frequently used":"よく使うもの",Global:"全体","Go back to the list":"リストに戻る","Hide password":"パスワードを非表示","Message limit of {count} characters reached":"{count} 文字のメッセージ上限に達しています","More items …":"他のアイテム",Next:"次","No emoji found":"絵文字が見つかりません","No results":"なし",Objects:"物",Open:"開く",'Open link to "{resourceTitle}"':'"{resourceTitle}"のリンクを開く',"Open navigation":"ナビゲーションを開く","Password is secure":"パスワードは保護されています","Pause slideshow":"スライドショーを一時停止","People & Body":"様々な人と体の部位","Pick an emoji":"絵文字を選択","Please select a time zone:":"タイムゾーンを選んで下さい:",Previous:"前","Related resources":"関連リソース",Search:"検索","Search results":"検索結果","Select a tag":"タグを選択",Settings:"設定","Settings navigation":"ナビゲーション設定","Show password":"パスワードを表示","Smileys & Emotion":"感情表現","Start slideshow":"スライドショーを開始",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)",Actions:"Veiksmai",Activities:"Veiklos","Animals & Nature":"Gyvūnai ir gamta",Choose:"Pasirinkti",Close:"Užverti",Custom:"Tinkinti","External documentation for {title}":"Išorinė {title} dokumentacija",Flags:"Vėliavos","Food & Drink":"Maistas ir gėrimai","Frequently used":"Dažniausiai naudoti","Message limit of {count} characters reached":"Pasiekta {count} simbolių žinutės riba",Next:"Kitas","No emoji found":"Nerasta jaustukų","No results":"Nėra rezultatų",Objects:"Objektai","Pause slideshow":"Pristabdyti skaidrių rodymą","People & Body":"Žmonės ir kūnas","Pick an emoji":"Pasirinkti jaustuką",Previous:"Ankstesnis",Search:"Ieškoti","Search results":"Paieškos rezultatai","Select a tag":"Pasirinkti žymę",Settings:"Nustatymai","Settings navigation":"Naršymas nustatymuose","Smileys & Emotion":"Šypsenos ir emocijos","Start slideshow":"Pradėti skaidrių rodymą",Submit:"Pateikti",Symbols:"Simboliai","Travel & Places":"Kelionės ir vietos","Unable to search the group":"Nepavyko atlikti paiešką grupėje","Write message, @ to mention someone …":"Rašykite žinutę, naudokite @ norėdami kažką paminėti…"}},{locale:"lv",translations:{"{tag} (invisible)":"{tag} (neredzams)","{tag} (restricted)":"{tag} (ierobežots)",Choose:"Izvēlēties",Close:"Aizvērt",Next:"Nākamais","No results":"Nav rezultātu","Pause slideshow":"Pauzēt slaidrādi",Previous:"Iepriekšējais","Select a tag":"Izvēlēties birku",Settings:"Iestatījumi","Start slideshow":"Sākt slaidrādi"}},{locale:"mk",translations:{"{tag} (invisible)":"{tag} (невидливо)","{tag} (restricted)":"{tag} (ограничено)",Actions:"Акции",Activities:"Активности","Animals & Nature":"Животни & Природа","Avatar of {displayName}":"Аватар на {displayName}","Avatar of {displayName}, {status}":"Аватар на {displayName}, {status}","Cancel changes":"Откажи ги промените","Change title":"Промени наслов",Choose:"Избери",Close:"Затвори","Close modal":"Затвори модал","Close navigation":"Затвори навигација","Confirm changes":"Потврди ги промените",Custom:"Прилагодени","Edit item":"Уреди","External documentation for {title}":"Надворешна документација за {title}",Favorite:"Фаворити",Flags:"Знамиња","Food & Drink":"Храна & Пијалоци","Frequently used":"Најчесто користени",Global:"Глобално","Go back to the list":"Врати се на листата",items:"ставки","Message limit of {count} characters reached":"Ограничувањето на должината на пораката од {count} карактери е надминато","More {dashboardItemType} …":"Повеќе {dashboardItemType} …",Next:"Следно","No emoji found":"Не се пронајдени емотикони","No results":"Нема резултати",Objects:"Објекти",Open:"Отвори","Open navigation":"Отвори навигација","Pause slideshow":"Пузирај слајдшоу","People & Body":"Луѓе & Тело","Pick an emoji":"Избери емотикон","Please select a time zone:":"Изберете временска зона:",Previous:"Предходно",Search:"Барај","Search results":"Резултати од барувањето","Select a tag":"Избери ознака",Settings:"Параметри","Settings navigation":"Параметри за навигација","Smileys & Emotion":"Смешковци & Емотикони","Start slideshow":"Стартувај слајдшоу",Submit:"Испрати",Symbols:"Симболи","Travel & Places":"Патувања & Места","Type to search time zone":"Напишете за да пребарате временска зона","Unable to search the group":"Неможе да се принајде групата","Undo changes":"Врати ги промените","Write message, @ to mention someone, : for emoji autocompletion …":"Напиши порака, @ за да спомнете некого, : за емотинони автоатско комплетирање ..."}},{locale:"my",translations:{"{tag} (invisible)":"{tag} (ကွယ်ဝှက်ထား)","{tag} (restricted)":"{tag} (ကန့်သတ်)",Actions:"လုပ်ဆောင်ချက်များ",Activities:"ပြုလုပ်ဆောင်တာများ","Animals & Nature":"တိရစ္ဆာန်များနှင့် သဘာဝ","Avatar of {displayName}":"{displayName} ၏ ကိုယ်ပွား","Cancel changes":"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်",Choose:"ရွေးချယ်ရန်",Close:"ပိတ်ရန်","Confirm changes":"ပြောင်းလဲမှုများ အတည်ပြုရန်",Custom:"အလိုကျချိန်ညှိမှု","External documentation for {title}":"{title} အတွက် ပြင်ပ စာရွက်စာတမ်း",Flags:"အလံများ","Food & Drink":"အစားအသောက်","Frequently used":"မကြာခဏအသုံးပြုသော",Global:"ကမ္ဘာလုံးဆိုင်ရာ","Message limit of {count} characters reached":"ကန့်သတ် စာလုံးရေ {count} လုံး ပြည့်ပါပြီ",Next:"နောက်သို့ဆက်ရန်","No emoji found":"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ","No results":"ရလဒ်မရှိပါ",Objects:"အရာဝတ္ထုများ","Pause slideshow":"စလိုက်ရှိုး ခေတ္တရပ်ရန်","People & Body":"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်","Pick an emoji":"အီမိုဂျီရွေးရန်","Please select a time zone:":"ဒေသစံတော်ချိန် ရွေးချယ်ပေးပါ",Previous:"ယခင်",Search:"ရှာဖွေရန်","Search results":"ရှာဖွေမှု ရလဒ်များ","Select a tag":"tag ရွေးချယ်ရန်",Settings:"ချိန်ညှိချက်များ","Settings navigation":"ချိန်ညှိချက်အညွှန်း","Smileys & Emotion":"စမိုင်လီများနှင့် အီမိုရှင်း","Start slideshow":"စလိုက်ရှိုးအား စတင်ရန်",Submit:"တင်သွင်းရန်",Symbols:"သင်္ကေတများ","Travel & Places":"ခရီးသွားလာခြင်းနှင့် နေရာများ","Type to search time zone":"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ","Unable to search the group":"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ","Write message, @ to mention someone …":"စာရေးသားရန်၊ တစ်စုံတစ်ဦးအား @ အသုံးပြု ရည်ညွှန်းရန်..."}},{locale:"nb_NO",translations:{"{tag} (invisible)":"{tag} (usynlig)","{tag} (restricted)":"{tag} (beskyttet)",Actions:"Handlinger",Activities:"Aktiviteter","Animals & Nature":"Dyr og natur","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}","Cancel changes":"Avbryt endringer","Change title":"Endre tittel",Choose:"Velg","Clear text":"Fjern tekst",Close:"Lukk","Close modal":"Lukk modal","Close navigation":"Lukk navigasjon","Close sidebar":"Lukk sidepanel","Confirm changes":"Bekreft endringer",Custom:"Tilpasset","Edit item":"Rediger","Error getting related resources":"Feil ved henting av relaterte ressurser","Error parsing svg":"Feil ved parsing av svg","External documentation for {title}":"Ekstern dokumentasjon for {title}",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","Message limit of {count} characters reached":"Karakter begrensing {count} nådd i melding","More items …":"Flere gjenstander...",Next:"Neste","No emoji found":"Fant ingen emoji","No results":"Ingen resultater",Objects:"Objekter",Open:"Åpne",'Open link to "{resourceTitle}"':'Åpne link til "{resourceTitle}"',"Open navigation":"Åpne navigasjon","Password is secure":"Passordet er sikkert","Pause slideshow":"Pause lysbildefremvisning","People & Body":"Mennesker og kropp","Pick an emoji":"Velg en emoji","Please select a time zone:":"Vennligst velg tidssone",Previous:"Forrige","Related resources":"Relaterte ressurser",Search:"Søk","Search results":"Søkeresultater","Select a tag":"Velg en merkelapp",Settings:"Innstillinger","Settings navigation":"Navigasjonsinstillinger","Show password":"Vis passord","Smileys & Emotion":"Smilefjes og følelser","Start slideshow":"Start lysbildefremvisning",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:"nl",translations:{"{tag} (invisible)":"{tag} (onzichtbaar)","{tag} (restricted)":"{tag} (beperkt)",Actions:"Acties",Activities:"Activiteiten","Animals & Nature":"Dieren & Natuur","Avatar of {displayName}":"Avatar van {displayName}","Avatar of {displayName}, {status}":"Avatar van {displayName}, {status}","Cancel changes":"Wijzigingen annuleren",Choose:"Kies",Close:"Sluiten","Close navigation":"Navigatie sluiten","Confirm changes":"Wijzigingen bevestigen",Custom:"Aangepast","Edit item":"Item bewerken","External documentation for {title}":"Externe documentatie voor {title}",Flags:"Vlaggen","Food & Drink":"Eten & Drinken","Frequently used":"Vaak gebruikt",Global:"Globaal","Go back to the list":"Ga terug naar de lijst","Message limit of {count} characters reached":"Berichtlimiet van {count} karakters bereikt",Next:"Volgende","No emoji found":"Geen emoji gevonden","No results":"Geen resultaten",Objects:"Objecten","Open navigation":"Navigatie openen","Pause slideshow":"Pauzeer diavoorstelling","People & Body":"Mensen & Lichaam","Pick an emoji":"Kies een emoji","Please select a time zone:":"Selecteer een tijdzone:",Previous:"Vorige",Search:"Zoeken","Search results":"Zoekresultaten","Select a tag":"Selecteer een label",Settings:"Instellingen","Settings navigation":"Instellingen navigatie","Smileys & Emotion":"Smileys & Emotie","Start slideshow":"Start diavoorstelling",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, @ to mention someone, : for emoji autocompletion …":"Schrijf bericht, @ om iemand te noemen, : voor emoji auto-aanvullen ..."}},{locale:"oc",translations:{"{tag} (invisible)":"{tag} (invisible)","{tag} (restricted)":"{tag} (limit)",Actions:"Accions",Choose:"Causir",Close:"Tampar",Next:"Seguent","No results":"Cap de resultat","Pause slideshow":"Metre en pausa lo diaporama",Previous:"Precedent","Select a tag":"Seleccionar una etiqueta",Settings:"Paramètres","Start slideshow":"Lançar lo diaporama"}},{locale:"pl",translations:{"{tag} (invisible)":"{tag} (niewidoczna)","{tag} (restricted)":"{tag} (ograniczona)",Actions:"Działania",Activities:"Aktywność","Animals & Nature":"Zwierzęta i natura","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}","Cancel changes":"Anuluj zmiany","Change title":"Zmień tytuł",Choose:"Wybierz","Clear text":"Wyczyść tekst",Close:"Zamknij","Close modal":"Zamknij modal","Close navigation":"Zamknij nawigację","Close sidebar":"Zamknij pasek boczny","Confirm changes":"Potwierdź zmiany",Custom:"Zwyczajne","Edit item":"Edytuj element","Error getting related resources":"Błąd podczas pobierania powiązanych zasobów","Error parsing svg":"Błąd podczas analizowania svg","External documentation for {title}":"Dokumentacja zewnętrzna dla {title}",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","Message limit of {count} characters reached":"Przekroczono limit wiadomości wynoszący {count} znaków","More items …":"Więcej pozycji…",Next:"Następny","No emoji found":"Nie znaleziono emoji","No results":"Brak wyników",Objects:"Obiekty",Open:"Otwórz",'Open link to "{resourceTitle}"':'Otwórz link do "{resourceTitle}"',"Open navigation":"Otwórz nawigację","Password is secure":"Hasło jest bezpieczne","Pause slideshow":"Wstrzymaj pokaz slajdów","People & Body":"Ludzie i ciało","Pick an emoji":"Wybierz emoji","Please select a time zone:":"Wybierz strefę czasową:",Previous:"Poprzedni","Related resources":"Powiązane zasoby",Search:"Szukaj","Search results":"Wyniki wyszukiwania","Select a tag":"Wybierz etykietę",Settings:"Ustawienia","Settings navigation":"Ustawienia nawigacji","Show password":"Pokaż hasło","Smileys & Emotion":"Buźki i emotikony","Start slideshow":"Rozpocznij pokaz slajdów",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:"pt_BR",translations:{"{tag} (invisible)":"{tag} (invisível)","{tag} (restricted)":"{tag} (restrito) ",Actions:"Ações",Activities:"Atividades","Animals & Nature":"Animais & Natureza","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}","Cancel changes":"Cancelar alterações","Change title":"Alterar título",Choose:"Escolher","Clear text":"Limpar texto",Close:"Fechar","Close modal":"Fechar modal","Close navigation":"Fechar navegação","Close sidebar":"Fechar barra lateral","Confirm changes":"Confirmar alterações",Custom:"Personalizado","Edit item":"Editar item","Error getting related resources":"Erro ao obter recursos relacionados","Error parsing svg":"Erro ao analisar svg","External documentation for {title}":"Documentação externa para {title}",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","Message limit of {count} characters reached":"Limite de mensagem de {count} caracteres atingido","More items …":"Mais itens …",Next:"Próximo","No emoji found":"Nenhum emoji encontrado","No results":"Sem resultados",Objects:"Objetos",Open:"Aberto",'Open link to "{resourceTitle}"':'Abrir link para "{resourceTitle}"',"Open navigation":"Abrir navegação","Password is secure":"A senha é segura","Pause slideshow":"Pausar apresentação de slides","People & Body":"Pessoas & Corpo","Pick an emoji":"Escolha um emoji","Please select a time zone:":"Selecione um fuso horário: ",Previous:"Anterior","Related resources":"Recursos relacionados",Search:"Pesquisar","Search results":"Resultados da pesquisa","Select a tag":"Selecionar uma tag",Settings:"Configurações","Settings navigation":"Navegação de configurações","Show password":"Mostrar senha","Smileys & Emotion":"Smiles & Emoções","Start slideshow":"Iniciar apresentação de slides",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)",Actions:"Ações",Choose:"Escolher",Close:"Fechar",Next:"Seguinte","No results":"Sem resultados","Pause slideshow":"Pausar diaporama",Previous:"Anterior","Select a tag":"Selecionar uma etiqueta",Settings:"Definições","Start slideshow":"Iniciar diaporama","Unable to search the group":"Não é possível pesquisar o grupo"}},{locale:"ro",translations:{"{tag} (invisible)":"{tag} (invizibil)","{tag} (restricted)":"{tag} (restricționat)",Actions:"Acțiuni",Activities:"Activități","Animals & Nature":"Animale și natură","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}","Cancel changes":"Anulează modificările","Change title":"Modificați titlul",Choose:"Alegeți","Clear text":"Șterge textul",Close:"Închideți","Close modal":"Închideți modulul","Close navigation":"Închideți navigarea","Close sidebar":"Închide bara laterală","Confirm changes":"Confirmați modificările",Custom:"Personalizat","Edit item":"Editați elementul","Error getting related resources":" Eroare la returnarea resurselor legate","Error parsing svg":"Eroare de analizare a svg","External documentation for {title}":"Documentație externă pentru {title}",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","Message limit of {count} characters reached":"Limita mesajului de {count} caractere a fost atinsă","More items …":"Mai multe articole ...",Next:"Următorul","No emoji found":"Nu s-a găsit niciun emoji","No results":"Nu există rezultate",Objects:"Obiecte",Open:"Deschideți",'Open link to "{resourceTitle}"':'Deschide legătura la "{resourceTitle}"',"Open navigation":"Deschideți navigația","Password is secure":"Parola este sigură","Pause slideshow":"Pauză prezentare de diapozitive","People & Body":"Oameni și corp","Pick an emoji":"Alege un emoji","Please select a time zone:":"Vă rugăm să selectați un fus orar:",Previous:"Anterior","Related resources":"Resurse legate",Search:"Căutare","Search results":"Rezultatele căutării","Select a tag":"Selectați o etichetă",Settings:"Setări","Settings navigation":"Navigare setări","Show password":"Arată parola","Smileys & Emotion":"Zâmbete și emoții","Start slideshow":"Începeți prezentarea de diapozitive",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} (ограниченное)",Actions:"Действия ",Activities:"События","Animals & Nature":"Животные и природа ","Avatar of {displayName}":"Аватар {displayName}","Avatar of {displayName}, {status}":"Фотография {displayName}, {status}","Cancel changes":"Отменить изменения",Choose:"Выберите",Close:"Закрыть","Close modal":"Закрыть модальное окно","Close navigation":"Закрыть навигацию","Confirm changes":"Подтвердить изменения",Custom:"Пользовательское","Edit item":"Изменить элемент","External documentation for {title}":"Внешняя документация для {title}",Flags:"Флаги","Food & Drink":"Еда, напиток","Frequently used":"Часто используемый",Global:"Глобальный","Go back to the list":"Вернуться к списку",items:"элементов","Message limit of {count} characters reached":"Достигнуто ограничение на количество символов в {count}","More {dashboardItemType} …":"Больше {dashboardItemType} …",Next:"Следующее","No emoji found":"Эмодзи не найдено","No results":"Результаты отсуствуют",Objects:"Объекты",Open:"Открыть","Open navigation":"Открыть навигацию","Pause slideshow":"Приостановить показ слйдов","People & Body":"Люди и тело","Pick an emoji":"Выберите эмодзи","Please select a time zone:":"Пожалуйста, выберите часовой пояс:",Previous:"Предыдущее",Search:"Поиск","Search results":"Результаты поиска","Select a tag":"Выберите метку",Settings:"Параметры","Settings navigation":"Навигация по настройкам","Smileys & Emotion":"Смайлики и эмоции","Start slideshow":"Начать показ слайдов",Submit:"Утвердить",Symbols:"Символы","Travel & Places":"Путешествия и места","Type to search time zone":"Введите для поиска часового пояса","Unable to search the group":"Невозможно найти группу","Undo changes":"Отменить изменения","Write message, @ to mention someone, : for emoji autocompletion …":"Напишите сообщение, @ - чтобы упомянуть кого-то, : - для автозаполнения эмодзи …"}},{locale:"sk_SK",translations:{"{tag} (invisible)":"{tag} (neviditeľný)","{tag} (restricted)":"{tag} (obmedzený)",Actions:"Akcie",Activities:"Aktivity","Animals & Nature":"Zvieratá a príroda","Avatar of {displayName}":"Avatar {displayName}","Avatar of {displayName}, {status}":"Avatar {displayName}, {status}","Cancel changes":"Zrušiť zmeny",Choose:"Vybrať",Close:"Zatvoriť","Close navigation":"Zavrieť navigáciu","Confirm changes":"Potvrdiť zmeny",Custom:"Zvyk","Edit item":"Upraviť položku","External documentation for {title}":"Externá dokumentácia pre {title}",Flags:"Vlajky","Food & Drink":"Jedlo a nápoje","Frequently used":"Často používané",Global:"Globálne","Go back to the list":"Naspäť na zoznam","Message limit of {count} characters reached":"Limit správy na {count} znakov dosiahnutý",Next:"Ďalší","No emoji found":"Nenašli sa žiadne emodži","No results":"Žiadne výsledky",Objects:"Objekty","Open navigation":"Otvoriť navigáciu","Pause slideshow":"Pozastaviť prezentáciu","People & Body":"Ľudia a telo","Pick an emoji":"Vyberte si emodži","Please select a time zone:":"Prosím vyberte časovú zónu:",Previous:"Predchádzajúci",Search:"Hľadať","Search results":"Výsledky vyhľadávania","Select a tag":"Vybrať štítok",Settings:"Nastavenia","Settings navigation":"Navigácia v nastaveniach","Smileys & Emotion":"Smajlíky a emócie","Start slideshow":"Začať prezentáciu",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, @ to mention someone, : for emoji autocompletion …":"Napíšte správu, @ ak chcete niekoho spomenúť, : pre automatické dopĺňanie emotikonov…"}},{locale:"sl",translations:{"{tag} (invisible)":"{tag} (nevidno)","{tag} (restricted)":"{tag} (omejeno)",Actions:"Dejanja",Activities:"Dejavnosti","Animals & Nature":"Živali in Narava","Avatar of {displayName}":"Podoba {displayName}","Avatar of {displayName}, {status}":"Prikazna slika {displayName}, {status}","Cancel changes":"Prekliči spremembe","Change title":"Spremeni naziv",Choose:"Izbor","Clear text":"Počisti besedilo",Close:"Zapri","Close modal":"Zapri pojavno okno","Close navigation":"Zapri krmarjenje","Close sidebar":"Zapri stransko vrstico","Confirm changes":"Potrdi spremembe",Custom:"Po meri","Edit item":"Uredi predmet","Error getting related resources":"Napaka pridobivanja povezanih virov","External documentation for {title}":"Zunanja dokumentacija za {title}",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","Message limit of {count} characters reached":"Dosežena omejitev {count} znakov na sporočilo.","More items …":"Več predmetov ...",Next:"Naslednji","No emoji found":"Ni najdenih izraznih ikon","No results":"Ni zadetkov",Objects:"Predmeti",Open:"Odpri",'Open link to "{resourceTitle}"':"Odpri povezavo do »{resourceTitle}«","Open navigation":"Odpri krmarjenje","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","Related resources":"Povezani viri",Search:"Iskanje","Search results":"Zadetki iskanja","Select a tag":"Izbor oznake",Settings:"Nastavitve","Settings navigation":"Krmarjenje nastavitev","Show password":"Pokaži geslo","Smileys & Emotion":"Izrazne ikone","Start slideshow":"Začni predstavitev",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, @ to mention someone, : for emoji autocompletion …":"Napišite sporočilo, za omembo pred ime postavite@, začnite z : za vstavljanje izraznih ikon …"}},{locale:"sr",translations:{"{tag} (invisible)":"{tag} (nevidljivo)","{tag} (restricted)":"{tag} (ograničeno)",Actions:"Radnje",Activities:"Aktivnosti","Animals & Nature":"Životinje i Priroda","Avatar of {displayName}":"Avatar za {displayName}","Avatar of {displayName}, {status}":"Avatar za {displayName}, {status}","Cancel changes":"Otkaži izmene","Change title":"Izmeni naziv",Choose:"Изаберите",Close:"Затвори","Close modal":"Zatvori modal","Close navigation":"Zatvori navigaciju","Close sidebar":"Zatvori bočnu traku","Confirm changes":"Potvrdite promene",Custom:"Po meri","Edit item":"Uredi stavku","External documentation for {title}":"Eksterna dokumentacija za {title}",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",items:"stavke","Message limit of {count} characters reached":"Dostignuto je ograničenje za poruke od {count} znakova","More {dashboardItemType} …":"Više {dashboardItemType} …",Next:"Следеће","No emoji found":"Nije pronađen nijedan emodži","No results":"Нема резултата",Objects:"Objekti",Open:"Otvori","Open navigation":"Otvori navigaciju","Pause slideshow":"Паузирај слајд шоу","People & Body":"Ljudi i Telo","Pick an emoji":"Izaberi emodži","Please select a time zone:":"Molimo izaberite vremensku zonu:",Previous:"Претходно",Search:"Pretraži","Search results":"Rezultati pretrage","Select a tag":"Изаберите ознаку",Settings:"Поставке","Settings navigation":"Navigacija u podešavanjima","Smileys & Emotion":"Smajli i Emocije","Start slideshow":"Покрени слајд шоу",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, @ to mention someone, : for emoji autocompletion …":"Napišite poruku, @ da pomenete nekoga, : za automatsko dovršavanje emodžija…"}},{locale:"sv",translations:{"{tag} (invisible)":"{tag} (osynlig)","{tag} (restricted)":"{tag} (begränsad)",Actions:"Åtgärder",Activities:"Aktiviteter","Animals & Nature":"Djur & Natur","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}","Cancel changes":"Avbryt ändringar","Change title":"Ändra titel",Choose:"Välj","Clear text":"Ta bort text",Close:"Stäng","Close modal":"Stäng modal","Close navigation":"Stäng navigering","Close sidebar":"Stäng sidopanel","Confirm changes":"Bekräfta ändringar",Custom:"Anpassad","Edit item":"Ändra","Error getting related resources":"Problem att hämta relaterade resurser","Error parsing svg":"Fel vid inläsning av svg","External documentation for {title}":"Extern dokumentation för {title}",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","Message limit of {count} characters reached":"Meddelandegräns {count} tecken används","More items …":"Fler objekt",Next:"Nästa","No emoji found":"Hittade inga emojis","No results":"Inga resultat",Objects:"Objekt",Open:"Öppna",'Open link to "{resourceTitle}"':'Öppna länk till "{resourceTitle}"',"Open navigation":"Öppna navigering","Password is secure":"Lössenordet är säkert","Pause slideshow":"Pausa bildspelet","People & Body":"Kropp & Själ","Pick an emoji":"Välj en emoji","Please select a time zone:":"Välj tidszon:",Previous:"Föregående","Related resources":"Relaterade resurser",Search:"Sök","Search results":"Sökresultat","Select a tag":"Välj en tag",Settings:"Inställningar","Settings navigation":"Inställningsmeny","Show password":"Visa lössenordet","Smileys & Emotion":"Selfies & Känslor","Start slideshow":"Starta bildspelet",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:"tr",translations:{"{tag} (invisible)":"{tag} (görünmez)","{tag} (restricted)":"{tag} (kısıtlı)",Actions:"İşlemler",Activities:"Etkinlikler","Animals & Nature":"Hayvanlar ve Doğa","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ı","Cancel changes":"Değişiklikleri iptal et","Change title":"Başlığı değiştir",Choose:"Seçin","Clear text":"Metni temizle",Close:"Kapat","Close modal":"Üste açılan pencereyi kapat","Close navigation":"Gezinmeyi kapat","Close sidebar":"Yan çubuğu kapat","Confirm changes":"Değişiklikleri onayla",Custom:"Özel","Edit item":"Ögeyi düzenle","Error getting related resources":"İlgili kaynaklar alınırken sorun çıktı","Error parsing svg":"svg işlenirken sorun çıktı","External documentation for {title}":"{title} için dış belgeler",Favorite:"Sık kullanılanlara ekle",Flags:"Bayraklar","Food & Drink":"Yeme ve İçme","Frequently used":"Sık kullanılanlar",Global:"Evrensel","Go back to the list":"Listeye dön","Hide password":"Parolayı gizle","Message limit of {count} characters reached":"{count} karakter ileti sınırına ulaşıldı","More items …":"Diğer ögeler…",Next:"Sonraki","No emoji found":"Herhangi bir emoji bulunamadı","No results":"Herhangi bir sonuç bulunamadı",Objects:"Nesneler",Open:"Aç",'Open link to "{resourceTitle}"':'"{resourceTitle}" bağlantısını aç',"Open navigation":"Gezinmeyi aç","Password is secure":"Parola güvenli","Pause slideshow":"Slayt sunumunu duraklat","People & Body":"İnsanlar ve Beden","Pick an emoji":"Bir emoji seçin","Please select a time zone:":"Lütfen bir saat dilimi seçin:",Previous:"Önceki","Related resources":"İlgili kaynaklar",Search:"Arama","Search results":"Arama sonuçları","Select a tag":"Bir etiket seçin",Settings:"Ayarlar","Settings navigation":"Gezinme ayarları","Show password":"Parolayı görüntüle","Smileys & Emotion":"İfadeler ve Duygular","Start slideshow":"Slayt sunumunu başlat",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:"uk",translations:{"{tag} (invisible)":"{tag} (невидимий)","{tag} (restricted)":"{tag} (обмежений)",Actions:"Дії",Activities:"Діяльність","Animals & Nature":"Тварини та природа","Avatar of {displayName}":"Аватар {displayName}","Avatar of {displayName}, {status}":"Аватар {displayName}, {status}","Cancel changes":"Скасувати зміни","Change title":"Змінити назву",Choose:"ВиберітьВиберіть","Clear text":"Очистити текст",Close:"Закрити","Close modal":"Закрити модаль","Close navigation":"Закрити навігацію","Close sidebar":"Закрити бічну панель","Confirm changes":"Підтвердити зміни",Custom:"Власне","Edit item":"Редагувати елемент","External documentation for {title}":"Зовнішня документація для {title}",Favorite:"Улюблений",Flags:"Прапори","Food & Drink":"Їжа та напої","Frequently used":"Найчастіші",Global:"Глобальний","Go back to the list":"Повернутися до списку","Hide password":"Приховати пароль",items:"елементи","Message limit of {count} characters reached":"Вичерпано ліміт у {count} символів для повідомлення","More {dashboardItemType} …":"Більше {dashboardItemType}…",Next:"Вперед","No emoji found":"Емоційки відсутні","No results":"Відсутні результати",Objects:"Об'єкти",Open:"Відкрити","Open navigation":"Відкрити навігацію","Password is secure":"Пароль безпечний","Pause slideshow":"Пауза у показі слайдів","People & Body":"Люди та жести","Pick an emoji":"Виберіть емоційку","Please select a time zone:":"Виберіть часовий пояс:",Previous:"Назад",Search:"Пошук","Search results":"Результати пошуку","Select a tag":"Виберіть позначку",Settings:"Налаштування","Settings navigation":"Навігація у налаштуваннях","Show password":"Показати пароль","Smileys & Emotion":"Смайли та емоції","Start slideshow":"Почати показ слайдів",Submit:"Надіслати",Symbols:"Символи","Travel & Places":"Поїздки та місця","Type to search time zone":"Введіть для пошуку часовий пояс","Unable to search the group":"Неможливо шукати в групі","Undo changes":"Скасувати зміни","Write message, @ to mention someone, : for emoji autocompletion …":"Напишіть повідомлення, @, щоб згадати когось, : для автозаповнення емодзі…"}},{locale:"zh_CN",translations:{"{tag} (invisible)":"{tag} (不可见)","{tag} (restricted)":"{tag} (受限)",Actions:"行为",Activities:"活动","Animals & Nature":"动物 & 自然","Anything shared with the same group of people will show up here":"与同组用户分享的所有内容都会显示于此","Avatar of {displayName}":"{displayName}的头像","Avatar of {displayName}, {status}":"{displayName}的头像,{status}","Cancel changes":"取消更改","Change title":"更改标题",Choose:"选择","Clear text":"清除文本",Close:"关闭","Close modal":"关闭窗口","Close navigation":"关闭导航","Close sidebar":"关闭侧边栏","Confirm changes":"确认更改",Custom:"自定义","Edit item":"编辑项目","Error getting related resources":"获取相关资源时出错","Error parsing svg":"解析 svg 时出错","External documentation for {title}":"{title}的外部文档",Favorite:"喜爱",Flags:"旗帜","Food & Drink":"食物 & 饮品","Frequently used":"经常使用",Global:"全局","Go back to the list":"返回至列表","Hide password":"隐藏密码","Message limit of {count} characters reached":"已达到 {count} 个字符的消息限制","More items …":"更多项目…",Next:"下一个","No emoji found":"表情未找到","No results":"无结果",Objects:"物体",Open:"打开",'Open link to "{resourceTitle}"':'打开"{resourceTitle}"的连接',"Open navigation":"开启导航","Password is secure":"密码安全","Pause slideshow":"暂停幻灯片","People & Body":"人 & 身体","Pick an emoji":"选择一个表情","Please select a time zone:":"请选择一个时区:",Previous:"上一个","Related resources":"相关资源",Search:"搜索","Search results":"搜索结果","Select a tag":"选择一个标签",Settings:"设置","Settings navigation":"设置向导","Show password":"显示密码","Smileys & Emotion":"笑脸 & 情感","Start slideshow":"开始幻灯片",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} (受限)",Actions:"動作",Activities:"活動","Animals & Nature":"動物與自然","Anything shared with the same group of people will show up here":"與同一組人共享的任何內容都會顯示在此處","Avatar of {displayName}":"{displayName} 的頭像","Avatar of {displayName}, {status}":"{displayName} 的頭像,{status}","Cancel changes":"取消更改","Change title":"更改標題",Choose:"選擇","Clear text":"清除文本",Close:"關閉","Close modal":"關閉模態","Close navigation":"關閉導航","Close sidebar":"關閉側邊欄","Confirm changes":"確認更改",Custom:"自定義","Edit item":"編輯項目","Error getting related resources":"獲取相關資源出錯","Error parsing svg":"解析 svg 時出錯","External documentation for {title}":"{title} 的外部文檔",Favorite:"喜愛",Flags:"旗幟","Food & Drink":"食物與飲料","Frequently used":"經常使用",Global:"全球的","Go back to the list":"返回清單","Hide password":"隱藏密碼","Message limit of {count} characters reached":"已達到訊息最多 {count} 字元限制","More items …":"更多項目 …",Next:"下一個","No emoji found":"未找到表情符號","No results":"無結果",Objects:"物件",Open:"打開",'Open link to "{resourceTitle}"':"打開指向 “{resourceTitle}” 的鏈結","Open navigation":"開啟導航","Password is secure":"密碼是安全的","Pause slideshow":"暫停幻燈片","People & Body":"人物","Pick an emoji":"選擇表情符號","Please select a time zone:":"請選擇時區:",Previous:"上一個","Related resources":"相關資源",Search:"搜尋","Search results":"搜尋結果","Select a tag":"選擇標籤",Settings:"設定","Settings navigation":"設定值導覽","Show password":"顯示密碼","Smileys & Emotion":"表情","Start slideshow":"開始幻燈片",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} (受限)",Actions:"動作",Activities:"活動","Animals & Nature":"動物與自然",Choose:"選擇",Close:"關閉",Custom:"自定義",Flags:"旗幟","Food & Drink":"食物與飲料","Frequently used":"最近使用","Message limit of {count} characters reached":"已達到訊息最多 {count} 字元限制",Next:"下一個","No emoji found":"未找到表情符號","No results":"無結果",Objects:"物件","Pause slideshow":"暫停幻燈片","People & Body":"人物","Pick an emoji":"選擇表情符號",Previous:"上一個",Search:"搜尋","Search results":"搜尋結果","Select a tag":"選擇標籤",Settings:"設定","Settings navigation":"設定值導覽","Smileys & Emotion":"表情","Start slideshow":"開始幻燈片",Symbols:"標誌","Travel & Places":"旅遊與景點","Unable to search the group":"無法搜尋群組","Write message, @ to mention someone …":"輸入訊息時可使用 @ 來標示某人..."}}].forEach((function(e){var t={};for(var a in e.translations)e.translations[a].pluralId?t[a]={msgid:a,msgid_plural:e.translations[a].pluralId,msgstr:e.translations[a].msgstr}:t[a]={msgid:a,msgstr:[e.translations[a]]};n.addTranslation(e.locale,{translations:{"":t}})}));var i=n.build(),r=i.ngettext.bind(i),s=i.gettext.bind(i)},3648:(e,t,a)=>{"use strict";a.d(t,{Z:()=>n});var o=a(932);const n={methods:{n:o.n,t:o.t}}},1205:(e,t,a)=>{"use strict";a.d(t,{Z:()=>o});const o=function(e){return Math.random().toString(36).replace(/[^a-z]+/g,"").slice(0,e||5)}},7645:(e,t,a)=>{"use strict";a.d(t,{Z:()=>o});const o=function(e){e.mounted?Array.isArray(e.mounted)||(e.mounted=[e.mounted]):e.mounted=[],e.mounted.push((function(){this.$el.setAttribute("data-v-".concat("a36c6b4"),"")}))}},1206:(e,t,a)=>{"use strict";a.d(t,{L:()=>o});a(4505);var o=function(){return Object.assign(window,{_nc_focus_trap:window._nc_focus_trap||[]}),window._nc_focus_trap}},5108:(e,t,a)=>{var o=a(6464),n=a(9084);function i(){return(new Date).getTime()}var r,s=Array.prototype.slice,l={};r=void 0!==a.g&&a.g.console?a.g.console:"undefined"!=typeof window&&window.console?window.console:{};for(var c=[[function(){},"log"],[function(){r.log.apply(r,arguments)},"info"],[function(){r.log.apply(r,arguments)},"warn"],[function(){r.warn.apply(r,arguments)},"error"],[function(e){l[e]=i()},"time"],[function(e){var t=l[e];if(!t)throw new Error("No such label: "+e);delete l[e];var a=i()-t;r.log(e+": "+a+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=o.format.apply(null,arguments),r.error(e.stack)},"trace"],[function(e){r.log(o.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=s.call(arguments,1);n.ok(!1,o.format.apply(null,t))}},"assert"]],u=0;u{"use strict";a.d(t,{Z:()=>s});var o=a(7537),n=a.n(o),i=a(3645),r=a.n(i)()(n());r.push([e.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-tooltip.v-popper__popper{position:absolute;z-index:100000;top:0;right:auto;left:auto;display:block;margin:0;padding:0;text-align:left;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.v-popper--theme-tooltip.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-tooltip.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-tooltip.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{right:100%;border-left-width:0;border-right-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{left:100%;border-right-width:0;border-left-color:var(--color-main-background)}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity .15s,visibility .15s;opacity:0}.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity .15s;opacity:1}.v-popper--theme-tooltip .v-popper__inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.v-popper--theme-tooltip .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/directives/Tooltip/index.scss"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCQA,0CACC,iBAAA,CACA,cAAA,CACA,KAAA,CACA,UAAA,CACA,SAAA,CACA,aAAA,CACA,QAAA,CACA,SAAA,CACA,eAAA,CACA,gBAAA,CACA,SAAA,CACA,eAAA,CAEA,eAAA,CACA,sDAAA,CAGA,iGACC,YAAA,CACA,qBAAA,CACA,6CAAA,CAID,oGACC,SAAA,CACA,kBAAA,CACA,gDAAA,CAID,mGACC,UAAA,CACA,mBAAA,CACA,+CAAA,CAID,kGACC,SAAA,CACA,oBAAA,CACA,8CAAA,CAID,4DACC,iBAAA,CACA,uCAAA,CACA,SAAA,CAED,6DACC,kBAAA,CACA,uBAAA,CACA,SAAA,CAKF,0CACC,eAAA,CACA,eAAA,CACA,iBAAA,CACA,4BAAA,CACA,kCAAA,CACA,6CAAA,CAID,oDACC,iBAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,QAAA,CACA,kBAAA,CACA,0BAAA,CACA,iBAhFY",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:\"a36c6b4\"; @import 'variables'; @import 'material-icons';\n/**\n* @copyright Copyright (c) 2016, John Molakvoæ \n* @copyright Copyright (c) 2016, Robin Appelman \n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt \n* @copyright Copyright (c) 2016, Erik Pellikka \n* @copyright Copyright (c) 2015, Vincent Petry \n*\n* Bootstrap v3.3.5 (http://getbootstrap.com)\n* Copyright 2011-2015 Twitter, Inc.\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n*/\n\n$arrow-width: 10px;\n\n.v-popper--theme-tooltip {\n\t&.v-popper__popper {\n\t\tposition: absolute;\n\t\tz-index: 100000;\n\t\ttop: 0;\n\t\tright: auto;\n\t\tleft: auto;\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\ttext-align: left;\n\t\ttext-align: start;\n\t\topacity: 0;\n\t\tline-height: 1.6;\n\n\t\tline-break: auto;\n\t\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t\t// TOP\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// BOTTOM\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// RIGHT\n\t\t&[data-popper-placement^='right'] .v-popper__arrow-container {\n\t\t\tright: 100%;\n\t\t\tborder-left-width: 0;\n\t\t\tborder-right-color: var(--color-main-background);\n\t\t}\n\n\t\t// LEFT\n\t\t&[data-popper-placement^='left'] .v-popper__arrow-container {\n\t\t\tleft: 100%;\n\t\t\tborder-right-width: 0;\n\t\t\tborder-left-color: var(--color-main-background);\n\t\t}\n\n\t\t// HIDDEN / SHOWN\n\t\t&[aria-hidden='true'] {\n\t\t\tvisibility: hidden;\n\t\t\ttransition: opacity .15s, visibility .15s;\n\t\t\topacity: 0;\n\t\t}\n\t\t&[aria-hidden='false'] {\n\t\t\tvisibility: visible;\n\t\t\ttransition: opacity .15s;\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t// CONTENT\n\t.v-popper__inner {\n\t\tmax-width: 350px;\n\t\tpadding: 5px 8px;\n\t\ttext-align: center;\n\t\tcolor: var(--color-main-text);\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-color: var(--color-main-background);\n\t}\n\n\t// ARROW\n\t.v-popper__arrow-container {\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tmargin: 0;\n\t\tborder-style: solid;\n\t\tborder-color: transparent;\n\t\tborder-width: $arrow-width;\n\t}\n}\n"],sourceRoot:""}]);const s=r},297:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});var o=a(7537),n=a.n(o),i=a(3645),r=a.n(i)()(n());r.push([e.id,".material-design-icon[data-v-2f315260]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-2f315260]{display:flex;align-items:center}.action-item[data-v-2f315260]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-2f315260]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-2f315260]{--open-background-color: var(--color-primary-light-hover)}.action-item.action-item--error[data-v-2f315260]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-2f315260]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-2f315260]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-2f315260]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-2f315260]{opacity:1;background-color:var(--open-background-color)}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcActions/NcActions.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCND,+BACC,YAAA,CACA,kBAAA,CAGD,8BACC,gFAAA,CACA,iBAAA,CACA,oBAAA,CAEA,mDACC,2DAAA,CAGD,qDACC,yDAAA,CAGD,iDACC,iDAAA,CAGD,mDACC,mDAAA,CAGD,mDACC,mDAAA,CAGD,kEACC,oCAAA,CAGD,yEACC,SCOa,CDNb,6CAAA",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:\"a36c6b4\"; @import 'variables'; @import 'material-icons';\n\n.action-items {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.action-item {\n\t--open-background-color: var(--color-background-hover, $action-background-hover);\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t&.action-item--primary {\n\t\t--open-background-color: var(--color-primary-element-hover);\n\t}\n\n\t&.action-item--secondary {\n\t\t--open-background-color: var(--color-primary-light-hover);\n\t}\n\n\t&.action-item--error {\n\t\t--open-background-color: var(--color-error-hover);\n\t}\n\n\t&.action-item--warning {\n\t\t--open-background-color: var(--color-warning-hover);\n\t}\n\n\t&.action-item--success {\n\t\t--open-background-color: var(--color-success-hover);\n\t}\n\n\t&.action-item--tertiary-no-background {\n\t\t--open-background-color: transparent;\n\t}\n\n\t&.action-item--open .action-item__menutoggle {\n\t\topacity: $opacity_full;\n\t\tbackground-color: var(--open-background-color);\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\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 s=r},6:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});var o=a(7537),n=a.n(o),i=a(3645),r=a.n(i)()(n());r.push([e.id,".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner{border-radius:var(--border-radius-large);padding:4px;max-height:calc(50vh - 16px);overflow:auto}","",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcActions/NcActions.vue"],names:[],mappings:"AAGA,sBACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCJD,gFACC,wCAAA,CACA,WAAA,CACA,4BAAA,CACA,aAAA",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:\"a36c6b4\"; @import 'variables'; @import 'material-icons';\n\n// We overwrote the popover base class, so we can style\n// the popover__inner for actions only.\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__inner {\n\tborder-radius: var(--border-radius-large);\n\tpadding: 4px;\n\tmax-height: calc(50vh - 16px);\n\toverflow: auto;\n}\n"],sourceRoot:""}]);const s=r},1064:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});var o=a(7537),n=a.n(o),i=a(3645),r=a.n(i)()(n());r.push([e.id,".material-design-icon[data-v-4de3abc4]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-4de3abc4]{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-light-text);background-color:var(--color-primary-light)}.button-vue *[data-v-4de3abc4],.button-vue span[data-v-4de3abc4]{cursor:pointer}.button-vue[data-v-4de3abc4]:focus{outline:none}.button-vue[data-v-4de3abc4]:disabled{cursor:default;opacity:.5;filter:saturate(0.7)}.button-vue:disabled *[data-v-4de3abc4]{cursor:default}.button-vue[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-primary-light-hover)}.button-vue[data-v-4de3abc4]:active{background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-4de3abc4]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-4de3abc4]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-4de3abc4]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-4de3abc4]{width:44px !important}.button-vue--text-only[data-v-4de3abc4]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-4de3abc4]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-4de3abc4]{padding:0 16px 0 4px}.button-vue--wide[data-v-4de3abc4]{width:100%}.button-vue[data-v-4de3abc4]:focus-visible{outline:2px solid var(--color-main-text) !important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-4de3abc4]{outline:2px solid var(--color-primary-text);border-radius:var(--border-radius);background-color:rgba(0,0,0,0)}.button-vue--vue-primary[data-v-4de3abc4]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-4de3abc4]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-4de3abc4]{color:var(--color-primary-light-text);background-color:var(--color-primary-light)}.button-vue--vue-secondary[data-v-4de3abc4]:hover:not(:disabled){color:var(--color-primary-light-text);background-color:var(--color-primary-light-hover)}.button-vue--vue-tertiary[data-v-4de3abc4]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-4de3abc4]{color:var(--color-main-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-no-background[data-v-4de3abc4]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-4de3abc4]{color:var(--color-primary-text);background-color:rgba(0,0,0,0)}.button-vue--vue-tertiary-on-primary[data-v-4de3abc4]:hover:not(:disabled){background-color:rgba(0,0,0,0)}.button-vue--vue-success[data-v-4de3abc4]{background-color:var(--color-success);color:#fff}.button-vue--vue-success[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-4de3abc4]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-4de3abc4]{background-color:var(--color-warning);color:#fff}.button-vue--vue-warning[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-4de3abc4]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-4de3abc4]{background-color:var(--color-error);color:#fff}.button-vue--vue-error[data-v-4de3abc4]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-4de3abc4]: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,qCAAA,CACA,2CAAA,CA1BA,iEAEC,cAAA,CAQD,mCACC,YAAA,CAGD,sCACC,cAAA,CAIA,UCIiB,CDFjB,oBAAA,CALA,wCACC,cAAA,CAUF,kDACC,iDAAA,CAKD,oCACC,mDAAA,CAGD,sCACC,mBAAA,CACA,kBAAA,CACA,4BAAA,CAGD,mCACC,WCtCe,CDuCf,UCvCe,CDwCf,eCxCe,CDyCf,cCzCe,CD0Cf,YAAA,CACA,sBAAA,CACA,kBAAA,CAGD,mCACC,gBAAA,CACA,iBAAA,CACA,aAAA,CAID,wCACC,qBAAA,CAID,wCACC,cAAA,CACA,0DACC,eAAA,CACA,gBAAA,CAKF,4CACC,oBAAA,CAID,mCACC,UAAA,CAGD,2CACC,mDAAA,CACA,+EACC,2CAAA,CACA,kCAAA,CACA,8BAAA,CAOF,0CACC,6CAAA,CACA,+BAAA,CACA,+DACC,mDAAA,CAID,iDACC,6CAAA,CAKF,4CACC,qCAAA,CACA,2CAAA,CACA,iEACC,qCAAA,CACA,iDAAA,CAKF,2CACC,4BAAA,CACA,8BAAA,CACA,gEACC,6BAAA,CACA,8CAAA,CAKF,yDACC,4BAAA,CACA,8BAAA,CACA,8EACC,8BAAA,CAKF,sDACC,+BAAA,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:\"a36c6b4\"; @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-light-text);\n\tbackground-color: var(--color-primary-light);\n\t&:hover:not(:disabled) {\n\t\tbackground-color: var(--color-primary-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: space-around;\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}\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: 0 16px 0 4px;\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\t&.button-vue--vue-tertiary-on-primary {\n\t\t\toutline: 2px solid var(--color-primary-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-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-light-text);\n\t\tbackground-color: var(--color-primary-light);\n\t\t&:hover:not(:disabled) {\n\t\t\tcolor: var(--color-primary-light-text);\n\t\t\tbackground-color: var(--color-primary-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);\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-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æ \n *\n * @author John Molakvoæ \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 .\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 s=r},6794:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});var o=a(7537),n=a.n(o),i=a(3645),r=a.n(i)()(n());r.push([e.id,'.material-design-icon[data-v-341df4ce]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-341df4ce]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.modal-mask--dark[data-v-341df4ce]{background-color:rgba(0,0,0,.92)}.modal-header[data-v-341df4ce]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;overflow:hidden;transition:opacity 250ms,visibility 250ms}.modal-header.invisible[style*="display:none"][data-v-341df4ce],.modal-header.invisible[style*="display: none"][data-v-341df4ce]{visibility:hidden}.modal-header .modal-title[data-v-341df4ce]{overflow-x:hidden;box-sizing:border-box;width:100%;padding:0 132px 0 12px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px;margin-bottom:0}@media only screen and (min-width: 1024px){.modal-header .modal-title[data-v-341df4ce]{padding-left:132px;text-align:center}}.modal-header .icons-menu[data-v-341df4ce]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-341df4ce]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:3px;padding:0}.modal-header .icons-menu .play-pause-icons[data-v-341df4ce]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;border:none;background-color:rgba(0,0,0,0)}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-341df4ce],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-341df4ce],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-341df4ce],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-341df4ce]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,.25)}.modal-header .icons-menu .play-pause-icons__play[data-v-341df4ce],.modal-header .icons-menu .play-pause-icons__pause[data-v-341df4ce]{box-sizing:border-box;width:44px;height:44px;margin:3px;cursor:pointer;opacity:.7}.modal-header .icons-menu .header-actions[data-v-341df4ce]{color:#fff}.modal-header .icons-menu[data-v-341df4ce] .action-item{margin:3px}.modal-header .icons-menu[data-v-341df4ce] .action-item--single{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-341df4ce] button{color:#fff}.modal-header .icons-menu[data-v-341df4ce] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-341df4ce] .action-item__menutoggle span,.modal-header .icons-menu[data-v-341df4ce] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-341df4ce]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-341df4ce],.modal-wrapper .next[data-v-341df4ce]{z-index:10000;display:flex !important;height:35vw;position:absolute;transition:opacity 250ms,visibility 250ms;color:var(--color-primary-text)}.modal-wrapper .prev[data-v-341df4ce]:focus-visible,.modal-wrapper .next[data-v-341df4ce]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev.invisible[style*="display:none"][data-v-341df4ce],.modal-wrapper .prev.invisible[style*="display: none"][data-v-341df4ce],.modal-wrapper .next.invisible[style*="display:none"][data-v-341df4ce],.modal-wrapper .next.invisible[style*="display: none"][data-v-341df4ce]{visibility:hidden}.modal-wrapper .prev[data-v-341df4ce]{left:2px}.modal-wrapper .next[data-v-341df4ce]{right:2px}.modal-wrapper .modal-container[data-v-341df4ce]{position:relative;display:block;overflow:auto;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 0 40px rgba(0,0,0,.2)}.modal-wrapper .modal-container__close[data-v-341df4ce]{position:absolute;top:4px;right:4px}.modal-wrapper--small .modal-container[data-v-341df4ce]{width:400px;max-width:90%;max-height:90%}.modal-wrapper--normal .modal-container[data-v-341df4ce]{max-width:90%;width:600px;max-height:90%}.modal-wrapper--large .modal-container[data-v-341df4ce]{max-width:90%;width:900px;max-height:90%}.modal-wrapper--full .modal-container[data-v-341df4ce]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}@media only screen and (max-width: 512px){.modal-wrapper .modal-container[data-v-341df4ce]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:50px;border-radius:0}}.fade-enter-active[data-v-341df4ce],.fade-leave-active[data-v-341df4ce]{transition:opacity 250ms}.fade-enter[data-v-341df4ce],.fade-leave-to[data-v-341df4ce]{opacity:0}.fade-visibility-enter[data-v-341df4ce],.fade-visibility-leave-to[data-v-341df4ce]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-341df4ce],.modal-in-leave-active[data-v-341df4ce],.modal-out-enter-active[data-v-341df4ce],.modal-out-leave-active[data-v-341df4ce]{transition:opacity 250ms}.modal-in-enter[data-v-341df4ce],.modal-in-leave-to[data-v-341df4ce],.modal-out-enter[data-v-341df4ce],.modal-out-leave-to[data-v-341df4ce]{opacity:0}.modal-in-enter .modal-container[data-v-341df4ce],.modal-in-leave-to .modal-container[data-v-341df4ce]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-341df4ce],.modal-out-leave-to .modal-container[data-v-341df4ce]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-341df4ce]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-341df4ce]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-341df4ce linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .icon-pause[data-v-341df4ce]{animation:breath-341df4ce 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-341df4ce]{animation-play-state:paused !important}@keyframes progressring-341df4ce{from{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-341df4ce{0%{opacity:1}50%{opacity:0}100%{opacity:1}}',"",{version:3,sources:["webpack://./src/assets/material-icons.css","webpack://./src/components/NcModal/NcModal.vue","webpack://./src/assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CCLD,6BACC,cAAA,CACA,YAAA,CACA,KAAA,CACA,MAAA,CACA,aAAA,CACA,UAAA,CACA,WAAA,CACA,+BAAA,CACA,mCACC,gCAAA,CAIF,+BACC,iBAAA,CACA,aAAA,CACA,KAAA,CACA,OAAA,CACA,MAAA,CAGA,uBAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WCuBe,CDtBf,eAAA,CACA,yCAAA,CAIA,iIAEC,iBAAA,CAGD,4CACC,iBAAA,CACA,qBAAA,CACA,UAAA,CACA,sBAAA,CACA,6BAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,cChBY,CDiBZ,eAAA,CAID,2CACC,4CACC,kBAAA,CACA,iBAAA,CAAA,CAIF,2CACC,iBAAA,CACA,OAAA,CACA,YAAA,CACA,kBAAA,CACA,wBAAA,CAEA,yDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6DACC,iBAAA,CACA,UC3Ba,CD4Bb,WC5Ba,CD6Bb,QAAA,CACA,SAAA,CACA,cAAA,CACA,WAAA,CACA,8BAAA,CAGC,8WAEC,SC9CU,CD+CV,kBAAA,CACA,sCCxDW,CD2Db,uIAEC,qBAAA,CACA,UCzEa,CD0Eb,WC1Ea,CD2Eb,UAAA,CACA,cAAA,CACA,UC3Da,CD+Df,2DACC,UAAA,CAGD,yDACC,UAAA,CAEA,iEACC,qBAAA,CACA,UC1Fa,CD2Fb,WC3Fa,CD4Fb,cAAA,CACA,0BAAA,CACA,oBAAA,CAIF,kDAEC,UAAA,CAID,oEACC,SAAA,CACA,iJACC,sBAAA,CACA,uBAAA,CAMJ,gCACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CAGA,4EAEC,aAAA,CAEA,uBAAA,CACA,WAAA,CACA,iBAAA,CACA,yCAAA,CAEA,+BAAA,CAEA,wGAEC,8CAAA,CACA,wCAAA,CAOD,8RAEC,iBAAA,CAGF,sCACC,QAAA,CAED,sCACC,SAAA,CAID,iDACC,iBAAA,CACA,aAAA,CACA,aAAA,CACA,SAAA,CACA,+BAAA,CACA,wCAAA,CACA,6CAAA,CACA,kCAAA,CACA,wDACC,iBAAA,CACA,OAAA,CACA,SAAA,CAMD,wDACC,WAAA,CACA,aAAA,CACA,cAAA,CAID,yDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,wDACC,aAAA,CACA,WAAA,CACA,cAAA,CAID,uDACC,UAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC7Ka,CD8Kb,eAAA,CAKF,0CACC,iDACC,iBAAA,CACA,UAAA,CACA,kBAAA,CACA,wCAAA,CACA,iBAAA,CACA,QC1La,CD2Lb,eAAA,CAAA,CAMH,wEAEC,wBAAA,CAGD,6DAEC,SAAA,CAGD,mFAEC,iBAAA,CACA,SAAA,CAGD,kKAIC,wBAAA,CAGD,4IAIC,SAAA,CAGD,uGAEC,oBAAA,CAGD,yGAEC,oBAAA,CAQA,8DACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,wBAAA,CACA,qFACC,kCAAA,CACA,wBAAA,CACA,yEAAA,CAEA,oBAAA,CACA,+BAAA,CACA,8BAAA,CAID,mEACC,kEAAA,CAED,8EACC,sCAAA,CAMH,iCACC,KACC,+BAAA,CAED,GACC,mBAAA,CAAA,CAIF,2BACC,GACC,SAAA,CAED,IACC,SAAA,CAED,KACC,SAAA,CAAA",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:\"a36c6b4\"; @import 'variables'; @import 'material-icons';\n\n\n.modal-mask {\n\tposition: fixed;\n\tz-index: 9998;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, .5);\n\t&--dark {\n\t\tbackground-color: rgba(0, 0, 0, .92);\n\t}\n}\n\n.modal-header {\n\tposition: absolute;\n\tz-index: 10001;\n\ttop: 0;\n\tright: 0;\n\tleft: 0;\n\t// prevent vue show to use display:none and reseting\n\t// the circle animation loop\n\tdisplay: flex !important;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\theight: $header-height;\n\toverflow: hidden;\n\ttransition: opacity 250ms,\n\t\tvisibility 250ms;\n\n\t// replace display by visibility\n\t&.invisible[style*='display:none'],\n\t&.invisible[style*='display: none'] {\n\t\tvisibility: hidden;\n\t}\n\n\t.modal-title {\n\t\toverflow-x: hidden;\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\t\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\n\t\ttransition: padding ease 100ms;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: #fff;\n\t\tfont-size: $icon-margin;\n\t\tmargin-bottom: 0;\n\t}\n\n\t// On wider screens the title can be centered\n\t@media only screen and (min-width: $breakpoint-mobile) {\n\t\t.modal-title {\n\t\t\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t.icons-menu {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\n\t\t.header-close {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbox-sizing: border-box;\n\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t.play-pause-icons {\n\t\t\tposition: relative;\n\t\t\twidth: $header-height;\n\t\t\theight: $header-height;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcursor: pointer;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\t.play-pause-icons__play,\n\t\t\t\t.play-pause-icons__pause {\n\t\t\t\t\topacity: $opacity_full;\n\t\t\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t\t\tbackground-color: $icon-focus-bg;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__play,\n\t\t\t&__pause {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\t\t\t\tcursor: pointer;\n\t\t\t\topacity: $opacity_normal;\n\t\t\t}\n\t\t}\n\n\t\t.header-actions {\n\t\t\tcolor: white;\n\t\t}\n\n\t\t&:deep() .action-item {\n\t\t\tmargin: math.div($header-height - $clickable-area, 2);\n\n\t\t\t&--single {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tcursor: pointer;\n\t\t\t\tbackground-position: center;\n\t\t\t\tbackground-size: 22px;\n\t\t\t}\n\t\t}\n\n\t\t:deep(button) {\n\t\t\t// force white instead of default main text\n\t\t\tcolor: #fff;\n\t\t}\n\n\t\t// Force the Actions menu icon to be the same size as other icons\n\t\t&:deep(.action-item__menutoggle) {\n\t\t\tpadding: 0;\n\t\t\tspan, svg {\n\t\t\t\twidth: var(--icon-size);\n\t\t\t\theight: var(--icon-size);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.modal-wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\n\t/* Navigation buttons */\n\t.prev,\n\t.next {\n\t\tz-index: 10000;\n\t\t// ignore display: none\n\t\tdisplay: flex !important;\n\t\theight: 35vw;\n\t\tposition: absolute;\n\t\ttransition: opacity 250ms,\n\t\t\tvisibility 250ms;\n\t\tcolor: var(--color-primary-text);\n\n\t\t&:focus-visible {\n\t\t\t// Override NcButton focus styles\n\t\t\tbox-shadow: 0 0 0 2px var(--color-primary-text);\n\t\t\tbackground-color: var(--color-box-shadow);\n\t\t}\n\n\t\t// we want to keep the elements on page\n\t\t// even if hidden to avoid having a unbalanced\n\t\t// centered content\n\t\t// replace display by visibility\n\t\t&.invisible[style*='display:none'],\n\t\t&.invisible[style*='display: none'] {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\t.prev {\n\t\tleft: 2px;\n\t}\n\t.next {\n\t\tright: 2px;\n\t}\n\n\t/* Content */\n\t.modal-container {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\toverflow: auto; // avoids unecessary hacks if the content should be bigger than the modal\n\t\tpadding: 0;\n\t\ttransition: transform 300ms ease;\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\t\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\n\t\t&__close {\n\t\t\tposition: absolute;\n\t\t\ttop: 4px;\n\t\t\tright: 4px;\n\t\t}\n\t}\n\n\t// Sizing\n\t&--small {\n\t\t.modal-container {\n\t\t\twidth: 400px;\n\t\t\tmax-width: 90%;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--normal {\n\t\t.modal-container {\n\t\t\tmax-width: 90%;\n\t\t\twidth: 600px;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--large {\n\t\t.modal-container {\n\t\t\tmax-width: 90%;\n\t\t\twidth: 900px;\n\t\t\tmax-height: 90%;\n\t\t}\n\t}\n\t&--full {\n\t\t.modal-container {\n\t\t\twidth: 100%;\n\t\t\theight: calc(100% - var(--header-height));\n\t\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\n\t// Make modal full screen on mobile\n\t@media only screen and (max-width: math.div($breakpoint-mobile, 2)) {\n\t\t.modal-container {\n\t\t\tmax-width: initial;\n\t\t\twidth: 100%;\n\t\t\tmax-height: initial;\n\t\t\theight: calc(100% - var(--header-height));\n\t\t\tposition: absolute;\n\t\t\ttop: $header-height;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n}\n\n/* TRANSITIONS */\n.fade-enter-active,\n.fade-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-visibility-enter,\n.fade-visibility-leave-to {\n\tvisibility: hidden;\n\topacity: 0;\n}\n\n.modal-in-enter-active,\n.modal-in-leave-active,\n.modal-out-enter-active,\n.modal-out-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.modal-in-enter,\n.modal-in-leave-to,\n.modal-out-enter,\n.modal-out-leave-to {\n\topacity: 0;\n}\n\n.modal-in-enter .modal-container,\n.modal-in-leave-to .modal-container {\n\ttransform: scale(.9);\n}\n\n.modal-out-enter .modal-container,\n.modal-out-leave-to .modal-container {\n\ttransform: scale(1.1);\n}\n\n// animated circle\n$radius: 15;\n$pi: 3.14159265358979;\n\n.modal-mask .play-pause-icons {\n\t.progress-ring {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransform: rotate(-90deg);\n\t\t.progress-ring__circle {\n\t\t\ttransition: 100ms stroke-dashoffset;\n\t\t\ttransform-origin: 50% 50%; // axis compensation\n\t\t\tanimation: progressring linear var(--slideshow-duration) infinite;\n\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t\t\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\n\t\t}\n\t}\n\t&--paused {\n\t\t.icon-pause {\n\t\t\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\n\t\t}\n\t\t.progress-ring__circle {\n\t\t\tanimation-play-state: paused !important;\n\t\t}\n\t}\n}\n\n// keyframes get scoped too and break the animation name, we need them unscoped\n@keyframes progressring {\n\tfrom {\n\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t}\n\tto {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes breath {\n\t0% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\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 s=r},5783:(e,t,a)=>{"use strict";a.d(t,{Z:()=>s});var o=a(7537),n=a.n(o),i=a(3645),r=a.n(i)()(n());r.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);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,kCAAA,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:\"a36c6b4\"; @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);\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 s=r},3645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a="",o=void 0!==t[5];return t[4]&&(a+="@supports (".concat(t[4],") {")),t[2]&&(a+="@media ".concat(t[2]," {")),o&&(a+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),a+=e(t),o&&(a+="}"),t[2]&&(a+="}"),t[4]&&(a+="}"),a})).join("")},t.i=function(e,a,o,n,i){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(o)for(var s=0;s0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),a&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=a):u[2]=a),n&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=n):u[4]="".concat(n)),t.push(u))}},t}},7537:e=>{"use strict";e.exports=function(e){var t=e[1],a=e[3];if(!a)return t;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),n="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),i="/*# ".concat(n," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},3379:e=>{"use strict";var t=[];function a(e){for(var a=-1,o=0;o{"use strict";var t={};e.exports=function(e,a){var o=function(e){if(void 0===t[e]){var a=document.querySelector(e);if(window.HTMLIFrameElement&&a instanceof window.HTMLIFrameElement)try{a=a.contentDocument.head}catch(e){a=null}t[e]=a}return t[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(a)}},9216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},3565:(e,t,a)=>{"use strict";e.exports=function(e){var t=a.nc;t&&e.setAttribute("nonce",t)}},7795:e=>{"use strict";e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(a){!function(e,t,a){var o="";a.supports&&(o+="@supports (".concat(a.supports,") {")),a.media&&(o+="@media ".concat(a.media," {"));var n=void 0!==a.layer;n&&(o+="@layer".concat(a.layer.length>0?" ".concat(a.layer):""," {")),o+=a.css,n&&(o+="}"),a.media&&(o+="}"),a.supports&&(o+="}");var i=a.sourceMap;i&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(o,e,t.options)}(t,e,a)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},4589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},5727:()=>{},2102:()=>{},9989:()=>{},2405:()=>{},1900:(e,t,a)=>{"use strict";function o(e,t,a,o,n,i,r,s){var l,c="function"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=a,c._compiled=!0),o&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),r?(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__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},c._ssrRegister=l):n&&(l=s?function(){n.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:n),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:c}}a.d(t,{Z:()=>o})},7931:e=>{"use strict";e.exports=__webpack_require__(/*! @nextcloud/l10n/gettext */ "./node_modules/@nextcloud/l10n/dist/gettext.js")},9084:e=>{"use strict";e.exports=__webpack_require__(/*! assert */ "./node_modules/assert/assert.js")},9454:e=>{"use strict";e.exports=__webpack_require__(/*! floating-vue */ "./node_modules/floating-vue/dist/floating-vue.es.js")},4505:e=>{"use strict";e.exports=__webpack_require__(/*! focus-trap */ "./node_modules/focus-trap/dist/focus-trap.esm.js")},2640:e=>{"use strict";e.exports=__webpack_require__(/*! hammerjs */ "./node_modules/hammerjs/hammer.js")},6464:e=>{"use strict";e.exports=__webpack_require__(/*! util */ "./node_modules/util/util.js")},2734:e=>{"use strict";e.exports=__webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js")},9044:e=>{"use strict";e.exports=__webpack_require__(/*! vue-material-design-icons/ChevronRight.vue */ "./node_modules/vue-material-design-icons/ChevronRight.vue")},8618:e=>{"use strict";e.exports=__webpack_require__(/*! vue-material-design-icons/Close.vue */ "./node_modules/vue-material-design-icons/Close.vue")},1441:e=>{"use strict";e.exports=__webpack_require__(/*! vue-material-design-icons/DotsHorizontal.vue */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue")}},t={};function a(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={id:o,exports:{}};return e[o](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var o in t)a.o(t,o)&&!a.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nc=void 0;var o={};return(()=>{"use strict";a.r(o),a.d(o,{default:()=>V});var e=a(7645),t=a(1206),n=a(932),i=a(1205),r=a(3648),s=a(5471),l=a(9479);function c(e,t){var a,o,n,i=t;this.start=function(){n=!0,o=new Date,a=setTimeout(e,i)},this.pause=function(){n=!1,clearTimeout(a),i-=new Date-o},this.clear=function(){n=!1,clearTimeout(a),i=0},this.getTimeLeft=function(){return n&&(this.pause(),this.start()),i},this.getStateRunning=function(){return n},this.start()}var u=a(336);const d=__webpack_require__(/*! vue-material-design-icons/ChevronLeft.vue */ "./node_modules/vue-material-design-icons/ChevronLeft.vue");var p=a.n(d),m=a(9044),A=a.n(m),h=a(8618),g=a.n(h);const v=__webpack_require__(/*! vue-material-design-icons/Pause.vue */ "./node_modules/vue-material-design-icons/Pause.vue");var f=a.n(v);const b=__webpack_require__(/*! vue-material-design-icons/Play.vue */ "./node_modules/vue-material-design-icons/Play.vue");var C=a.n(b),y=a(4505),k=a(2640),w=a.n(k);function S(e){return function(e){if(Array.isArray(e))return x(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return x(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return x(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,o=new Array(t);a { + +"use strict"; + + +var objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); + +// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js +// original notice: + +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +function compare(a, b) { + if (a === b) { + return 0; + } + + var x = a.length; + var y = b.length; + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + + if (x < y) { + return -1; + } + if (y < x) { + return 1; + } + return 0; +} +function isBuffer(b) { + if (__webpack_require__.g.Buffer && typeof __webpack_require__.g.Buffer.isBuffer === 'function') { + return __webpack_require__.g.Buffer.isBuffer(b); + } + return !!(b != null && b._isBuffer); +} + +// based on node assert, original notice: +// NB: The URL to the CommonJS spec is kept just for tradition. +// node-assert has evolved a lot since then, both in API and behavior. + +// http://wiki.commonjs.org/wiki/Unit_Testing/1.0 +// +// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8! +// +// Originally from narwhal.js (http://narwhaljs.org) +// Copyright (c) 2009 Thomas Robinson <280north.com> +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the 'Software'), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +var util = __webpack_require__(/*! util/ */ "./node_modules/assert/node_modules/util/util.js"); +var hasOwn = Object.prototype.hasOwnProperty; +var pSlice = Array.prototype.slice; +var functionsHaveNames = (function () { + return function foo() {}.name === 'foo'; +}()); +function pToString (obj) { + return Object.prototype.toString.call(obj); +} +function isView(arrbuf) { + if (isBuffer(arrbuf)) { + return false; + } + if (typeof __webpack_require__.g.ArrayBuffer !== 'function') { + return false; + } + if (typeof ArrayBuffer.isView === 'function') { + return ArrayBuffer.isView(arrbuf); + } + if (!arrbuf) { + return false; + } + if (arrbuf instanceof DataView) { + return true; + } + if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) { + return true; + } + return false; +} +// 1. The assert module provides functions that throw +// AssertionError's when particular conditions are not met. The +// assert module must conform to the following interface. + +var assert = module.exports = ok; + +// 2. The AssertionError is defined in assert. +// new assert.AssertionError({ message: message, +// actual: actual, +// expected: expected }) + +var regex = /\s*function\s+([^\(\s]*)\s*/; +// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js +function getName(func) { + if (!util.isFunction(func)) { + return; + } + if (functionsHaveNames) { + return func.name; + } + var str = func.toString(); + var match = str.match(regex); + return match && match[1]; +} +assert.AssertionError = function AssertionError(options) { + this.name = 'AssertionError'; + this.actual = options.actual; + this.expected = options.expected; + this.operator = options.operator; + if (options.message) { + this.message = options.message; + this.generatedMessage = false; + } else { + this.message = getMessage(this); + this.generatedMessage = true; + } + var stackStartFunction = options.stackStartFunction || fail; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, stackStartFunction); + } else { + // non v8 browsers so we can have a stacktrace + var err = new Error(); + if (err.stack) { + var out = err.stack; + + // try to strip useless frames + var fn_name = getName(stackStartFunction); + var idx = out.indexOf('\n' + fn_name); + if (idx >= 0) { + // once we have located the function frame + // we need to strip out everything before it (and its line) + var next_line = out.indexOf('\n', idx + 1); + out = out.substring(next_line + 1); + } + + this.stack = out; + } + } +}; + +// assert.AssertionError instanceof Error +util.inherits(assert.AssertionError, Error); + +function truncate(s, n) { + if (typeof s === 'string') { + return s.length < n ? s : s.slice(0, n); + } else { + return s; + } +} +function inspect(something) { + if (functionsHaveNames || !util.isFunction(something)) { + return util.inspect(something); + } + var rawname = getName(something); + var name = rawname ? ': ' + rawname : ''; + return '[Function' + name + ']'; +} +function getMessage(self) { + return truncate(inspect(self.actual), 128) + ' ' + + self.operator + ' ' + + truncate(inspect(self.expected), 128); +} + +// At present only the three keys mentioned above are used and +// understood by the spec. Implementations or sub modules can pass +// other keys to the AssertionError's constructor - they will be +// ignored. + +// 3. All of the following functions must throw an AssertionError +// when a corresponding condition is not met, with a message that +// may be undefined if not provided. All assertion methods provide +// both the actual and expected values to the assertion error for +// display purposes. + +function fail(actual, expected, message, operator, stackStartFunction) { + throw new assert.AssertionError({ + message: message, + actual: actual, + expected: expected, + operator: operator, + stackStartFunction: stackStartFunction + }); +} + +// EXTENSION! allows for well behaved errors defined elsewhere. +assert.fail = fail; + +// 4. Pure assertion tests whether a value is truthy, as determined +// by !!guard. +// assert.ok(guard, message_opt); +// This statement is equivalent to assert.equal(true, !!guard, +// message_opt);. To test strictly for the value true, use +// assert.strictEqual(true, guard, message_opt);. + +function ok(value, message) { + if (!value) fail(value, true, message, '==', assert.ok); +} +assert.ok = ok; + +// 5. The equality assertion tests shallow, coercive equality with +// ==. +// assert.equal(actual, expected, message_opt); + +assert.equal = function equal(actual, expected, message) { + if (actual != expected) fail(actual, expected, message, '==', assert.equal); +}; + +// 6. The non-equality assertion tests for whether two objects are not equal +// with != assert.notEqual(actual, expected, message_opt); + +assert.notEqual = function notEqual(actual, expected, message) { + if (actual == expected) { + fail(actual, expected, message, '!=', assert.notEqual); + } +}; + +// 7. The equivalence assertion tests a deep equality relation. +// assert.deepEqual(actual, expected, message_opt); + +assert.deepEqual = function deepEqual(actual, expected, message) { + if (!_deepEqual(actual, expected, false)) { + fail(actual, expected, message, 'deepEqual', assert.deepEqual); + } +}; + +assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) { + if (!_deepEqual(actual, expected, true)) { + fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual); + } +}; + +function _deepEqual(actual, expected, strict, memos) { + // 7.1. All identical values are equivalent, as determined by ===. + if (actual === expected) { + return true; + } else if (isBuffer(actual) && isBuffer(expected)) { + return compare(actual, expected) === 0; + + // 7.2. If the expected value is a Date object, the actual value is + // equivalent if it is also a Date object that refers to the same time. + } else if (util.isDate(actual) && util.isDate(expected)) { + return actual.getTime() === expected.getTime(); + + // 7.3 If the expected value is a RegExp object, the actual value is + // equivalent if it is also a RegExp object with the same source and + // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`). + } else if (util.isRegExp(actual) && util.isRegExp(expected)) { + return actual.source === expected.source && + actual.global === expected.global && + actual.multiline === expected.multiline && + actual.lastIndex === expected.lastIndex && + actual.ignoreCase === expected.ignoreCase; + + // 7.4. Other pairs that do not both pass typeof value == 'object', + // equivalence is determined by ==. + } else if ((actual === null || typeof actual !== 'object') && + (expected === null || typeof expected !== 'object')) { + return strict ? actual === expected : actual == expected; + + // If both values are instances of typed arrays, wrap their underlying + // ArrayBuffers in a Buffer each to increase performance + // This optimization requires the arrays to have the same type as checked by + // Object.prototype.toString (aka pToString). Never perform binary + // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their + // bit patterns are not identical. + } else if (isView(actual) && isView(expected) && + pToString(actual) === pToString(expected) && + !(actual instanceof Float32Array || + actual instanceof Float64Array)) { + return compare(new Uint8Array(actual.buffer), + new Uint8Array(expected.buffer)) === 0; + + // 7.5 For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical 'prototype' property. Note: this + // accounts for both named and indexed properties on Arrays. + } else if (isBuffer(actual) !== isBuffer(expected)) { + return false; + } else { + memos = memos || {actual: [], expected: []}; + + var actualIndex = memos.actual.indexOf(actual); + if (actualIndex !== -1) { + if (actualIndex === memos.expected.indexOf(expected)) { + return true; + } + } + + memos.actual.push(actual); + memos.expected.push(expected); + + return objEquiv(actual, expected, strict, memos); + } +} + +function isArguments(object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function objEquiv(a, b, strict, actualVisitedObjects) { + if (a === null || a === undefined || b === null || b === undefined) + return false; + // if one is a primitive, the other must be same + if (util.isPrimitive(a) || util.isPrimitive(b)) + return a === b; + if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) + return false; + var aIsArgs = isArguments(a); + var bIsArgs = isArguments(b); + if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs)) + return false; + if (aIsArgs) { + a = pSlice.call(a); + b = pSlice.call(b); + return _deepEqual(a, b, strict); + } + var ka = objectKeys(a); + var kb = objectKeys(b); + var key, i; + // having the same number of owned properties (keys incorporates + // hasOwnProperty) + if (ka.length !== kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] !== kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects)) + return false; + } + return true; +} + +// 8. The non-equivalence assertion tests for any deep inequality. +// assert.notDeepEqual(actual, expected, message_opt); + +assert.notDeepEqual = function notDeepEqual(actual, expected, message) { + if (_deepEqual(actual, expected, false)) { + fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual); + } +}; + +assert.notDeepStrictEqual = notDeepStrictEqual; +function notDeepStrictEqual(actual, expected, message) { + if (_deepEqual(actual, expected, true)) { + fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual); + } +} + + +// 9. The strict equality assertion tests strict equality, as determined by ===. +// assert.strictEqual(actual, expected, message_opt); + +assert.strictEqual = function strictEqual(actual, expected, message) { + if (actual !== expected) { + fail(actual, expected, message, '===', assert.strictEqual); + } +}; + +// 10. The strict non-equality assertion tests for strict inequality, as +// determined by !==. assert.notStrictEqual(actual, expected, message_opt); + +assert.notStrictEqual = function notStrictEqual(actual, expected, message) { + if (actual === expected) { + fail(actual, expected, message, '!==', assert.notStrictEqual); + } +}; + +function expectedException(actual, expected) { + if (!actual || !expected) { + return false; + } + + if (Object.prototype.toString.call(expected) == '[object RegExp]') { + return expected.test(actual); + } + + try { + if (actual instanceof expected) { + return true; + } + } catch (e) { + // Ignore. The instanceof check doesn't work for arrow functions. + } + + if (Error.isPrototypeOf(expected)) { + return false; + } + + return expected.call({}, actual) === true; +} + +function _tryBlock(block) { + var error; + try { + block(); + } catch (e) { + error = e; + } + return error; +} + +function _throws(shouldThrow, block, expected, message) { + var actual; + + if (typeof block !== 'function') { + throw new TypeError('"block" argument must be a function'); + } + + if (typeof expected === 'string') { + message = expected; + expected = null; + } + + actual = _tryBlock(block); + + message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + + (message ? ' ' + message : '.'); + + if (shouldThrow && !actual) { + fail(actual, expected, 'Missing expected exception' + message); + } + + var userProvidedMessage = typeof message === 'string'; + var isUnwantedException = !shouldThrow && util.isError(actual); + var isUnexpectedException = !shouldThrow && actual && !expected; + + if ((isUnwantedException && + userProvidedMessage && + expectedException(actual, expected)) || + isUnexpectedException) { + fail(actual, expected, 'Got unwanted exception' + message); + } + + if ((shouldThrow && actual && expected && + !expectedException(actual, expected)) || (!shouldThrow && actual)) { + throw actual; + } +} + +// 11. Expected to throw an error: +// assert.throws(block, Error_opt, message_opt); + +assert.throws = function(block, /*optional*/error, /*optional*/message) { + _throws(true, block, error, message); +}; + +// EXTENSION! This is annoying to write outside this module. +assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) { + _throws(false, block, error, message); +}; + +assert.ifError = function(err) { if (err) throw err; }; + +// Expose a strict only variant of assert +function strict(value, message) { + if (!value) fail(value, true, message, '==', strict); +} +assert.strict = objectAssign(strict, assert, { + equal: assert.strictEqual, + deepEqual: assert.deepStrictEqual, + notEqual: assert.notStrictEqual, + notDeepEqual: assert.notDeepStrictEqual +}); +assert.strict.strict = assert.strict; + +var objectKeys = Object.keys || function (obj) { + var keys = []; + for (var key in obj) { + if (hasOwn.call(obj, key)) keys.push(key); + } + return keys; +}; + + +/***/ }), + +/***/ "./node_modules/assert/node_modules/inherits/inherits_browser.js": +/*!***********************************************************************!*\ + !*** ./node_modules/assert/node_modules/inherits/inherits_browser.js ***! + \***********************************************************************/ +/***/ ((module) => { + +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } +} + + +/***/ }), + +/***/ "./node_modules/assert/node_modules/util/support/isBufferBrowser.js": +/*!**************************************************************************!*\ + !*** ./node_modules/assert/node_modules/util/support/isBufferBrowser.js ***! + \**************************************************************************/ +/***/ ((module) => { + +module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; +} + +/***/ }), + +/***/ "./node_modules/assert/node_modules/util/util.js": +/*!*******************************************************!*\ + !*** ./node_modules/assert/node_modules/util/util.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +/* provided dependency */ var process = __webpack_require__(/*! ./node_modules/process/browser.js */ "./node_modules/process/browser.js"); +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var formatRegExp = /%[sdj%]/g; +exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; +}; + + +// Mark that a method should not be used. +// Returns a modified function which warns once by default. +// If --no-deprecation is set, then it is a no-op. +exports.deprecate = function(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(__webpack_require__.g.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } + + if (process.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; +}; + + +var debugs = {}; +var debugEnviron; +exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = process.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = process.pid; + debugs[set] = function() { + var msg = exports.format.apply(exports, arguments); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function() {}; + } + } + return debugs[set]; +}; + + +/** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ +/* legacy: obj, showHidden, depth, colors*/ +function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); +} +exports.inspect = inspect; + + +// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics +inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] +}; + +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' +}; + + +function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } +} + + +function stylizeNoColor(str, styleType) { + return str; +} + + +function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; +} + + +function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } + + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); +} + + +function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); +} + + +function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; +} + + +function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; +} + + +function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; +} + + +function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; +} + + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. +function isArray(ar) { + return Array.isArray(ar); +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = __webpack_require__(/*! ./support/isBuffer */ "./node_modules/assert/node_modules/util/support/isBufferBrowser.js"); + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); +} + + +var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + +// 26 Feb 16:19:34 +function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); +} + + +// log is just a thin wrapper to console.log that prepends a timestamp +exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); +}; + + +/** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ +exports.inherits = __webpack_require__(/*! inherits */ "./node_modules/assert/node_modules/inherits/inherits_browser.js"); + +exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; +}; + +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + + +/***/ }), + +/***/ "./node_modules/floating-vue/dist/floating-vue.es.js": +/*!***********************************************************!*\ + !*** ./node_modules/floating-vue/dist/floating-vue.es.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Dropdown": () => (/* binding */ Dropdown), +/* harmony export */ "HIDE_EVENT_MAP": () => (/* binding */ HIDE_EVENT_MAP), +/* harmony export */ "Menu": () => (/* binding */ Menu), +/* harmony export */ "Popper": () => (/* binding */ Popper), +/* harmony export */ "PopperContent": () => (/* binding */ PopperContent), +/* harmony export */ "PopperMethods": () => (/* binding */ PopperMethods), +/* harmony export */ "PopperWrapper": () => (/* binding */ PopperWrapper), +/* harmony export */ "SHOW_EVENT_MAP": () => (/* binding */ SHOW_EVENT_MAP), +/* harmony export */ "ThemeClass": () => (/* binding */ ThemeClass), +/* harmony export */ "Tooltip": () => (/* binding */ Tooltip), +/* harmony export */ "TooltipDirective": () => (/* binding */ TooltipDirective), +/* harmony export */ "VClosePopper": () => (/* binding */ VClosePopper), +/* harmony export */ "VTooltip": () => (/* binding */ VTooltip), +/* harmony export */ "createTooltip": () => (/* binding */ createTooltip), +/* harmony export */ "default": () => (/* binding */ plugin), +/* harmony export */ "destroyTooltip": () => (/* binding */ destroyTooltip), +/* harmony export */ "hideAllPoppers": () => (/* binding */ hideAllPoppers), +/* harmony export */ "install": () => (/* binding */ install), +/* harmony export */ "options": () => (/* binding */ options), +/* harmony export */ "placements": () => (/* binding */ placements) +/* harmony export */ }); +/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/dom */ "./node_modules/@floating-ui/core/dist/floating-ui.core.esm.js"); +/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/dom */ "./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +var __defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __objRest = (source, exclude) => { + var target = {}; + for (var prop in source) + if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) + target[prop] = source[prop]; + if (source != null && __getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(source)) { + if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) + target[prop] = source[prop]; + } + return target; +}; + + +function assign(to, from) { + for (const key in from) { + if (Object.prototype.hasOwnProperty.call(from, key)) { + if (typeof from[key] === "object" && to[key]) { + assign(to[key], from[key]); + } else { + to[key] = from[key]; + } + } + } +} +const config = { + disabled: false, + distance: 5, + skidding: 0, + container: "body", + boundary: void 0, + instantMove: false, + disposeTimeout: 5e3, + popperTriggers: [], + strategy: "absolute", + preventOverflow: true, + flip: true, + shift: true, + overflowPadding: 0, + arrowPadding: 0, + arrowOverflow: true, + themes: { + tooltip: { + placement: "top", + triggers: ["hover", "focus", "touch"], + hideTriggers: (events) => [...events, "click"], + delay: { + show: 200, + hide: 0 + }, + handleResize: false, + html: false, + loadingContent: "..." + }, + dropdown: { + placement: "bottom", + triggers: ["click"], + delay: 0, + handleResize: true, + autoHide: true + }, + menu: { + $extend: "dropdown", + triggers: ["hover", "focus"], + popperTriggers: ["hover", "focus"], + delay: { + show: 0, + hide: 400 + } + } + } +}; +function getDefaultConfig(theme, key) { + let themeConfig = config.themes[theme] || {}; + let value; + do { + value = themeConfig[key]; + if (typeof value === "undefined") { + if (themeConfig.$extend) { + themeConfig = config.themes[themeConfig.$extend] || {}; + } else { + themeConfig = null; + value = config[key]; + } + } else { + themeConfig = null; + } + } while (themeConfig); + return value; +} +function getThemeClasses(theme) { + const result = [theme]; + let themeConfig = config.themes[theme] || {}; + do { + if (themeConfig.$extend && !themeConfig.$resetCss) { + result.push(themeConfig.$extend); + themeConfig = config.themes[themeConfig.$extend] || {}; + } else { + themeConfig = null; + } + } while (themeConfig); + return result.map((c) => `v-popper--theme-${c}`); +} +function getAllParentThemes(theme) { + const result = [theme]; + let themeConfig = config.themes[theme] || {}; + do { + if (themeConfig.$extend) { + result.push(themeConfig.$extend); + themeConfig = config.themes[themeConfig.$extend] || {}; + } else { + themeConfig = null; + } + } while (themeConfig); + return result; +} +var vueResize = ""; +let supportsPassive = false; +if (typeof window !== "undefined") { + supportsPassive = false; + try { + const opts = Object.defineProperty({}, "passive", { + get() { + supportsPassive = true; + } + }); + window.addEventListener("test", null, opts); + } catch (e) { + } +} +let isIOS = false; +if (typeof window !== "undefined" && typeof navigator !== "undefined") { + isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; +} +const placements = ["auto", "top", "bottom", "left", "right"].reduce((acc, base) => acc.concat([ + base, + `${base}-start`, + `${base}-end` +]), []); +const SHOW_EVENT_MAP = { + hover: "mouseenter", + focus: "focus", + click: "click", + touch: "touchstart" +}; +const HIDE_EVENT_MAP = { + hover: "mouseleave", + focus: "blur", + click: "click", + touch: "touchend" +}; +function removeFromArray(array, item) { + const index = array.indexOf(item); + if (index !== -1) { + array.splice(index, 1); + } +} +function nextFrame() { + return new Promise((resolve) => requestAnimationFrame(() => { + requestAnimationFrame(resolve); + })); +} +const shownPoppers = []; +let hidingPopper = null; +const shownPoppersByTheme = {}; +function getShownPoppersByTheme(theme) { + let list = shownPoppersByTheme[theme]; + if (!list) { + list = shownPoppersByTheme[theme] = []; + } + return list; +} +let Element = function() { +}; +if (typeof window !== "undefined") { + Element = window.Element; +} +function defaultPropFactory(prop) { + return function() { + const props = this.$props; + return getDefaultConfig(props.theme, prop); + }; +} +const PROVIDE_KEY = "__floating-vue__popper"; +var PrivatePopper = () => ({ + name: "VPopper", + props: { + theme: { + type: String, + required: true + }, + targetNodes: { + type: Function, + required: true + }, + referenceNode: { + type: Function, + required: true + }, + popperNode: { + type: Function, + required: true + }, + shown: { + type: Boolean, + default: false + }, + showGroup: { + type: String, + default: null + }, + ariaId: { + default: null + }, + disabled: { + type: Boolean, + default: defaultPropFactory("disabled") + }, + positioningDisabled: { + type: Boolean, + default: defaultPropFactory("positioningDisabled") + }, + placement: { + type: String, + default: defaultPropFactory("placement"), + validator: (value) => placements.includes(value) + }, + delay: { + type: [String, Number, Object], + default: defaultPropFactory("delay") + }, + distance: { + type: [Number, String], + default: defaultPropFactory("distance") + }, + skidding: { + type: [Number, String], + default: defaultPropFactory("skidding") + }, + triggers: { + type: Array, + default: defaultPropFactory("triggers") + }, + showTriggers: { + type: [Array, Function], + default: defaultPropFactory("showTriggers") + }, + hideTriggers: { + type: [Array, Function], + default: defaultPropFactory("hideTriggers") + }, + popperTriggers: { + type: Array, + default: defaultPropFactory("popperTriggers") + }, + popperShowTriggers: { + type: [Array, Function], + default: defaultPropFactory("popperShowTriggers") + }, + popperHideTriggers: { + type: [Array, Function], + default: defaultPropFactory("popperHideTriggers") + }, + container: { + type: [String, Object, Element, Boolean], + default: defaultPropFactory("container") + }, + boundary: { + type: [String, Element], + default: defaultPropFactory("boundary") + }, + strategy: { + type: String, + validator: (value) => ["absolute", "fixed"].includes(value), + default: defaultPropFactory("strategy") + }, + autoHide: { + type: [Boolean, Function], + default: defaultPropFactory("autoHide") + }, + handleResize: { + type: Boolean, + default: defaultPropFactory("handleResize") + }, + instantMove: { + type: Boolean, + default: defaultPropFactory("instantMove") + }, + eagerMount: { + type: Boolean, + default: defaultPropFactory("eagerMount") + }, + popperClass: { + type: [String, Array, Object], + default: defaultPropFactory("popperClass") + }, + computeTransformOrigin: { + type: Boolean, + default: defaultPropFactory("computeTransformOrigin") + }, + autoMinSize: { + type: Boolean, + default: defaultPropFactory("autoMinSize") + }, + autoSize: { + type: [Boolean, String], + default: defaultPropFactory("autoSize") + }, + autoMaxSize: { + type: Boolean, + default: defaultPropFactory("autoMaxSize") + }, + autoBoundaryMaxSize: { + type: Boolean, + default: defaultPropFactory("autoBoundaryMaxSize") + }, + preventOverflow: { + type: Boolean, + default: defaultPropFactory("preventOverflow") + }, + overflowPadding: { + type: [Number, String], + default: defaultPropFactory("overflowPadding") + }, + arrowPadding: { + type: [Number, String], + default: defaultPropFactory("arrowPadding") + }, + arrowOverflow: { + type: Boolean, + default: defaultPropFactory("arrowOverflow") + }, + flip: { + type: Boolean, + default: defaultPropFactory("flip") + }, + shift: { + type: Boolean, + default: defaultPropFactory("shift") + }, + shiftCrossAxis: { + type: Boolean, + default: defaultPropFactory("shiftCrossAxis") + }, + noAutoFocus: { + type: Boolean, + default: defaultPropFactory("noAutoFocus") + } + }, + provide() { + return { + [PROVIDE_KEY]: { + parentPopper: this + } + }; + }, + inject: { + [PROVIDE_KEY]: { default: null } + }, + data() { + return { + isShown: false, + isMounted: false, + skipTransition: false, + classes: { + showFrom: false, + showTo: false, + hideFrom: false, + hideTo: true + }, + result: { + x: 0, + y: 0, + placement: "", + strategy: this.strategy, + arrow: { + x: 0, + y: 0, + centerOffset: 0 + }, + transformOrigin: null + }, + shownChildren: /* @__PURE__ */ new Set(), + lastAutoHide: true + }; + }, + computed: { + popperId() { + return this.ariaId != null ? this.ariaId : this.randomId; + }, + shouldMountContent() { + return this.eagerMount || this.isMounted; + }, + slotData() { + return { + popperId: this.popperId, + isShown: this.isShown, + shouldMountContent: this.shouldMountContent, + skipTransition: this.skipTransition, + autoHide: typeof this.autoHide === "function" ? this.lastAutoHide : this.autoHide, + show: this.show, + hide: this.hide, + handleResize: this.handleResize, + onResize: this.onResize, + classes: __spreadProps(__spreadValues({}, this.classes), { + popperClass: this.popperClass + }), + result: this.positioningDisabled ? null : this.result + }; + }, + parentPopper() { + var _a; + return (_a = this[PROVIDE_KEY]) == null ? void 0 : _a.parentPopper; + }, + hasPopperShowTriggerHover() { + var _a, _b; + return ((_a = this.popperTriggers) == null ? void 0 : _a.includes("hover")) || ((_b = this.popperShowTriggers) == null ? void 0 : _b.includes("hover")); + } + }, + watch: __spreadValues(__spreadValues({ + shown: "$_autoShowHide", + disabled(value) { + if (value) { + this.dispose(); + } else { + this.init(); + } + }, + async container() { + if (this.isShown) { + this.$_ensureTeleport(); + await this.$_computePosition(); + } + } + }, [ + "triggers", + "positioningDisabled" + ].reduce((acc, prop) => { + acc[prop] = "$_refreshListeners"; + return acc; + }, {})), [ + "placement", + "distance", + "skidding", + "boundary", + "strategy", + "overflowPadding", + "arrowPadding", + "preventOverflow", + "shift", + "shiftCrossAxis", + "flip" + ].reduce((acc, prop) => { + acc[prop] = "$_computePosition"; + return acc; + }, {})), + created() { + this.$_isDisposed = true; + this.randomId = `popper_${[Math.random(), Date.now()].map((n) => n.toString(36).substring(2, 10)).join("_")}`; + if (this.autoMinSize) { + console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'); + } + if (this.autoMaxSize) { + console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead."); + } + }, + mounted() { + this.init(); + this.$_detachPopperNode(); + }, + activated() { + this.$_autoShowHide(); + }, + deactivated() { + this.hide(); + }, + beforeDestroy() { + this.dispose(); + }, + methods: { + show({ event = null, skipDelay = false, force = false } = {}) { + var _a, _b; + if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) && this.parentPopper.lockedChild !== this) + return; + this.$_pendingHide = false; + if (force || !this.disabled) { + if (((_b = this.parentPopper) == null ? void 0 : _b.lockedChild) === this) { + this.parentPopper.lockedChild = null; + } + this.$_scheduleShow(event, skipDelay); + this.$emit("show"); + this.$_showFrameLocked = true; + requestAnimationFrame(() => { + this.$_showFrameLocked = false; + }); + } + this.$emit("update:shown", true); + }, + hide({ event = null, skipDelay = false, skipAiming = false } = {}) { + var _a; + if (this.$_hideInProgress) + return; + if (this.shownChildren.size > 0) { + this.$_pendingHide = true; + return; + } + if (!skipAiming && this.hasPopperShowTriggerHover && this.$_isAimingPopper()) { + if (this.parentPopper) { + this.parentPopper.lockedChild = this; + clearTimeout(this.parentPopper.lockedChildTimer); + this.parentPopper.lockedChildTimer = setTimeout(() => { + if (this.parentPopper.lockedChild === this) { + this.parentPopper.lockedChild.hide({ skipDelay }); + this.parentPopper.lockedChild = null; + } + }, 1e3); + } + return; + } + if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) === this) { + this.parentPopper.lockedChild = null; + } + this.$_pendingHide = false; + this.$_scheduleHide(event, skipDelay); + this.$emit("hide"); + this.$emit("update:shown", false); + }, + init() { + if (!this.$_isDisposed) + return; + this.$_isDisposed = false; + this.isMounted = false; + this.$_events = []; + this.$_preventShow = false; + this.$_referenceNode = this.referenceNode(); + this.$_targetNodes = this.targetNodes().filter((e) => e.nodeType === e.ELEMENT_NODE); + this.$_popperNode = this.popperNode(); + this.$_innerNode = this.$_popperNode.querySelector(".v-popper__inner"); + this.$_arrowNode = this.$_popperNode.querySelector(".v-popper__arrow-container"); + this.$_swapTargetAttrs("title", "data-original-title"); + this.$_detachPopperNode(); + if (this.triggers.length) { + this.$_addEventListeners(); + } + if (this.shown) { + this.show(); + } + }, + dispose() { + if (this.$_isDisposed) + return; + this.$_isDisposed = true; + this.$_removeEventListeners(); + this.hide({ skipDelay: true }); + this.$_detachPopperNode(); + this.isMounted = false; + this.isShown = false; + this.$_updateParentShownChildren(false); + this.$_swapTargetAttrs("data-original-title", "title"); + this.$emit("dispose"); + }, + async onResize() { + if (this.isShown) { + await this.$_computePosition(); + this.$emit("resize"); + } + }, + async $_computePosition() { + var _a; + if (this.$_isDisposed || this.positioningDisabled) + return; + const options2 = { + strategy: this.strategy, + middleware: [] + }; + if (this.distance || this.skidding) { + options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.offset)({ + mainAxis: this.distance, + crossAxis: this.skidding + })); + } + const isPlacementAuto = this.placement.startsWith("auto"); + if (isPlacementAuto) { + options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.autoPlacement)({ + alignment: (_a = this.placement.split("-")[1]) != null ? _a : "" + })); + } else { + options2.placement = this.placement; + } + if (this.preventOverflow) { + if (this.shift) { + options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.shift)({ + padding: this.overflowPadding, + boundary: this.boundary, + crossAxis: this.shiftCrossAxis + })); + } + if (!isPlacementAuto && this.flip) { + options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.flip)({ + padding: this.overflowPadding, + boundary: this.boundary + })); + } + } + options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.arrow)({ + element: this.$_arrowNode, + padding: this.arrowPadding + })); + if (this.arrowOverflow) { + options2.middleware.push({ + name: "arrowOverflow", + fn: ({ placement, rects, middlewareData }) => { + let overflow; + const { centerOffset } = middlewareData.arrow; + if (placement.startsWith("top") || placement.startsWith("bottom")) { + overflow = Math.abs(centerOffset) > rects.reference.width / 2; + } else { + overflow = Math.abs(centerOffset) > rects.reference.height / 2; + } + return { + data: { + overflow + } + }; + } + }); + } + if (this.autoMinSize || this.autoSize) { + const autoSize = this.autoSize ? this.autoSize : this.autoMinSize ? "min" : null; + options2.middleware.push({ + name: "autoSize", + fn: ({ rects, placement, middlewareData }) => { + var _a2; + if ((_a2 = middlewareData.autoSize) == null ? void 0 : _a2.skip) { + return {}; + } + let width; + let height; + if (placement.startsWith("top") || placement.startsWith("bottom")) { + width = rects.reference.width; + } else { + height = rects.reference.height; + } + this.$_innerNode.style[autoSize === "min" ? "minWidth" : autoSize === "max" ? "maxWidth" : "width"] = width != null ? `${width}px` : null; + this.$_innerNode.style[autoSize === "min" ? "minHeight" : autoSize === "max" ? "maxHeight" : "height"] = height != null ? `${height}px` : null; + return { + data: { + skip: true + }, + reset: { + rects: true + } + }; + } + }); + } + if (this.autoMaxSize || this.autoBoundaryMaxSize) { + this.$_innerNode.style.maxWidth = null; + this.$_innerNode.style.maxHeight = null; + options2.middleware.push((0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_0__.size)({ + boundary: this.boundary, + padding: this.overflowPadding, + apply: ({ width, height }) => { + this.$_innerNode.style.maxWidth = width != null ? `${width}px` : null; + this.$_innerNode.style.maxHeight = height != null ? `${height}px` : null; + } + })); + } + const data = await (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.computePosition)(this.$_referenceNode, this.$_popperNode, options2); + Object.assign(this.result, { + x: data.x, + y: data.y, + placement: data.placement, + strategy: data.strategy, + arrow: __spreadValues(__spreadValues({}, data.middlewareData.arrow), data.middlewareData.arrowOverflow) + }); + }, + $_scheduleShow(event = null, skipDelay = false) { + this.$_updateParentShownChildren(true); + this.$_hideInProgress = false; + clearTimeout(this.$_scheduleTimer); + if (hidingPopper && this.instantMove && hidingPopper.instantMove && hidingPopper !== this.parentPopper) { + hidingPopper.$_applyHide(true); + this.$_applyShow(true); + return; + } + if (skipDelay) { + this.$_applyShow(); + } else { + this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay("show")); + } + }, + $_scheduleHide(event = null, skipDelay = false) { + if (this.shownChildren.size > 0) { + this.$_pendingHide = true; + return; + } + this.$_updateParentShownChildren(false); + this.$_hideInProgress = true; + clearTimeout(this.$_scheduleTimer); + if (this.isShown) { + hidingPopper = this; + } + if (skipDelay) { + this.$_applyHide(); + } else { + this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay("hide")); + } + }, + $_computeDelay(type) { + const delay = this.delay; + return parseInt(delay && delay[type] || delay || 0); + }, + async $_applyShow(skipTransition = false) { + clearTimeout(this.$_disposeTimer); + clearTimeout(this.$_scheduleTimer); + this.skipTransition = skipTransition; + if (this.isShown) { + return; + } + this.$_ensureTeleport(); + await nextFrame(); + await this.$_computePosition(); + await this.$_applyShowEffect(); + if (!this.positioningDisabled) { + this.$_registerEventListeners([ + ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.getScrollParents)(this.$_referenceNode), + ...(0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_1__.getScrollParents)(this.$_popperNode) + ], "scroll", () => { + this.$_computePosition(); + }); + } + }, + async $_applyShowEffect() { + if (this.$_hideInProgress) + return; + if (this.computeTransformOrigin) { + const bounds = this.$_referenceNode.getBoundingClientRect(); + const popperWrapper = this.$_popperNode.querySelector(".v-popper__wrapper"); + const parentBounds = popperWrapper.parentNode.getBoundingClientRect(); + const x = bounds.x + bounds.width / 2 - (parentBounds.left + popperWrapper.offsetLeft); + const y = bounds.y + bounds.height / 2 - (parentBounds.top + popperWrapper.offsetTop); + this.result.transformOrigin = `${x}px ${y}px`; + } + this.isShown = true; + this.$_applyAttrsToTarget({ + "aria-describedby": this.popperId, + "data-popper-shown": "" + }); + const showGroup = this.showGroup; + if (showGroup) { + let popover; + for (let i = 0; i < shownPoppers.length; i++) { + popover = shownPoppers[i]; + if (popover.showGroup !== showGroup) { + popover.hide(); + popover.$emit("close-group"); + } + } + } + shownPoppers.push(this); + document.body.classList.add("v-popper--some-open"); + for (const theme of getAllParentThemes(this.theme)) { + getShownPoppersByTheme(theme).push(this); + document.body.classList.add(`v-popper--some-open--${theme}`); + } + this.$emit("apply-show"); + this.classes.showFrom = true; + this.classes.showTo = false; + this.classes.hideFrom = false; + this.classes.hideTo = false; + await nextFrame(); + this.classes.showFrom = false; + this.classes.showTo = true; + if (!this.noAutoFocus) + this.$_popperNode.focus(); + }, + async $_applyHide(skipTransition = false) { + if (this.shownChildren.size > 0) { + this.$_pendingHide = true; + this.$_hideInProgress = false; + return; + } + clearTimeout(this.$_scheduleTimer); + if (!this.isShown) { + return; + } + this.skipTransition = skipTransition; + removeFromArray(shownPoppers, this); + if (shownPoppers.length === 0) { + document.body.classList.remove("v-popper--some-open"); + } + for (const theme of getAllParentThemes(this.theme)) { + const list = getShownPoppersByTheme(theme); + removeFromArray(list, this); + if (list.length === 0) { + document.body.classList.remove(`v-popper--some-open--${theme}`); + } + } + if (hidingPopper === this) { + hidingPopper = null; + } + this.isShown = false; + this.$_applyAttrsToTarget({ + "aria-describedby": void 0, + "data-popper-shown": void 0 + }); + clearTimeout(this.$_disposeTimer); + const disposeTime = getDefaultConfig(this.theme, "disposeTimeout"); + if (disposeTime !== null) { + this.$_disposeTimer = setTimeout(() => { + if (this.$_popperNode) { + this.$_detachPopperNode(); + this.isMounted = false; + } + }, disposeTime); + } + this.$_removeEventListeners("scroll"); + this.$emit("apply-hide"); + this.classes.showFrom = false; + this.classes.showTo = false; + this.classes.hideFrom = true; + this.classes.hideTo = false; + await nextFrame(); + this.classes.hideFrom = false; + this.classes.hideTo = true; + }, + $_autoShowHide() { + if (this.shown) { + this.show(); + } else { + this.hide(); + } + }, + $_ensureTeleport() { + if (this.$_isDisposed) + return; + let container = this.container; + if (typeof container === "string") { + container = window.document.querySelector(container); + } else if (container === false) { + container = this.$_targetNodes[0].parentNode; + } + if (!container) { + throw new Error("No container for popover: " + this.container); + } + container.appendChild(this.$_popperNode); + this.isMounted = true; + }, + $_addEventListeners() { + const handleShow = (event) => { + if (this.isShown && !this.$_hideInProgress) { + return; + } + event.usedByTooltip = true; + !this.$_preventShow && this.show({ event }); + }; + this.$_registerTriggerListeners(this.$_targetNodes, SHOW_EVENT_MAP, this.triggers, this.showTriggers, handleShow); + this.$_registerTriggerListeners([this.$_popperNode], SHOW_EVENT_MAP, this.popperTriggers, this.popperShowTriggers, handleShow); + const handleHide = (skipAiming) => (event) => { + if (event.usedByTooltip) { + return; + } + this.hide({ event, skipAiming }); + }; + this.$_registerTriggerListeners(this.$_targetNodes, HIDE_EVENT_MAP, this.triggers, this.hideTriggers, handleHide(false)); + this.$_registerTriggerListeners([this.$_popperNode], HIDE_EVENT_MAP, this.popperTriggers, this.popperHideTriggers, handleHide(true)); + }, + $_registerEventListeners(targetNodes, eventType, handler) { + this.$_events.push({ targetNodes, eventType, handler }); + targetNodes.forEach((node) => node.addEventListener(eventType, handler, supportsPassive ? { + passive: true + } : void 0)); + }, + $_registerTriggerListeners(targetNodes, eventMap, commonTriggers, customTrigger, handler) { + let triggers = commonTriggers; + if (customTrigger != null) { + triggers = typeof customTrigger === "function" ? customTrigger(triggers) : customTrigger; + } + triggers.forEach((trigger) => { + const eventType = eventMap[trigger]; + if (eventType) { + this.$_registerEventListeners(targetNodes, eventType, handler); + } + }); + }, + $_removeEventListeners(filterEventType) { + const newList = []; + this.$_events.forEach((listener) => { + const { targetNodes, eventType, handler } = listener; + if (!filterEventType || filterEventType === eventType) { + targetNodes.forEach((node) => node.removeEventListener(eventType, handler)); + } else { + newList.push(listener); + } + }); + this.$_events = newList; + }, + $_refreshListeners() { + if (!this.$_isDisposed) { + this.$_removeEventListeners(); + this.$_addEventListeners(); + } + }, + $_handleGlobalClose(event, touch = false) { + if (this.$_showFrameLocked) + return; + this.hide({ event }); + if (event.closePopover) { + this.$emit("close-directive"); + } else { + this.$emit("auto-hide"); + } + if (touch) { + this.$_preventShow = true; + setTimeout(() => { + this.$_preventShow = false; + }, 300); + } + }, + $_detachPopperNode() { + this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode); + }, + $_swapTargetAttrs(attrFrom, attrTo) { + for (const el of this.$_targetNodes) { + const value = el.getAttribute(attrFrom); + if (value) { + el.removeAttribute(attrFrom); + el.setAttribute(attrTo, value); + } + } + }, + $_applyAttrsToTarget(attrs) { + for (const el of this.$_targetNodes) { + for (const n in attrs) { + const value = attrs[n]; + if (value == null) { + el.removeAttribute(n); + } else { + el.setAttribute(n, value); + } + } + } + }, + $_updateParentShownChildren(value) { + let parent = this.parentPopper; + while (parent) { + if (value) { + parent.shownChildren.add(this.randomId); + } else { + parent.shownChildren.delete(this.randomId); + if (parent.$_pendingHide) { + parent.hide(); + } + } + parent = parent.parentPopper; + } + }, + $_isAimingPopper() { + const referenceBounds = this.$el.getBoundingClientRect(); + if (mouseX >= referenceBounds.left && mouseX <= referenceBounds.right && mouseY >= referenceBounds.top && mouseY <= referenceBounds.bottom) { + const popperBounds = this.$_popperNode.getBoundingClientRect(); + const vectorX = mouseX - mousePreviousX; + const vectorY = mouseY - mousePreviousY; + const distance = popperBounds.left + popperBounds.width / 2 - mousePreviousX + (popperBounds.top + popperBounds.height / 2) - mousePreviousY; + const newVectorLength = distance + popperBounds.width + popperBounds.height; + const edgeX = mousePreviousX + vectorX * newVectorLength; + const edgeY = mousePreviousY + vectorY * newVectorLength; + return lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.left, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.right, popperBounds.top) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.right, popperBounds.top, popperBounds.right, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.bottom, popperBounds.right, popperBounds.bottom); + } + return false; + } + }, + render() { + return this.$scopedSlots.default(this.slotData)[0]; + } +}); +if (typeof document !== "undefined" && typeof window !== "undefined") { + if (isIOS) { + document.addEventListener("touchstart", handleGlobalMousedown, supportsPassive ? { + passive: true, + capture: true + } : true); + document.addEventListener("touchend", handleGlobalTouchend, supportsPassive ? { + passive: true, + capture: true + } : true); + } else { + window.addEventListener("mousedown", handleGlobalMousedown, true); + window.addEventListener("click", handleGlobalClick, true); + } + window.addEventListener("resize", computePositionAllShownPoppers); +} +function handleGlobalMousedown(event) { + for (let i = 0; i < shownPoppers.length; i++) { + const popper = shownPoppers[i]; + try { + const popperContent = popper.popperNode(); + popper.$_mouseDownContains = popperContent.contains(event.target); + } catch (e) { + } + } +} +function handleGlobalClick(event) { + handleGlobalClose(event); +} +function handleGlobalTouchend(event) { + handleGlobalClose(event, true); +} +function handleGlobalClose(event, touch = false) { + const preventClose = {}; + for (let i = shownPoppers.length - 1; i >= 0; i--) { + const popper = shownPoppers[i]; + try { + const contains = popper.$_containsGlobalTarget = isContainingEventTarget(popper, event); + popper.$_pendingHide = false; + requestAnimationFrame(() => { + popper.$_pendingHide = false; + if (preventClose[popper.randomId]) + return; + if (shouldAutoHide(popper, contains, event)) { + popper.$_handleGlobalClose(event, touch); + if (!event.closeAllPopover && event.closePopover && contains) { + let parent2 = popper.parentPopper; + while (parent2) { + preventClose[parent2.randomId] = true; + parent2 = parent2.parentPopper; + } + return; + } + let parent = popper.parentPopper; + while (parent) { + if (shouldAutoHide(parent, parent.$_containsGlobalTarget, event)) { + parent.$_handleGlobalClose(event, touch); + } else { + break; + } + parent = parent.parentPopper; + } + } + }); + } catch (e) { + } + } +} +function isContainingEventTarget(popper, event) { + const popperContent = popper.popperNode(); + return popper.$_mouseDownContains || popperContent.contains(event.target); +} +function shouldAutoHide(popper, contains, event) { + return event.closeAllPopover || event.closePopover && contains || getAutoHideResult(popper, event) && !contains; +} +function getAutoHideResult(popper, event) { + if (typeof popper.autoHide === "function") { + const result = popper.autoHide(event); + popper.lastAutoHide = result; + return result; + } + return popper.autoHide; +} +function computePositionAllShownPoppers(event) { + for (let i = 0; i < shownPoppers.length; i++) { + const popper = shownPoppers[i]; + popper.$_computePosition(event); + } +} +function hideAllPoppers() { + for (let i = 0; i < shownPoppers.length; i++) { + const popper = shownPoppers[i]; + popper.hide(); + } +} +let mousePreviousX = 0; +let mousePreviousY = 0; +let mouseX = 0; +let mouseY = 0; +if (typeof window !== "undefined") { + window.addEventListener("mousemove", (event) => { + mousePreviousX = mouseX; + mousePreviousY = mouseY; + mouseX = event.clientX; + mouseY = event.clientY; + }, supportsPassive ? { + passive: true + } : void 0); +} +function lineIntersectsLine(x1, y1, x2, y2, x3, y3, x4, y4) { + const uA = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1)); + const uB = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1)); + return uA >= 0 && uA <= 1 && uB >= 0 && uB <= 1; +} +function getInternetExplorerVersion() { + var ua = window.navigator.userAgent; + var msie = ua.indexOf("MSIE "); + if (msie > 0) { + return parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)), 10); + } + var trident = ua.indexOf("Trident/"); + if (trident > 0) { + var rv = ua.indexOf("rv:"); + return parseInt(ua.substring(rv + 3, ua.indexOf(".", rv)), 10); + } + var edge = ua.indexOf("Edge/"); + if (edge > 0) { + return parseInt(ua.substring(edge + 5, ua.indexOf(".", edge)), 10); + } + return -1; +} +var isIE; +function initCompat() { + if (!initCompat.init) { + initCompat.init = true; + isIE = getInternetExplorerVersion() !== -1; + } +} +var script = { + name: "ResizeObserver", + props: { + emitOnMount: { + type: Boolean, + default: false + }, + ignoreWidth: { + type: Boolean, + default: false + }, + ignoreHeight: { + type: Boolean, + default: false + } + }, + mounted: function mounted() { + var _this = this; + initCompat(); + this.$nextTick(function() { + _this._w = _this.$el.offsetWidth; + _this._h = _this.$el.offsetHeight; + if (_this.emitOnMount) { + _this.emitSize(); + } + }); + var object = document.createElement("object"); + this._resizeObject = object; + object.setAttribute("aria-hidden", "true"); + object.setAttribute("tabindex", -1); + object.onload = this.addResizeHandlers; + object.type = "text/html"; + if (isIE) { + this.$el.appendChild(object); + } + object.data = "about:blank"; + if (!isIE) { + this.$el.appendChild(object); + } + }, + beforeDestroy: function beforeDestroy() { + this.removeResizeHandlers(); + }, + methods: { + compareAndNotify: function compareAndNotify() { + if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) { + this._w = this.$el.offsetWidth; + this._h = this.$el.offsetHeight; + this.emitSize(); + } + }, + emitSize: function emitSize() { + this.$emit("notify", { + width: this._w, + height: this._h + }); + }, + addResizeHandlers: function addResizeHandlers() { + this._resizeObject.contentDocument.defaultView.addEventListener("resize", this.compareAndNotify); + this.compareAndNotify(); + }, + removeResizeHandlers: function removeResizeHandlers() { + if (this._resizeObject && this._resizeObject.onload) { + if (!isIE && this._resizeObject.contentDocument) { + this._resizeObject.contentDocument.defaultView.removeEventListener("resize", this.compareAndNotify); + } + this.$el.removeChild(this._resizeObject); + this._resizeObject.onload = null; + this._resizeObject = null; + } + } + } +}; +function normalizeComponent$1(template, style, script2, scopeId, isFunctionalTemplate, moduleIdentifier, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) { + if (typeof shadowMode !== "boolean") { + createInjectorSSR = createInjector; + createInjector = shadowMode; + shadowMode = false; + } + var options2 = typeof script2 === "function" ? script2.options : script2; + if (template && template.render) { + options2.render = template.render; + options2.staticRenderFns = template.staticRenderFns; + options2._compiled = true; + if (isFunctionalTemplate) { + options2.functional = true; + } + } + if (scopeId) { + options2._scopeId = scopeId; + } + var hook; + if (moduleIdentifier) { + hook = function hook2(context) { + context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; + if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") { + context = __VUE_SSR_CONTEXT__; + } + if (style) { + style.call(this, createInjectorSSR(context)); + } + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier); + } + }; + options2._ssrRegister = hook; + } else if (style) { + hook = shadowMode ? function(context) { + style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot)); + } : function(context) { + style.call(this, createInjector(context)); + }; + } + if (hook) { + if (options2.functional) { + var originalRender = options2.render; + options2.render = function renderWithStyleInjection(h, context) { + hook.call(context); + return originalRender(h, context); + }; + } else { + var existing = options2.beforeCreate; + options2.beforeCreate = existing ? [].concat(existing, hook) : [hook]; + } + } + return script2; +} +var __vue_script__ = script; +var __vue_render__ = function __vue_render__2() { + var _vm = this; + var _h = _vm.$createElement; + var _c = _vm._self._c || _h; + return _c("div", { + staticClass: "resize-observer", + attrs: { + tabindex: "-1" + } + }); +}; +var __vue_staticRenderFns__ = []; +__vue_render__._withStripped = true; +var __vue_inject_styles__ = void 0; +var __vue_scope_id__ = "data-v-8859cc6c"; +var __vue_module_identifier__ = void 0; +var __vue_is_functional_template__ = false; +var __vue_component__ = /* @__PURE__ */ normalizeComponent$1({ + render: __vue_render__, + staticRenderFns: __vue_staticRenderFns__ +}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, void 0, void 0, void 0); +function install$1(Vue2) { + Vue2.component("resize-observer", __vue_component__); + Vue2.component("ResizeObserver", __vue_component__); +} +var plugin$1 = { + version: "1.0.1", + install: install$1 +}; +var GlobalVue$1 = null; +if (typeof window !== "undefined") { + GlobalVue$1 = window.Vue; +} else if (typeof __webpack_require__.g !== "undefined") { + GlobalVue$1 = __webpack_require__.g.Vue; +} +if (GlobalVue$1) { + GlobalVue$1.use(plugin$1); +} +var PrivateThemeClass = { + computed: { + themeClass() { + return getThemeClasses(this.theme); + } + } +}; +var __vue2_script$5 = { + name: "VPopperContent", + components: { + ResizeObserver: __vue_component__ + }, + mixins: [ + PrivateThemeClass + ], + props: { + popperId: String, + theme: String, + shown: Boolean, + mounted: Boolean, + skipTransition: Boolean, + autoHide: Boolean, + handleResize: Boolean, + classes: Object, + result: Object + }, + methods: { + toPx(value) { + if (value != null && !isNaN(value)) { + return `${value}px`; + } + return null; + } + } +}; +var render$2 = function() { + var _vm = this; + var _h = _vm.$createElement; + var _c = _vm._self._c || _h; + return _c("div", { ref: "popover", staticClass: "v-popper__popper", class: [ + _vm.themeClass, + _vm.classes.popperClass, + { + "v-popper__popper--shown": _vm.shown, + "v-popper__popper--hidden": !_vm.shown, + "v-popper__popper--show-from": _vm.classes.showFrom, + "v-popper__popper--show-to": _vm.classes.showTo, + "v-popper__popper--hide-from": _vm.classes.hideFrom, + "v-popper__popper--hide-to": _vm.classes.hideTo, + "v-popper__popper--skip-transition": _vm.skipTransition, + "v-popper__popper--arrow-overflow": _vm.result && _vm.result.arrow.overflow, + "v-popper__popper--no-positioning": !_vm.result + } + ], style: _vm.result ? { + position: _vm.result.strategy, + transform: "translate3d(" + Math.round(_vm.result.x) + "px," + Math.round(_vm.result.y) + "px,0)" + } : void 0, attrs: { "id": _vm.popperId, "aria-hidden": _vm.shown ? "false" : "true", "tabindex": _vm.autoHide ? 0 : void 0, "data-popper-placement": _vm.result ? _vm.result.placement : void 0 }, on: { "keyup": function($event) { + if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "esc", 27, $event.key, ["Esc", "Escape"])) { + return null; + } + _vm.autoHide && _vm.$emit("hide"); + } } }, [_c("div", { staticClass: "v-popper__backdrop", on: { "click": function($event) { + _vm.autoHide && _vm.$emit("hide"); + } } }), _c("div", { staticClass: "v-popper__wrapper", style: _vm.result ? { + transformOrigin: _vm.result.transformOrigin + } : void 0 }, [_c("div", { ref: "inner", staticClass: "v-popper__inner" }, [_vm.mounted ? [_c("div", [_vm._t("default")], 2), _vm.handleResize ? _c("ResizeObserver", { on: { "notify": function($event) { + return _vm.$emit("resize", $event); + } } }) : _vm._e()] : _vm._e()], 2), _c("div", { ref: "arrow", staticClass: "v-popper__arrow-container", style: _vm.result ? { + left: _vm.toPx(_vm.result.arrow.x), + top: _vm.toPx(_vm.result.arrow.y) + } : void 0 }, [_c("div", { staticClass: "v-popper__arrow-outer" }), _c("div", { staticClass: "v-popper__arrow-inner" })])])]); +}; +var staticRenderFns$2 = []; +var PopperContent_vue_vue_type_style_index_0_lang = ""; +function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) { + var options2 = typeof scriptExports === "function" ? scriptExports.options : scriptExports; + if (render2) { + options2.render = render2; + options2.staticRenderFns = staticRenderFns2; + options2._compiled = true; + } + if (functionalTemplate) { + options2.functional = true; + } + if (scopeId) { + options2._scopeId = "data-v-" + scopeId; + } + var hook; + if (moduleIdentifier) { + hook = function(context) { + context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; + if (!context && typeof __VUE_SSR_CONTEXT__ !== "undefined") { + context = __VUE_SSR_CONTEXT__; + } + if (injectStyles) { + injectStyles.call(this, context); + } + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier); + } + }; + options2._ssrRegister = hook; + } else if (injectStyles) { + hook = shadowMode ? function() { + injectStyles.call(this, (options2.functional ? this.parent : this).$root.$options.shadowRoot); + } : injectStyles; + } + if (hook) { + if (options2.functional) { + options2._injectStyles = hook; + var originalRender = options2.render; + options2.render = function renderWithStyleInjection(h, context) { + hook.call(context); + return originalRender(h, context); + }; + } else { + var existing = options2.beforeCreate; + options2.beforeCreate = existing ? [].concat(existing, hook) : [hook]; + } + } + return { + exports: scriptExports, + options: options2 + }; +} +const __cssModules$5 = {}; +var __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$2, staticRenderFns$2, false, __vue2_injectStyles$5, null, null, null); +function __vue2_injectStyles$5(context) { + for (let o in __cssModules$5) { + this[o] = __cssModules$5[o]; + } +} +var PrivatePopperContent = /* @__PURE__ */ function() { + return __component__$5.exports; +}(); +var PrivatePopperMethods = { + methods: { + show(...args) { + return this.$refs.popper.show(...args); + }, + hide(...args) { + return this.$refs.popper.hide(...args); + }, + dispose(...args) { + return this.$refs.popper.dispose(...args); + }, + onResize(...args) { + return this.$refs.popper.onResize(...args); + } + } +}; +var __vue2_script$4 = { + name: "VPopperWrapper", + components: { + Popper: PrivatePopper(), + PopperContent: PrivatePopperContent + }, + mixins: [ + PrivatePopperMethods, + PrivateThemeClass + ], + inheritAttrs: false, + props: { + theme: { + type: String, + default() { + return this.$options.vPopperTheme; + } + } + }, + methods: { + getTargetNodes() { + return Array.from(this.$refs.reference.children).filter((node) => node !== this.$refs.popperContent.$el); + } + } +}; +var render$1 = function() { + var _vm = this; + var _h = _vm.$createElement; + var _c = _vm._self._c || _h; + return _c("Popper", _vm._g(_vm._b({ ref: "popper", attrs: { "theme": _vm.theme, "target-nodes": _vm.getTargetNodes, "reference-node": function() { + return _vm.$refs.reference; + }, "popper-node": function() { + return _vm.$refs.popperContent.$el; + } }, scopedSlots: _vm._u([{ key: "default", fn: function(ref) { + var popperId = ref.popperId; + var isShown = ref.isShown; + var shouldMountContent = ref.shouldMountContent; + var skipTransition = ref.skipTransition; + var autoHide = ref.autoHide; + var show = ref.show; + var hide = ref.hide; + var handleResize = ref.handleResize; + var onResize = ref.onResize; + var classes = ref.classes; + var result = ref.result; + return [_c("div", { ref: "reference", staticClass: "v-popper", class: [ + _vm.themeClass, + { + "v-popper--shown": isShown + } + ] }, [_vm._t("default", null, { "shown": isShown, "show": show, "hide": hide }), _c("PopperContent", { ref: "popperContent", attrs: { "popper-id": popperId, "theme": _vm.theme, "shown": isShown, "mounted": shouldMountContent, "skip-transition": skipTransition, "auto-hide": autoHide, "handle-resize": handleResize, "classes": classes, "result": result }, on: { "hide": hide, "resize": onResize } }, [_vm._t("popper", null, { "shown": isShown, "hide": hide })], 2)], 2)]; + } }], null, true) }, "Popper", _vm.$attrs, false), _vm.$listeners)); +}; +var staticRenderFns$1 = []; +const __cssModules$4 = {}; +var __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$1, staticRenderFns$1, false, __vue2_injectStyles$4, null, null, null); +function __vue2_injectStyles$4(context) { + for (let o in __cssModules$4) { + this[o] = __cssModules$4[o]; + } +} +var PrivatePopperWrapper = /* @__PURE__ */ function() { + return __component__$4.exports; +}(); +var __vue2_script$3 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), { + name: "VDropdown", + vPopperTheme: "dropdown" +}); +var Dropdown_vue_vue_type_style_index_0_lang = ""; +let __vue2_render$2, __vue2_staticRenderFns$2; +const __cssModules$3 = {}; +var __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, __vue2_render$2, __vue2_staticRenderFns$2, false, __vue2_injectStyles$3, null, null, null); +function __vue2_injectStyles$3(context) { + for (let o in __cssModules$3) { + this[o] = __cssModules$3[o]; + } +} +var PrivateDropdown = /* @__PURE__ */ function() { + return __component__$3.exports; +}(); +var __vue2_script$2 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), { + name: "VMenu", + vPopperTheme: "menu" +}); +let __vue2_render$1, __vue2_staticRenderFns$1; +const __cssModules$2 = {}; +var __component__$2 = /* @__PURE__ */ normalizeComponent(__vue2_script$2, __vue2_render$1, __vue2_staticRenderFns$1, false, __vue2_injectStyles$2, null, null, null); +function __vue2_injectStyles$2(context) { + for (let o in __cssModules$2) { + this[o] = __cssModules$2[o]; + } +} +var PrivateMenu = /* @__PURE__ */ function() { + return __component__$2.exports; +}(); +var __vue2_script$1 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), { + name: "VTooltip", + vPopperTheme: "tooltip" +}); +var Tooltip_vue_vue_type_style_index_0_lang = ""; +let __vue2_render, __vue2_staticRenderFns; +const __cssModules$1 = {}; +var __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null); +function __vue2_injectStyles$1(context) { + for (let o in __cssModules$1) { + this[o] = __cssModules$1[o]; + } +} +var PrivateTooltip = /* @__PURE__ */ function() { + return __component__$1.exports; +}(); +var __vue2_script = { + name: "VTooltipDirective", + components: { + Popper: PrivatePopper(), + PopperContent: PrivatePopperContent + }, + mixins: [ + PrivatePopperMethods + ], + inheritAttrs: false, + props: { + theme: { + type: String, + default: "tooltip" + }, + html: { + type: Boolean, + default() { + return getDefaultConfig(this.theme, "html"); + } + }, + content: { + type: [String, Number, Function], + default: null + }, + loadingContent: { + type: String, + default() { + return getDefaultConfig(this.theme, "loadingContent"); + } + } + }, + data() { + return { + asyncContent: null + }; + }, + computed: { + isContentAsync() { + return typeof this.content === "function"; + }, + loading() { + return this.isContentAsync && this.asyncContent == null; + }, + finalContent() { + if (this.isContentAsync) { + return this.loading ? this.loadingContent : this.asyncContent; + } + return this.content; + } + }, + watch: { + content: { + handler() { + this.fetchContent(true); + }, + immediate: true + }, + async finalContent(value) { + await this.$nextTick(); + this.$refs.popper.onResize(); + } + }, + created() { + this.$_fetchId = 0; + }, + methods: { + fetchContent(force) { + if (typeof this.content === "function" && this.$_isShown && (force || !this.$_loading && this.asyncContent == null)) { + this.asyncContent = null; + this.$_loading = true; + const fetchId = ++this.$_fetchId; + const result = this.content(this); + if (result.then) { + result.then((res) => this.onResult(fetchId, res)); + } else { + this.onResult(fetchId, result); + } + } + }, + onResult(fetchId, result) { + if (fetchId !== this.$_fetchId) + return; + this.$_loading = false; + this.asyncContent = result; + }, + onShow() { + this.$_isShown = true; + this.fetchContent(); + }, + onHide() { + this.$_isShown = false; + } + } +}; +var render = function() { + var _vm = this; + var _h = _vm.$createElement; + var _c = _vm._self._c || _h; + return _c("Popper", _vm._g(_vm._b({ ref: "popper", attrs: { "theme": _vm.theme, "popper-node": function() { + return _vm.$refs.popperContent.$el; + } }, on: { "apply-show": _vm.onShow, "apply-hide": _vm.onHide }, scopedSlots: _vm._u([{ key: "default", fn: function(ref) { + var popperId = ref.popperId; + var isShown = ref.isShown; + var shouldMountContent = ref.shouldMountContent; + var skipTransition = ref.skipTransition; + var autoHide = ref.autoHide; + var hide = ref.hide; + var handleResize = ref.handleResize; + var onResize = ref.onResize; + var classes = ref.classes; + var result = ref.result; + return [_c("PopperContent", { ref: "popperContent", class: { + "v-popper--tooltip-loading": _vm.loading + }, attrs: { "popper-id": popperId, "theme": _vm.theme, "shown": isShown, "mounted": shouldMountContent, "skip-transition": skipTransition, "auto-hide": autoHide, "handle-resize": handleResize, "classes": classes, "result": result }, on: { "hide": hide, "resize": onResize } }, [_vm.html ? _c("div", { domProps: { "innerHTML": _vm._s(_vm.finalContent) } }) : _c("div", { domProps: { "textContent": _vm._s(_vm.finalContent) } })])]; + } }]) }, "Popper", _vm.$attrs, false), _vm.$listeners)); +}; +var staticRenderFns = []; +const __cssModules = {}; +var __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null); +function __vue2_injectStyles(context) { + for (let o in __cssModules) { + this[o] = __cssModules[o]; + } +} +var PrivateTooltipDirective = /* @__PURE__ */ function() { + return __component__.exports; +}(); +const TARGET_CLASS = "v-popper--has-tooltip"; +function getPlacement(options2, modifiers) { + let result = options2.placement; + if (!result && modifiers) { + for (const pos of placements) { + if (modifiers[pos]) { + result = pos; + } + } + } + if (!result) { + result = getDefaultConfig(options2.theme || "tooltip", "placement"); + } + return result; +} +function getOptions(el, value, modifiers) { + let options2; + const type = typeof value; + if (type === "string") { + options2 = { content: value }; + } else if (value && type === "object") { + options2 = value; + } else { + options2 = { content: false }; + } + options2.placement = getPlacement(options2, modifiers); + options2.targetNodes = () => [el]; + options2.referenceNode = () => el; + return options2; +} +function createTooltip(el, value, modifiers) { + const options2 = getOptions(el, value, modifiers); + const tooltipApp = el.$_popper = new vue__WEBPACK_IMPORTED_MODULE_2__["default"]({ + mixins: [ + PrivatePopperMethods + ], + data() { + return { + options: options2 + }; + }, + render(h) { + const _a = this.options, { + theme, + html, + content, + loadingContent + } = _a, otherOptions = __objRest(_a, [ + "theme", + "html", + "content", + "loadingContent" + ]); + return h(PrivateTooltipDirective, { + props: { + theme, + html, + content, + loadingContent + }, + attrs: otherOptions, + ref: "popper" + }); + }, + devtools: { + hide: true + } + }); + const mountTarget = document.createElement("div"); + document.body.appendChild(mountTarget); + tooltipApp.$mount(mountTarget); + if (el.classList) { + el.classList.add(TARGET_CLASS); + } + return tooltipApp; +} +function destroyTooltip(el) { + if (el.$_popper) { + el.$_popper.$destroy(); + delete el.$_popper; + delete el.$_popperOldShown; + } + if (el.classList) { + el.classList.remove(TARGET_CLASS); + } +} +function bind(el, { value, oldValue, modifiers }) { + const options2 = getOptions(el, value, modifiers); + if (!options2.content || getDefaultConfig(options2.theme || "tooltip", "disabled")) { + destroyTooltip(el); + } else { + let tooltipApp; + if (el.$_popper) { + tooltipApp = el.$_popper; + tooltipApp.options = options2; + } else { + tooltipApp = createTooltip(el, value, modifiers); + } + if (typeof value.shown !== "undefined" && value.shown !== el.$_popperOldShown) { + el.$_popperOldShown = value.shown; + value.shown ? tooltipApp.show() : tooltipApp.hide(); + } + } +} +var PrivateVTooltip = { + bind, + update: bind, + unbind(el) { + destroyTooltip(el); + } +}; +function addListeners(el) { + el.addEventListener("click", onClick); + el.addEventListener("touchstart", onTouchStart, supportsPassive ? { + passive: true + } : false); +} +function removeListeners(el) { + el.removeEventListener("click", onClick); + el.removeEventListener("touchstart", onTouchStart); + el.removeEventListener("touchend", onTouchEnd); + el.removeEventListener("touchcancel", onTouchCancel); +} +function onClick(event) { + const el = event.currentTarget; + event.closePopover = !el.$_vclosepopover_touch; + event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all; +} +function onTouchStart(event) { + if (event.changedTouches.length === 1) { + const el = event.currentTarget; + el.$_vclosepopover_touch = true; + const touch = event.changedTouches[0]; + el.$_vclosepopover_touchPoint = touch; + el.addEventListener("touchend", onTouchEnd); + el.addEventListener("touchcancel", onTouchCancel); + } +} +function onTouchEnd(event) { + const el = event.currentTarget; + el.$_vclosepopover_touch = false; + if (event.changedTouches.length === 1) { + const touch = event.changedTouches[0]; + const firstTouch = el.$_vclosepopover_touchPoint; + event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20; + event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all; + } +} +function onTouchCancel(event) { + const el = event.currentTarget; + el.$_vclosepopover_touch = false; +} +var PrivateVClosePopper = { + bind(el, { value, modifiers }) { + el.$_closePopoverModifiers = modifiers; + if (typeof value === "undefined" || value) { + addListeners(el); + } + }, + update(el, { value, oldValue, modifiers }) { + el.$_closePopoverModifiers = modifiers; + if (value !== oldValue) { + if (typeof value === "undefined" || value) { + addListeners(el); + } else { + removeListeners(el); + } + } + }, + unbind(el) { + removeListeners(el); + } +}; +const options = config; +const VTooltip = PrivateVTooltip; +const VClosePopper = PrivateVClosePopper; +const Dropdown = PrivateDropdown; +const Menu = PrivateMenu; +const Popper = PrivatePopper; +const PopperContent = PrivatePopperContent; +const PopperMethods = PrivatePopperMethods; +const PopperWrapper = PrivatePopperWrapper; +const ThemeClass = PrivateThemeClass; +const Tooltip = PrivateTooltip; +const TooltipDirective = PrivateTooltipDirective; +function install(app, options2 = {}) { + if (app.$_vTooltipInstalled) + return; + app.$_vTooltipInstalled = true; + assign(config, options2); + app.directive("tooltip", PrivateVTooltip); + app.directive("close-popper", PrivateVClosePopper); + app.component("v-tooltip", PrivateTooltip); + app.component("VTooltip", PrivateTooltip); + app.component("v-dropdown", PrivateDropdown); + app.component("VDropdown", PrivateDropdown); + app.component("v-menu", PrivateMenu); + app.component("VMenu", PrivateMenu); +} +const plugin = { + version: "1.0.0-beta.19", + install, + options: config +}; +let GlobalVue = null; +if (typeof window !== "undefined") { + GlobalVue = window.Vue; +} else if (typeof __webpack_require__.g !== "undefined") { + GlobalVue = __webpack_require__.g.Vue; +} +if (GlobalVue) { + GlobalVue.use(plugin); +} + + + +/***/ }), + +/***/ "./node_modules/focus-trap/dist/focus-trap.esm.js": +/*!********************************************************!*\ + !*** ./node_modules/focus-trap/dist/focus-trap.esm.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "createFocusTrap": () => (/* binding */ createFocusTrap) +/* harmony export */ }); +/* harmony import */ var tabbable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tabbable */ "./node_modules/tabbable/dist/index.esm.js"); +/*! +* focus-trap 7.1.0 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/ + + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; +} +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; +} +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} + +var rooTrapStack = []; +var activeFocusTraps = { + activateTrap: function activateTrap(trapStack, trap) { + if (trapStack.length > 0) { + var activeTrap = trapStack[trapStack.length - 1]; + if (activeTrap !== trap) { + activeTrap.pause(); + } + } + var trapIndex = trapStack.indexOf(trap); + if (trapIndex === -1) { + trapStack.push(trap); + } else { + // move this existing trap to the front of the queue + trapStack.splice(trapIndex, 1); + trapStack.push(trap); + } + }, + deactivateTrap: function deactivateTrap(trapStack, trap) { + var trapIndex = trapStack.indexOf(trap); + if (trapIndex !== -1) { + trapStack.splice(trapIndex, 1); + } + if (trapStack.length > 0) { + trapStack[trapStack.length - 1].unpause(); + } + } +}; +var isSelectableInput = function isSelectableInput(node) { + return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function'; +}; +var isEscapeEvent = function isEscapeEvent(e) { + return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27; +}; +var isTabEvent = function isTabEvent(e) { + return e.key === 'Tab' || e.keyCode === 9; +}; +var delay = function delay(fn) { + return setTimeout(fn, 0); +}; + +// Array.find/findIndex() are not supported on IE; this replicates enough +// of Array.findIndex() for our needs +var findIndex = function findIndex(arr, fn) { + var idx = -1; + arr.every(function (value, i) { + if (fn(value)) { + idx = i; + return false; // break + } + + return true; // next + }); + + return idx; +}; + +/** + * Get an option's value when it could be a plain value, or a handler that provides + * the value. + * @param {*} value Option's value to check. + * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function. + * @returns {*} The `value`, or the handler's returned value. + */ +var valueOrHandler = function valueOrHandler(value) { + for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + params[_key - 1] = arguments[_key]; + } + return typeof value === 'function' ? value.apply(void 0, params) : value; +}; +var getActualTarget = function getActualTarget(event) { + // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the + // shadow host. However, event.target.composedPath() will be an array of + // nodes "clicked" from inner-most (the actual element inside the shadow) to + // outer-most (the host HTML document). If we have access to composedPath(), + // then use its first element; otherwise, fall back to event.target (and + // this only works for an _open_ shadow DOM; otherwise, + // composedPath()[0] === event.target always). + return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target; +}; +var createFocusTrap = function createFocusTrap(elements, userOptions) { + // SSR: a live trap shouldn't be created in this type of environment so this + // should be safe code to execute if the `document` option isn't specified + var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; + var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || rooTrapStack; + var config = _objectSpread2({ + returnFocusOnDeactivate: true, + escapeDeactivates: true, + delayInitialFocus: true + }, userOptions); + var state = { + // containers given to createFocusTrap() + // @type {Array} + containers: [], + // list of objects identifying tabbable nodes in `containers` in the trap + // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap + // is active, but the trap should never get to a state where there isn't at least one group + // with at least one tabbable node in it (that would lead to an error condition that would + // result in an error being thrown) + // @type {Array<{ + // container: HTMLElement, + // tabbableNodes: Array, // empty if none + // focusableNodes: Array, // empty if none + // firstTabbableNode: HTMLElement|null, + // lastTabbableNode: HTMLElement|null, + // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined + // }>} + containerGroups: [], + // same order/length as `containers` list + + // references to objects in `containerGroups`, but only those that actually have + // tabbable nodes in them + // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__ + // the same length + tabbableGroups: [], + nodeFocusedBeforeActivation: null, + mostRecentlyFocusedNode: null, + active: false, + paused: false, + // timer ID for when delayInitialFocus is true and initial focus in this trap + // has been delayed during activation + delayInitialFocusTimer: undefined + }; + var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later + + /** + * Gets a configuration option value. + * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set, + * value will be taken from this object. Otherwise, value will be taken from base configuration. + * @param {string} optionName Name of the option whose value is sought. + * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName` + * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used. + */ + var getOption = function getOption(configOverrideOptions, optionName, configOptionName) { + return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName]; + }; + + /** + * Finds the index of the container that contains the element. + * @param {HTMLElement} element + * @returns {number} Index of the container in either `state.containers` or + * `state.containerGroups` (the order/length of these lists are the same); -1 + * if the element isn't found. + */ + var findContainerIndex = function findContainerIndex(element) { + // NOTE: search `containerGroups` because it's possible a group contains no tabbable + // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`) + // and we still need to find the element in there + return state.containerGroups.findIndex(function (_ref) { + var container = _ref.container, + tabbableNodes = _ref.tabbableNodes; + return container.contains(element) || + // fall back to explicit tabbable search which will take into consideration any + // web components if the `tabbableOptions.getShadowRoot` option was used for + // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't + // look inside web components even if open) + tabbableNodes.find(function (node) { + return node === element; + }); + }); + }; + + /** + * Gets the node for the given option, which is expected to be an option that + * can be either a DOM node, a string that is a selector to get a node, `false` + * (if a node is explicitly NOT given), or a function that returns any of these + * values. + * @param {string} optionName + * @returns {undefined | false | HTMLElement | SVGElement} Returns + * `undefined` if the option is not specified; `false` if the option + * resolved to `false` (node explicitly not given); otherwise, the resolved + * DOM node. + * @throws {Error} If the option is set, not `false`, and is not, or does not + * resolve to a node. + */ + var getNodeForOption = function getNodeForOption(optionName) { + var optionValue = config[optionName]; + if (typeof optionValue === 'function') { + for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + params[_key2 - 1] = arguments[_key2]; + } + optionValue = optionValue.apply(void 0, params); + } + if (optionValue === true) { + optionValue = undefined; // use default value + } + + if (!optionValue) { + if (optionValue === undefined || optionValue === false) { + return optionValue; + } + // else, empty string (invalid), null (invalid), 0 (invalid) + + throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node")); + } + var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point + + if (typeof optionValue === 'string') { + node = doc.querySelector(optionValue); // resolve to node, or null if fails + if (!node) { + throw new Error("`".concat(optionName, "` as selector refers to no known node")); + } + } + return node; + }; + var getInitialFocusNode = function getInitialFocusNode() { + var node = getNodeForOption('initialFocus'); + + // false explicitly indicates we want no initialFocus at all + if (node === false) { + return false; + } + if (node === undefined) { + // option not specified: use fallback options + if (findContainerIndex(doc.activeElement) >= 0) { + node = doc.activeElement; + } else { + var firstTabbableGroup = state.tabbableGroups[0]; + var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; + + // NOTE: `fallbackFocus` option function cannot return `false` (not supported) + node = firstTabbableNode || getNodeForOption('fallbackFocus'); + } + } + if (!node) { + throw new Error('Your focus-trap needs to have at least one focusable element'); + } + return node; + }; + var updateTabbableNodes = function updateTabbableNodes() { + state.containerGroups = state.containers.map(function (container) { + var tabbableNodes = (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.tabbable)(container, config.tabbableOptions); + + // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes + // are a superset of tabbable nodes + var focusableNodes = (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.focusable)(container, config.tabbableOptions); + return { + container: container, + tabbableNodes: tabbableNodes, + focusableNodes: focusableNodes, + firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null, + lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null, + /** + * Finds the __tabbable__ node that follows the given node in the specified direction, + * in this container, if any. + * @param {HTMLElement} node + * @param {boolean} [forward] True if going in forward tab order; false if going + * in reverse. + * @returns {HTMLElement|undefined} The next tabbable node, if any. + */ + nextTabbableNode: function nextTabbableNode(node) { + var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + // NOTE: If tabindex is positive (in order to manipulate the tab order separate + // from the DOM order), this __will not work__ because the list of focusableNodes, + // while it contains tabbable nodes, does not sort its nodes in any order other + // than DOM order, because it can't: Where would you place focusable (but not + // tabbable) nodes in that order? They have no order, because they aren't tabbale... + // Support for positive tabindex is already broken and hard to manage (possibly + // not supportable, TBD), so this isn't going to make things worse than they + // already are, and at least makes things better for the majority of cases where + // tabindex is either 0/unset or negative. + // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375 + var nodeIdx = focusableNodes.findIndex(function (n) { + return n === node; + }); + if (nodeIdx < 0) { + return undefined; + } + if (forward) { + return focusableNodes.slice(nodeIdx + 1).find(function (n) { + return (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isTabbable)(n, config.tabbableOptions); + }); + } + return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) { + return (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isTabbable)(n, config.tabbableOptions); + }); + } + }; + }); + state.tabbableGroups = state.containerGroups.filter(function (group) { + return group.tabbableNodes.length > 0; + }); + + // throw if no groups have tabbable nodes and we don't have a fallback focus node either + if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option + ) { + throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times'); + } + }; + var tryFocus = function tryFocus(node) { + if (node === false) { + return; + } + if (node === doc.activeElement) { + return; + } + if (!node || !node.focus) { + tryFocus(getInitialFocusNode()); + return; + } + node.focus({ + preventScroll: !!config.preventScroll + }); + state.mostRecentlyFocusedNode = node; + if (isSelectableInput(node)) { + node.select(); + } + }; + var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) { + var node = getNodeForOption('setReturnFocus', previousActiveElement); + return node ? node : node === false ? false : previousActiveElement; + }; + + // This needs to be done on mousedown and touchstart instead of click + // so that it precedes the focus event. + var checkPointerDown = function checkPointerDown(e) { + var target = getActualTarget(e); + if (findContainerIndex(target) >= 0) { + // allow the click since it ocurred inside the trap + return; + } + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + // immediately deactivate the trap + trap.deactivate({ + // if, on deactivation, we should return focus to the node originally-focused + // when the trap was activated (or the configured `setReturnFocus` node), + // then assume it's also OK to return focus to the outside node that was + // just clicked, causing deactivation, as long as that node is focusable; + // if it isn't focusable, then return focus to the original node focused + // on activation (or the configured `setReturnFocus` node) + // NOTE: by setting `returnFocus: false`, deactivate() will do nothing, + // which will result in the outside click setting focus to the node + // that was clicked, whether it's focusable or not; by setting + // `returnFocus: true`, we'll attempt to re-focus the node originally-focused + // on activation (or the configured `setReturnFocus` node) + returnFocus: config.returnFocusOnDeactivate && !(0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isFocusable)(target, config.tabbableOptions) + }); + return; + } + + // This is needed for mobile devices. + // (If we'll only let `click` events through, + // then on mobile they will be blocked anyways if `touchstart` is blocked.) + if (valueOrHandler(config.allowOutsideClick, e)) { + // allow the click outside the trap to take place + return; + } + + // otherwise, prevent the click + e.preventDefault(); + }; + + // In case focus escapes the trap for some strange reason, pull it back in. + var checkFocusIn = function checkFocusIn(e) { + var target = getActualTarget(e); + var targetContained = findContainerIndex(target) >= 0; + + // In Firefox when you Tab out of an iframe the Document is briefly focused. + if (targetContained || target instanceof Document) { + if (targetContained) { + state.mostRecentlyFocusedNode = target; + } + } else { + // escaped! pull it back in to where it just left + e.stopImmediatePropagation(); + tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); + } + }; + + // Hijack Tab events on the first and last focusable nodes of the trap, + // in order to prevent focus from escaping. If it escapes for even a + // moment it can end up scrolling the page and causing confusion so we + // kind of need to capture the action at the keydown phase. + var checkTab = function checkTab(e) { + var target = getActualTarget(e); + updateTabbableNodes(); + var destinationNode = null; + if (state.tabbableGroups.length > 0) { + // make sure the target is actually contained in a group + // NOTE: the target may also be the container itself if it's focusable + // with tabIndex='-1' and was given initial focus + var containerIndex = findContainerIndex(target); + var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined; + if (containerIndex < 0) { + // target not found in any group: quite possible focus has escaped the trap, + // so bring it back in to... + if (e.shiftKey) { + // ...the last node in the last group + destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; + } else { + // ...the first node in the first group + destinationNode = state.tabbableGroups[0].firstTabbableNode; + } + } else if (e.shiftKey) { + // REVERSE + + // is the target the first tabbable node in a group? + var startOfGroupIndex = findIndex(state.tabbableGroups, function (_ref2) { + var firstTabbableNode = _ref2.firstTabbableNode; + return target === firstTabbableNode; + }); + if (startOfGroupIndex < 0 && (containerGroup.container === target || (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isFocusable)(target, config.tabbableOptions) && !(0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isTabbable)(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { + // an exception case where the target is either the container itself, or + // a non-tabbable node that was given focus (i.e. tabindex is negative + // and user clicked on it or node was programmatically given focus) + // and is not followed by any other tabbable node, in which + // case, we should handle shift+tab as if focus were on the container's + // first tabbable node, and go to the last tabbable node of the LAST group + startOfGroupIndex = containerIndex; + } + if (startOfGroupIndex >= 0) { + // YES: then shift+tab should go to the last tabbable node in the + // previous group (and wrap around to the last tabbable node of + // the LAST group if it's the first tabbable node of the FIRST group) + var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; + var destinationGroup = state.tabbableGroups[destinationGroupIndex]; + destinationNode = destinationGroup.lastTabbableNode; + } + } else { + // FORWARD + + // is the target the last tabbable node in a group? + var lastOfGroupIndex = findIndex(state.tabbableGroups, function (_ref3) { + var lastTabbableNode = _ref3.lastTabbableNode; + return target === lastTabbableNode; + }); + if (lastOfGroupIndex < 0 && (containerGroup.container === target || (0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isFocusable)(target, config.tabbableOptions) && !(0,tabbable__WEBPACK_IMPORTED_MODULE_0__.isTabbable)(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { + // an exception case where the target is the container itself, or + // a non-tabbable node that was given focus (i.e. tabindex is negative + // and user clicked on it or node was programmatically given focus) + // and is not followed by any other tabbable node, in which + // case, we should handle tab as if focus were on the container's + // last tabbable node, and go to the first tabbable node of the FIRST group + lastOfGroupIndex = containerIndex; + } + if (lastOfGroupIndex >= 0) { + // YES: then tab should go to the first tabbable node in the next + // group (and wrap around to the first tabbable node of the FIRST + // group if it's the last tabbable node of the LAST group) + var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; + var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; + destinationNode = _destinationGroup.firstTabbableNode; + } + } + } else { + // NOTE: the fallbackFocus option does not support returning false to opt-out + destinationNode = getNodeForOption('fallbackFocus'); + } + if (destinationNode) { + e.preventDefault(); + tryFocus(destinationNode); + } + // else, let the browser take care of [shift+]tab and move the focus + }; + + var checkKey = function checkKey(e) { + if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) { + e.preventDefault(); + trap.deactivate(); + return; + } + if (isTabEvent(e)) { + checkTab(e); + return; + } + }; + var checkClick = function checkClick(e) { + var target = getActualTarget(e); + if (findContainerIndex(target) >= 0) { + return; + } + if (valueOrHandler(config.clickOutsideDeactivates, e)) { + return; + } + if (valueOrHandler(config.allowOutsideClick, e)) { + return; + } + e.preventDefault(); + e.stopImmediatePropagation(); + }; + + // + // EVENT LISTENERS + // + + var addListeners = function addListeners() { + if (!state.active) { + return; + } + + // There can be only one listening focus trap at a time + activeFocusTraps.activateTrap(trapStack, trap); + + // Delay ensures that the focused element doesn't capture the event + // that caused the focus trap activation. + state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () { + tryFocus(getInitialFocusNode()); + }) : tryFocus(getInitialFocusNode()); + doc.addEventListener('focusin', checkFocusIn, true); + doc.addEventListener('mousedown', checkPointerDown, { + capture: true, + passive: false + }); + doc.addEventListener('touchstart', checkPointerDown, { + capture: true, + passive: false + }); + doc.addEventListener('click', checkClick, { + capture: true, + passive: false + }); + doc.addEventListener('keydown', checkKey, { + capture: true, + passive: false + }); + return trap; + }; + var removeListeners = function removeListeners() { + if (!state.active) { + return; + } + doc.removeEventListener('focusin', checkFocusIn, true); + doc.removeEventListener('mousedown', checkPointerDown, true); + doc.removeEventListener('touchstart', checkPointerDown, true); + doc.removeEventListener('click', checkClick, true); + doc.removeEventListener('keydown', checkKey, true); + return trap; + }; + + // + // TRAP DEFINITION + // + + trap = { + get active() { + return state.active; + }, + get paused() { + return state.paused; + }, + activate: function activate(activateOptions) { + if (state.active) { + return this; + } + var onActivate = getOption(activateOptions, 'onActivate'); + var onPostActivate = getOption(activateOptions, 'onPostActivate'); + var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap'); + if (!checkCanFocusTrap) { + updateTabbableNodes(); + } + state.active = true; + state.paused = false; + state.nodeFocusedBeforeActivation = doc.activeElement; + if (onActivate) { + onActivate(); + } + var finishActivation = function finishActivation() { + if (checkCanFocusTrap) { + updateTabbableNodes(); + } + addListeners(); + if (onPostActivate) { + onPostActivate(); + } + }; + if (checkCanFocusTrap) { + checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); + return this; + } + finishActivation(); + return this; + }, + deactivate: function deactivate(deactivateOptions) { + if (!state.active) { + return this; + } + var options = _objectSpread2({ + onDeactivate: config.onDeactivate, + onPostDeactivate: config.onPostDeactivate, + checkCanReturnFocus: config.checkCanReturnFocus + }, deactivateOptions); + clearTimeout(state.delayInitialFocusTimer); // noop if undefined + state.delayInitialFocusTimer = undefined; + removeListeners(); + state.active = false; + state.paused = false; + activeFocusTraps.deactivateTrap(trapStack, trap); + var onDeactivate = getOption(options, 'onDeactivate'); + var onPostDeactivate = getOption(options, 'onPostDeactivate'); + var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus'); + var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate'); + if (onDeactivate) { + onDeactivate(); + } + var finishDeactivation = function finishDeactivation() { + delay(function () { + if (returnFocus) { + tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); + } + if (onPostDeactivate) { + onPostDeactivate(); + } + }); + }; + if (returnFocus && checkCanReturnFocus) { + checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation); + return this; + } + finishDeactivation(); + return this; + }, + pause: function pause() { + if (state.paused || !state.active) { + return this; + } + state.paused = true; + removeListeners(); + return this; + }, + unpause: function unpause() { + if (!state.paused || !state.active) { + return this; + } + state.paused = false; + updateTabbableNodes(); + addListeners(); + return this; + }, + updateContainerElements: function updateContainerElements(containerElements) { + var elementsAsArray = [].concat(containerElements).filter(Boolean); + state.containers = elementsAsArray.map(function (element) { + return typeof element === 'string' ? doc.querySelector(element) : element; + }); + if (state.active) { + updateTabbableNodes(); + } + return this; + } + }; + + // initialize container elements + trap.updateContainerElements(elements); + return trap; +}; + + +//# sourceMappingURL=focus-trap.esm.js.map + + +/***/ }), + +/***/ "./node_modules/hammerjs/hammer.js": +/*!*****************************************!*\ + !*** ./node_modules/hammerjs/hammer.js ***! + \*****************************************/ +/***/ ((module, exports, __webpack_require__) => { + +var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.7 - 2016-04-22 + * http://hammerjs.github.io/ + * + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */ +(function(window, document, exportName, undefined) { + 'use strict'; + +var VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o']; +var TEST_ELEMENT = document.createElement('div'); + +var TYPE_FUNCTION = 'function'; + +var round = Math.round; +var abs = Math.abs; +var now = Date.now; + +/** + * set a timeout with a given scope + * @param {Function} fn + * @param {Number} timeout + * @param {Object} context + * @returns {number} + */ +function setTimeoutContext(fn, timeout, context) { + return setTimeout(bindFn(fn, context), timeout); +} + +/** + * if the argument is an array, we want to execute the fn on each entry + * if it aint an array we don't want to do a thing. + * this is used by all the methods that accept a single and array argument. + * @param {*|Array} arg + * @param {String} fn + * @param {Object} [context] + * @returns {Boolean} + */ +function invokeArrayArg(arg, fn, context) { + if (Array.isArray(arg)) { + each(arg, context[fn], context); + return true; + } + return false; +} + +/** + * walk objects and arrays + * @param {Object} obj + * @param {Function} iterator + * @param {Object} context + */ +function each(obj, iterator, context) { + var i; + + if (!obj) { + return; + } + + if (obj.forEach) { + obj.forEach(iterator, context); + } else if (obj.length !== undefined) { + i = 0; + while (i < obj.length) { + iterator.call(context, obj[i], i, obj); + i++; + } + } else { + for (i in obj) { + obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj); + } + } +} + +/** + * wrap a method with a deprecation warning and stack trace + * @param {Function} method + * @param {String} name + * @param {String} message + * @returns {Function} A new function wrapping the supplied method. + */ +function deprecate(method, name, message) { + var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\n' + message + ' AT \n'; + return function() { + var e = new Error('get-stack-trace'); + var stack = e && e.stack ? e.stack.replace(/^[^\(]+?[\n$]/gm, '') + .replace(/^\s+at\s+/gm, '') + .replace(/^Object.\s*\(/gm, '{anonymous}()@') : 'Unknown Stack Trace'; + + var log = window.console && (window.console.warn || window.console.log); + if (log) { + log.call(window.console, deprecationMessage, stack); + } + return method.apply(this, arguments); + }; +} + +/** + * extend object. + * means that properties in dest will be overwritten by the ones in src. + * @param {Object} target + * @param {...Object} objects_to_assign + * @returns {Object} target + */ +var assign; +if (typeof Object.assign !== 'function') { + assign = function assign(target) { + if (target === undefined || target === null) { + throw new TypeError('Cannot convert undefined or null to object'); + } + + var output = Object(target); + for (var index = 1; index < arguments.length; index++) { + var source = arguments[index]; + if (source !== undefined && source !== null) { + for (var nextKey in source) { + if (source.hasOwnProperty(nextKey)) { + output[nextKey] = source[nextKey]; + } + } + } + } + return output; + }; +} else { + assign = Object.assign; +} + +/** + * extend object. + * means that properties in dest will be overwritten by the ones in src. + * @param {Object} dest + * @param {Object} src + * @param {Boolean} [merge=false] + * @returns {Object} dest + */ +var extend = deprecate(function extend(dest, src, merge) { + var keys = Object.keys(src); + var i = 0; + while (i < keys.length) { + if (!merge || (merge && dest[keys[i]] === undefined)) { + dest[keys[i]] = src[keys[i]]; + } + i++; + } + return dest; +}, 'extend', 'Use `assign`.'); + +/** + * merge the values from src in the dest. + * means that properties that exist in dest will not be overwritten by src + * @param {Object} dest + * @param {Object} src + * @returns {Object} dest + */ +var merge = deprecate(function merge(dest, src) { + return extend(dest, src, true); +}, 'merge', 'Use `assign`.'); + +/** + * simple class inheritance + * @param {Function} child + * @param {Function} base + * @param {Object} [properties] + */ +function inherit(child, base, properties) { + var baseP = base.prototype, + childP; + + childP = child.prototype = Object.create(baseP); + childP.constructor = child; + childP._super = baseP; + + if (properties) { + assign(childP, properties); + } +} + +/** + * simple function bind + * @param {Function} fn + * @param {Object} context + * @returns {Function} + */ +function bindFn(fn, context) { + return function boundFn() { + return fn.apply(context, arguments); + }; +} + +/** + * let a boolean value also be a function that must return a boolean + * this first item in args will be used as the context + * @param {Boolean|Function} val + * @param {Array} [args] + * @returns {Boolean} + */ +function boolOrFn(val, args) { + if (typeof val == TYPE_FUNCTION) { + return val.apply(args ? args[0] || undefined : undefined, args); + } + return val; +} + +/** + * use the val2 when val1 is undefined + * @param {*} val1 + * @param {*} val2 + * @returns {*} + */ +function ifUndefined(val1, val2) { + return (val1 === undefined) ? val2 : val1; +} + +/** + * addEventListener with multiple events at once + * @param {EventTarget} target + * @param {String} types + * @param {Function} handler + */ +function addEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.addEventListener(type, handler, false); + }); +} + +/** + * removeEventListener with multiple events at once + * @param {EventTarget} target + * @param {String} types + * @param {Function} handler + */ +function removeEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.removeEventListener(type, handler, false); + }); +} + +/** + * find if a node is in the given parent + * @method hasParent + * @param {HTMLElement} node + * @param {HTMLElement} parent + * @return {Boolean} found + */ +function hasParent(node, parent) { + while (node) { + if (node == parent) { + return true; + } + node = node.parentNode; + } + return false; +} + +/** + * small indexOf wrapper + * @param {String} str + * @param {String} find + * @returns {Boolean} found + */ +function inStr(str, find) { + return str.indexOf(find) > -1; +} + +/** + * split string on whitespace + * @param {String} str + * @returns {Array} words + */ +function splitStr(str) { + return str.trim().split(/\s+/g); +} + +/** + * find if a array contains the object using indexOf or a simple polyFill + * @param {Array} src + * @param {String} find + * @param {String} [findByKey] + * @return {Boolean|Number} false when not found, or the index + */ +function inArray(src, find, findByKey) { + if (src.indexOf && !findByKey) { + return src.indexOf(find); + } else { + var i = 0; + while (i < src.length) { + if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) { + return i; + } + i++; + } + return -1; + } +} + +/** + * convert array-like objects to real arrays + * @param {Object} obj + * @returns {Array} + */ +function toArray(obj) { + return Array.prototype.slice.call(obj, 0); +} + +/** + * unique array with objects based on a key (like 'id') or just by the array's value + * @param {Array} src [{id:1},{id:2},{id:1}] + * @param {String} [key] + * @param {Boolean} [sort=False] + * @returns {Array} [{id:1},{id:2}] + */ +function uniqueArray(src, key, sort) { + var results = []; + var values = []; + var i = 0; + + while (i < src.length) { + var val = key ? src[i][key] : src[i]; + if (inArray(values, val) < 0) { + results.push(src[i]); + } + values[i] = val; + i++; + } + + if (sort) { + if (!key) { + results = results.sort(); + } else { + results = results.sort(function sortUniqueArray(a, b) { + return a[key] > b[key]; + }); + } + } + + return results; +} + +/** + * get the prefixed property + * @param {Object} obj + * @param {String} property + * @returns {String|Undefined} prefixed + */ +function prefixed(obj, property) { + var prefix, prop; + var camelProp = property[0].toUpperCase() + property.slice(1); + + var i = 0; + while (i < VENDOR_PREFIXES.length) { + prefix = VENDOR_PREFIXES[i]; + prop = (prefix) ? prefix + camelProp : property; + + if (prop in obj) { + return prop; + } + i++; + } + return undefined; +} + +/** + * get a unique id + * @returns {number} uniqueId + */ +var _uniqueId = 1; +function uniqueId() { + return _uniqueId++; +} + +/** + * get the window object of an element + * @param {HTMLElement} element + * @returns {DocumentView|Window} + */ +function getWindowForElement(element) { + var doc = element.ownerDocument || element; + return (doc.defaultView || doc.parentWindow || window); +} + +var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i; + +var SUPPORT_TOUCH = ('ontouchstart' in window); +var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined; +var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent); + +var INPUT_TYPE_TOUCH = 'touch'; +var INPUT_TYPE_PEN = 'pen'; +var INPUT_TYPE_MOUSE = 'mouse'; +var INPUT_TYPE_KINECT = 'kinect'; + +var COMPUTE_INTERVAL = 25; + +var INPUT_START = 1; +var INPUT_MOVE = 2; +var INPUT_END = 4; +var INPUT_CANCEL = 8; + +var DIRECTION_NONE = 1; +var DIRECTION_LEFT = 2; +var DIRECTION_RIGHT = 4; +var DIRECTION_UP = 8; +var DIRECTION_DOWN = 16; + +var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; +var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; +var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; + +var PROPS_XY = ['x', 'y']; +var PROPS_CLIENT_XY = ['clientX', 'clientY']; + +/** + * create new input type manager + * @param {Manager} manager + * @param {Function} callback + * @returns {Input} + * @constructor + */ +function Input(manager, callback) { + var self = this; + this.manager = manager; + this.callback = callback; + this.element = manager.element; + this.target = manager.options.inputTarget; + + // smaller wrapper around the handler, for the scope and the enabled state of the manager, + // so when disabled the input events are completely bypassed. + this.domHandler = function(ev) { + if (boolOrFn(manager.options.enable, [manager])) { + self.handler(ev); + } + }; + + this.init(); + +} + +Input.prototype = { + /** + * should handle the inputEvent data and trigger the callback + * @virtual + */ + handler: function() { }, + + /** + * bind the events + */ + init: function() { + this.evEl && addEventListeners(this.element, this.evEl, this.domHandler); + this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler); + this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); + }, + + /** + * unbind the events + */ + destroy: function() { + this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler); + this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler); + this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); + } +}; + +/** + * create new input type manager + * called by the Manager constructor + * @param {Hammer} manager + * @returns {Input} + */ +function createInputInstance(manager) { + var Type; + var inputClass = manager.options.inputClass; + + if (inputClass) { + Type = inputClass; + } else if (SUPPORT_POINTER_EVENTS) { + Type = PointerEventInput; + } else if (SUPPORT_ONLY_TOUCH) { + Type = TouchInput; + } else if (!SUPPORT_TOUCH) { + Type = MouseInput; + } else { + Type = TouchMouseInput; + } + return new (Type)(manager, inputHandler); +} + +/** + * handle input events + * @param {Manager} manager + * @param {String} eventType + * @param {Object} input + */ +function inputHandler(manager, eventType, input) { + var pointersLen = input.pointers.length; + var changedPointersLen = input.changedPointers.length; + var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0)); + var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0)); + + input.isFirst = !!isFirst; + input.isFinal = !!isFinal; + + if (isFirst) { + manager.session = {}; + } + + // source event is the normalized value of the domEvents + // like 'touchstart, mouseup, pointerdown' + input.eventType = eventType; + + // compute scale, rotation etc + computeInputData(manager, input); + + // emit secret event + manager.emit('hammer.input', input); + + manager.recognize(input); + manager.session.prevInput = input; +} + +/** + * extend the data with some usable properties like scale, rotate, velocity etc + * @param {Object} manager + * @param {Object} input + */ +function computeInputData(manager, input) { + var session = manager.session; + var pointers = input.pointers; + var pointersLength = pointers.length; + + // store the first input to calculate the distance and direction + if (!session.firstInput) { + session.firstInput = simpleCloneInputData(input); + } + + // to compute scale and rotation we need to store the multiple touches + if (pointersLength > 1 && !session.firstMultiple) { + session.firstMultiple = simpleCloneInputData(input); + } else if (pointersLength === 1) { + session.firstMultiple = false; + } + + var firstInput = session.firstInput; + var firstMultiple = session.firstMultiple; + var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center; + + var center = input.center = getCenter(pointers); + input.timeStamp = now(); + input.deltaTime = input.timeStamp - firstInput.timeStamp; + + input.angle = getAngle(offsetCenter, center); + input.distance = getDistance(offsetCenter, center); + + computeDeltaXY(session, input); + input.offsetDirection = getDirection(input.deltaX, input.deltaY); + + var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY); + input.overallVelocityX = overallVelocity.x; + input.overallVelocityY = overallVelocity.y; + input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y; + + input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1; + input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0; + + input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length > + session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers); + + computeIntervalInputData(session, input); + + // find the correct target + var target = manager.element; + if (hasParent(input.srcEvent.target, target)) { + target = input.srcEvent.target; + } + input.target = target; +} + +function computeDeltaXY(session, input) { + var center = input.center; + var offset = session.offsetDelta || {}; + var prevDelta = session.prevDelta || {}; + var prevInput = session.prevInput || {}; + + if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) { + prevDelta = session.prevDelta = { + x: prevInput.deltaX || 0, + y: prevInput.deltaY || 0 + }; + + offset = session.offsetDelta = { + x: center.x, + y: center.y + }; + } + + input.deltaX = prevDelta.x + (center.x - offset.x); + input.deltaY = prevDelta.y + (center.y - offset.y); +} + +/** + * velocity is calculated every x ms + * @param {Object} session + * @param {Object} input + */ +function computeIntervalInputData(session, input) { + var last = session.lastInterval || input, + deltaTime = input.timeStamp - last.timeStamp, + velocity, velocityX, velocityY, direction; + + if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) { + var deltaX = input.deltaX - last.deltaX; + var deltaY = input.deltaY - last.deltaY; + + var v = getVelocity(deltaTime, deltaX, deltaY); + velocityX = v.x; + velocityY = v.y; + velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y; + direction = getDirection(deltaX, deltaY); + + session.lastInterval = input; + } else { + // use latest velocity info if it doesn't overtake a minimum period + velocity = last.velocity; + velocityX = last.velocityX; + velocityY = last.velocityY; + direction = last.direction; + } + + input.velocity = velocity; + input.velocityX = velocityX; + input.velocityY = velocityY; + input.direction = direction; +} + +/** + * create a simple clone from the input used for storage of firstInput and firstMultiple + * @param {Object} input + * @returns {Object} clonedInputData + */ +function simpleCloneInputData(input) { + // make a simple copy of the pointers because we will get a reference if we don't + // we only need clientXY for the calculations + var pointers = []; + var i = 0; + while (i < input.pointers.length) { + pointers[i] = { + clientX: round(input.pointers[i].clientX), + clientY: round(input.pointers[i].clientY) + }; + i++; + } + + return { + timeStamp: now(), + pointers: pointers, + center: getCenter(pointers), + deltaX: input.deltaX, + deltaY: input.deltaY + }; +} + +/** + * get the center of all the pointers + * @param {Array} pointers + * @return {Object} center contains `x` and `y` properties + */ +function getCenter(pointers) { + var pointersLength = pointers.length; + + // no need to loop when only one touch + if (pointersLength === 1) { + return { + x: round(pointers[0].clientX), + y: round(pointers[0].clientY) + }; + } + + var x = 0, y = 0, i = 0; + while (i < pointersLength) { + x += pointers[i].clientX; + y += pointers[i].clientY; + i++; + } + + return { + x: round(x / pointersLength), + y: round(y / pointersLength) + }; +} + +/** + * calculate the velocity between two points. unit is in px per ms. + * @param {Number} deltaTime + * @param {Number} x + * @param {Number} y + * @return {Object} velocity `x` and `y` + */ +function getVelocity(deltaTime, x, y) { + return { + x: x / deltaTime || 0, + y: y / deltaTime || 0 + }; +} + +/** + * get the direction between two points + * @param {Number} x + * @param {Number} y + * @return {Number} direction + */ +function getDirection(x, y) { + if (x === y) { + return DIRECTION_NONE; + } + + if (abs(x) >= abs(y)) { + return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + return y < 0 ? DIRECTION_UP : DIRECTION_DOWN; +} + +/** + * calculate the absolute distance between two points + * @param {Object} p1 {x, y} + * @param {Object} p2 {x, y} + * @param {Array} [props] containing x and y keys + * @return {Number} distance + */ +function getDistance(p1, p2, props) { + if (!props) { + props = PROPS_XY; + } + var x = p2[props[0]] - p1[props[0]], + y = p2[props[1]] - p1[props[1]]; + + return Math.sqrt((x * x) + (y * y)); +} + +/** + * calculate the angle between two coordinates + * @param {Object} p1 + * @param {Object} p2 + * @param {Array} [props] containing x and y keys + * @return {Number} angle + */ +function getAngle(p1, p2, props) { + if (!props) { + props = PROPS_XY; + } + var x = p2[props[0]] - p1[props[0]], + y = p2[props[1]] - p1[props[1]]; + return Math.atan2(y, x) * 180 / Math.PI; +} + +/** + * calculate the rotation degrees between two pointersets + * @param {Array} start array of pointers + * @param {Array} end array of pointers + * @return {Number} rotation + */ +function getRotation(start, end) { + return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY); +} + +/** + * calculate the scale factor between two pointersets + * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out + * @param {Array} start array of pointers + * @param {Array} end array of pointers + * @return {Number} scale + */ +function getScale(start, end) { + return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY); +} + +var MOUSE_INPUT_MAP = { + mousedown: INPUT_START, + mousemove: INPUT_MOVE, + mouseup: INPUT_END +}; + +var MOUSE_ELEMENT_EVENTS = 'mousedown'; +var MOUSE_WINDOW_EVENTS = 'mousemove mouseup'; + +/** + * Mouse events input + * @constructor + * @extends Input + */ +function MouseInput() { + this.evEl = MOUSE_ELEMENT_EVENTS; + this.evWin = MOUSE_WINDOW_EVENTS; + + this.pressed = false; // mousedown state + + Input.apply(this, arguments); +} + +inherit(MouseInput, Input, { + /** + * handle mouse events + * @param {Object} ev + */ + handler: function MEhandler(ev) { + var eventType = MOUSE_INPUT_MAP[ev.type]; + + // on start we want to have the left mouse button down + if (eventType & INPUT_START && ev.button === 0) { + this.pressed = true; + } + + if (eventType & INPUT_MOVE && ev.which !== 1) { + eventType = INPUT_END; + } + + // mouse must be down + if (!this.pressed) { + return; + } + + if (eventType & INPUT_END) { + this.pressed = false; + } + + this.callback(this.manager, eventType, { + pointers: [ev], + changedPointers: [ev], + pointerType: INPUT_TYPE_MOUSE, + srcEvent: ev + }); + } +}); + +var POINTER_INPUT_MAP = { + pointerdown: INPUT_START, + pointermove: INPUT_MOVE, + pointerup: INPUT_END, + pointercancel: INPUT_CANCEL, + pointerout: INPUT_CANCEL +}; + +// in IE10 the pointer types is defined as an enum +var IE10_POINTER_TYPE_ENUM = { + 2: INPUT_TYPE_TOUCH, + 3: INPUT_TYPE_PEN, + 4: INPUT_TYPE_MOUSE, + 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816 +}; + +var POINTER_ELEMENT_EVENTS = 'pointerdown'; +var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; + +// IE10 has prefixed support, and case-sensitive +if (window.MSPointerEvent && !window.PointerEvent) { + POINTER_ELEMENT_EVENTS = 'MSPointerDown'; + POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel'; +} + +/** + * Pointer events input + * @constructor + * @extends Input + */ +function PointerEventInput() { + this.evEl = POINTER_ELEMENT_EVENTS; + this.evWin = POINTER_WINDOW_EVENTS; + + Input.apply(this, arguments); + + this.store = (this.manager.session.pointerEvents = []); +} + +inherit(PointerEventInput, Input, { + /** + * handle mouse events + * @param {Object} ev + */ + handler: function PEhandler(ev) { + var store = this.store; + var removePointer = false; + + var eventTypeNormalized = ev.type.toLowerCase().replace('ms', ''); + var eventType = POINTER_INPUT_MAP[eventTypeNormalized]; + var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType; + + var isTouch = (pointerType == INPUT_TYPE_TOUCH); + + // get index of the event in the store + var storeIndex = inArray(store, ev.pointerId, 'pointerId'); + + // start and mouse must be down + if (eventType & INPUT_START && (ev.button === 0 || isTouch)) { + if (storeIndex < 0) { + store.push(ev); + storeIndex = store.length - 1; + } + } else if (eventType & (INPUT_END | INPUT_CANCEL)) { + removePointer = true; + } + + // it not found, so the pointer hasn't been down (so it's probably a hover) + if (storeIndex < 0) { + return; + } + + // update the event in the store + store[storeIndex] = ev; + + this.callback(this.manager, eventType, { + pointers: store, + changedPointers: [ev], + pointerType: pointerType, + srcEvent: ev + }); + + if (removePointer) { + // remove from the store + store.splice(storeIndex, 1); + } + } +}); + +var SINGLE_TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL +}; + +var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart'; +var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel'; + +/** + * Touch events input + * @constructor + * @extends Input + */ +function SingleTouchInput() { + this.evTarget = SINGLE_TOUCH_TARGET_EVENTS; + this.evWin = SINGLE_TOUCH_WINDOW_EVENTS; + this.started = false; + + Input.apply(this, arguments); +} + +inherit(SingleTouchInput, Input, { + handler: function TEhandler(ev) { + var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; + + // should we handle the touch events? + if (type === INPUT_START) { + this.started = true; + } + + if (!this.started) { + return; + } + + var touches = normalizeSingleTouches.call(this, ev, type); + + // when done, reset the started state + if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) { + this.started = false; + } + + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); + } +}); + +/** + * @this {TouchInput} + * @param {Object} ev + * @param {Number} type flag + * @returns {undefined|Array} [all, changed] + */ +function normalizeSingleTouches(ev, type) { + var all = toArray(ev.touches); + var changed = toArray(ev.changedTouches); + + if (type & (INPUT_END | INPUT_CANCEL)) { + all = uniqueArray(all.concat(changed), 'identifier', true); + } + + return [all, changed]; +} + +var TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL +}; + +var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel'; + +/** + * Multi-user touch events input + * @constructor + * @extends Input + */ +function TouchInput() { + this.evTarget = TOUCH_TARGET_EVENTS; + this.targetIds = {}; + + Input.apply(this, arguments); +} + +inherit(TouchInput, Input, { + handler: function MTEhandler(ev) { + var type = TOUCH_INPUT_MAP[ev.type]; + var touches = getTouches.call(this, ev, type); + if (!touches) { + return; + } + + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); + } +}); + +/** + * @this {TouchInput} + * @param {Object} ev + * @param {Number} type flag + * @returns {undefined|Array} [all, changed] + */ +function getTouches(ev, type) { + var allTouches = toArray(ev.touches); + var targetIds = this.targetIds; + + // when there is only one touch, the process can be simplified + if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) { + targetIds[allTouches[0].identifier] = true; + return [allTouches, allTouches]; + } + + var i, + targetTouches, + changedTouches = toArray(ev.changedTouches), + changedTargetTouches = [], + target = this.target; + + // get target touches from touches + targetTouches = allTouches.filter(function(touch) { + return hasParent(touch.target, target); + }); + + // collect touches + if (type === INPUT_START) { + i = 0; + while (i < targetTouches.length) { + targetIds[targetTouches[i].identifier] = true; + i++; + } + } + + // filter changed touches to only contain touches that exist in the collected target ids + i = 0; + while (i < changedTouches.length) { + if (targetIds[changedTouches[i].identifier]) { + changedTargetTouches.push(changedTouches[i]); + } + + // cleanup removed touches + if (type & (INPUT_END | INPUT_CANCEL)) { + delete targetIds[changedTouches[i].identifier]; + } + i++; + } + + if (!changedTargetTouches.length) { + return; + } + + return [ + // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel' + uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), + changedTargetTouches + ]; +} + +/** + * Combined touch and mouse input + * + * Touch has a higher priority then mouse, and while touching no mouse events are allowed. + * This because touch devices also emit mouse events while doing a touch. + * + * @constructor + * @extends Input + */ + +var DEDUP_TIMEOUT = 2500; +var DEDUP_DISTANCE = 25; + +function TouchMouseInput() { + Input.apply(this, arguments); + + var handler = bindFn(this.handler, this); + this.touch = new TouchInput(this.manager, handler); + this.mouse = new MouseInput(this.manager, handler); + + this.primaryTouch = null; + this.lastTouches = []; +} + +inherit(TouchMouseInput, Input, { + /** + * handle mouse and touch events + * @param {Hammer} manager + * @param {String} inputEvent + * @param {Object} inputData + */ + handler: function TMEhandler(manager, inputEvent, inputData) { + var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH), + isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE); + + if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) { + return; + } + + // when we're in a touch event, record touches to de-dupe synthetic mouse event + if (isTouch) { + recordTouches.call(this, inputEvent, inputData); + } else if (isMouse && isSyntheticEvent.call(this, inputData)) { + return; + } + + this.callback(manager, inputEvent, inputData); + }, + + /** + * remove the event listeners + */ + destroy: function destroy() { + this.touch.destroy(); + this.mouse.destroy(); + } +}); + +function recordTouches(eventType, eventData) { + if (eventType & INPUT_START) { + this.primaryTouch = eventData.changedPointers[0].identifier; + setLastTouch.call(this, eventData); + } else if (eventType & (INPUT_END | INPUT_CANCEL)) { + setLastTouch.call(this, eventData); + } +} + +function setLastTouch(eventData) { + var touch = eventData.changedPointers[0]; + + if (touch.identifier === this.primaryTouch) { + var lastTouch = {x: touch.clientX, y: touch.clientY}; + this.lastTouches.push(lastTouch); + var lts = this.lastTouches; + var removeLastTouch = function() { + var i = lts.indexOf(lastTouch); + if (i > -1) { + lts.splice(i, 1); + } + }; + setTimeout(removeLastTouch, DEDUP_TIMEOUT); + } +} + +function isSyntheticEvent(eventData) { + var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY; + for (var i = 0; i < this.lastTouches.length; i++) { + var t = this.lastTouches[i]; + var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y); + if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) { + return true; + } + } + return false; +} + +var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction'); +var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined; + +// magical touchAction value +var TOUCH_ACTION_COMPUTE = 'compute'; +var TOUCH_ACTION_AUTO = 'auto'; +var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented +var TOUCH_ACTION_NONE = 'none'; +var TOUCH_ACTION_PAN_X = 'pan-x'; +var TOUCH_ACTION_PAN_Y = 'pan-y'; +var TOUCH_ACTION_MAP = getTouchActionProps(); + +/** + * Touch Action + * sets the touchAction property or uses the js alternative + * @param {Manager} manager + * @param {String} value + * @constructor + */ +function TouchAction(manager, value) { + this.manager = manager; + this.set(value); +} + +TouchAction.prototype = { + /** + * set the touchAction value on the element or enable the polyfill + * @param {String} value + */ + set: function(value) { + // find out the touch-action by the event handlers + if (value == TOUCH_ACTION_COMPUTE) { + value = this.compute(); + } + + if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) { + this.manager.element.style[PREFIXED_TOUCH_ACTION] = value; + } + this.actions = value.toLowerCase().trim(); + }, + + /** + * just re-set the touchAction value + */ + update: function() { + this.set(this.manager.options.touchAction); + }, + + /** + * compute the value for the touchAction property based on the recognizer's settings + * @returns {String} value + */ + compute: function() { + var actions = []; + each(this.manager.recognizers, function(recognizer) { + if (boolOrFn(recognizer.options.enable, [recognizer])) { + actions = actions.concat(recognizer.getTouchAction()); + } + }); + return cleanTouchActions(actions.join(' ')); + }, + + /** + * this method is called on each input cycle and provides the preventing of the browser behavior + * @param {Object} input + */ + preventDefaults: function(input) { + var srcEvent = input.srcEvent; + var direction = input.offsetDirection; + + // if the touch action did prevented once this session + if (this.manager.session.prevented) { + srcEvent.preventDefault(); + return; + } + + var actions = this.actions; + var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE]; + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y]; + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X]; + + if (hasNone) { + //do not prevent defaults if this is a tap gesture + + var isTapPointer = input.pointers.length === 1; + var isTapMovement = input.distance < 2; + var isTapTouchTime = input.deltaTime < 250; + + if (isTapPointer && isTapMovement && isTapTouchTime) { + return; + } + } + + if (hasPanX && hasPanY) { + // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent + return; + } + + if (hasNone || + (hasPanY && direction & DIRECTION_HORIZONTAL) || + (hasPanX && direction & DIRECTION_VERTICAL)) { + return this.preventSrc(srcEvent); + } + }, + + /** + * call preventDefault to prevent the browser's default behavior (scrolling in most cases) + * @param {Object} srcEvent + */ + preventSrc: function(srcEvent) { + this.manager.session.prevented = true; + srcEvent.preventDefault(); + } +}; + +/** + * when the touchActions are collected they are not a valid value, so we need to clean things up. * + * @param {String} actions + * @returns {*} + */ +function cleanTouchActions(actions) { + // none + if (inStr(actions, TOUCH_ACTION_NONE)) { + return TOUCH_ACTION_NONE; + } + + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X); + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); + + // if both pan-x and pan-y are set (different recognizers + // for different directions, e.g. horizontal pan but vertical swipe?) + // we need none (as otherwise with pan-x pan-y combined none of these + // recognizers will work, since the browser would handle all panning + if (hasPanX && hasPanY) { + return TOUCH_ACTION_NONE; + } + + // pan-x OR pan-y + if (hasPanX || hasPanY) { + return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y; + } + + // manipulation + if (inStr(actions, TOUCH_ACTION_MANIPULATION)) { + return TOUCH_ACTION_MANIPULATION; + } + + return TOUCH_ACTION_AUTO; +} + +function getTouchActionProps() { + if (!NATIVE_TOUCH_ACTION) { + return false; + } + var touchMap = {}; + var cssSupports = window.CSS && window.CSS.supports; + ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) { + + // If css.supports is not supported but there is native touch-action assume it supports + // all values. This is the case for IE 10 and 11. + touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true; + }); + return touchMap; +} + +/** + * Recognizer flow explained; * + * All recognizers have the initial state of POSSIBLE when a input session starts. + * The definition of a input session is from the first input until the last input, with all it's movement in it. * + * Example session for mouse-input: mousedown -> mousemove -> mouseup + * + * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed + * which determines with state it should be. + * + * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to + * POSSIBLE to give it another change on the next cycle. + * + * Possible + * | + * +-----+---------------+ + * | | + * +-----+-----+ | + * | | | + * Failed Cancelled | + * +-------+------+ + * | | + * Recognized Began + * | + * Changed + * | + * Ended/Recognized + */ +var STATE_POSSIBLE = 1; +var STATE_BEGAN = 2; +var STATE_CHANGED = 4; +var STATE_ENDED = 8; +var STATE_RECOGNIZED = STATE_ENDED; +var STATE_CANCELLED = 16; +var STATE_FAILED = 32; + +/** + * Recognizer + * Every recognizer needs to extend from this class. + * @constructor + * @param {Object} options + */ +function Recognizer(options) { + this.options = assign({}, this.defaults, options || {}); + + this.id = uniqueId(); + + this.manager = null; + + // default is enable true + this.options.enable = ifUndefined(this.options.enable, true); + + this.state = STATE_POSSIBLE; + + this.simultaneous = {}; + this.requireFail = []; +} + +Recognizer.prototype = { + /** + * @virtual + * @type {Object} + */ + defaults: {}, + + /** + * set options + * @param {Object} options + * @return {Recognizer} + */ + set: function(options) { + assign(this.options, options); + + // also update the touchAction, in case something changed about the directions/enabled state + this.manager && this.manager.touchAction.update(); + return this; + }, + + /** + * recognize simultaneous with an other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + recognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) { + return this; + } + + var simultaneous = this.simultaneous; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (!simultaneous[otherRecognizer.id]) { + simultaneous[otherRecognizer.id] = otherRecognizer; + otherRecognizer.recognizeWith(this); + } + return this; + }, + + /** + * drop the simultaneous link. it doesnt remove the link on the other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + dropRecognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) { + return this; + } + + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + delete this.simultaneous[otherRecognizer.id]; + return this; + }, + + /** + * recognizer can only run when an other is failing + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + requireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) { + return this; + } + + var requireFail = this.requireFail; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (inArray(requireFail, otherRecognizer) === -1) { + requireFail.push(otherRecognizer); + otherRecognizer.requireFailure(this); + } + return this; + }, + + /** + * drop the requireFailure link. it does not remove the link on the other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + dropRequireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) { + return this; + } + + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + var index = inArray(this.requireFail, otherRecognizer); + if (index > -1) { + this.requireFail.splice(index, 1); + } + return this; + }, + + /** + * has require failures boolean + * @returns {boolean} + */ + hasRequireFailures: function() { + return this.requireFail.length > 0; + }, + + /** + * if the recognizer can recognize simultaneous with an other recognizer + * @param {Recognizer} otherRecognizer + * @returns {Boolean} + */ + canRecognizeWith: function(otherRecognizer) { + return !!this.simultaneous[otherRecognizer.id]; + }, + + /** + * You should use `tryEmit` instead of `emit` directly to check + * that all the needed recognizers has failed before emitting. + * @param {Object} input + */ + emit: function(input) { + var self = this; + var state = this.state; + + function emit(event) { + self.manager.emit(event, input); + } + + // 'panstart' and 'panmove' + if (state < STATE_ENDED) { + emit(self.options.event + stateStr(state)); + } + + emit(self.options.event); // simple 'eventName' events + + if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...) + emit(input.additionalEvent); + } + + // panend and pancancel + if (state >= STATE_ENDED) { + emit(self.options.event + stateStr(state)); + } + }, + + /** + * Check that all the require failure recognizers has failed, + * if true, it emits a gesture event, + * otherwise, setup the state to FAILED. + * @param {Object} input + */ + tryEmit: function(input) { + if (this.canEmit()) { + return this.emit(input); + } + // it's failing anyway + this.state = STATE_FAILED; + }, + + /** + * can we emit? + * @returns {boolean} + */ + canEmit: function() { + var i = 0; + while (i < this.requireFail.length) { + if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) { + return false; + } + i++; + } + return true; + }, + + /** + * update the recognizer + * @param {Object} inputData + */ + recognize: function(inputData) { + // make a new copy of the inputData + // so we can change the inputData without messing up the other recognizers + var inputDataClone = assign({}, inputData); + + // is is enabled and allow recognizing? + if (!boolOrFn(this.options.enable, [this, inputDataClone])) { + this.reset(); + this.state = STATE_FAILED; + return; + } + + // reset when we've reached the end + if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) { + this.state = STATE_POSSIBLE; + } + + this.state = this.process(inputDataClone); + + // the recognizer has recognized a gesture + // so trigger an event + if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) { + this.tryEmit(inputDataClone); + } + }, + + /** + * return the state of the recognizer + * the actual recognizing happens in this method + * @virtual + * @param {Object} inputData + * @returns {Const} STATE + */ + process: function(inputData) { }, // jshint ignore:line + + /** + * return the preferred touch-action + * @virtual + * @returns {Array} + */ + getTouchAction: function() { }, + + /** + * called when the gesture isn't allowed to recognize + * like when another is being recognized or it is disabled + * @virtual + */ + reset: function() { } +}; + +/** + * get a usable string, used as event postfix + * @param {Const} state + * @returns {String} state + */ +function stateStr(state) { + if (state & STATE_CANCELLED) { + return 'cancel'; + } else if (state & STATE_ENDED) { + return 'end'; + } else if (state & STATE_CHANGED) { + return 'move'; + } else if (state & STATE_BEGAN) { + return 'start'; + } + return ''; +} + +/** + * direction cons to string + * @param {Const} direction + * @returns {String} + */ +function directionStr(direction) { + if (direction == DIRECTION_DOWN) { + return 'down'; + } else if (direction == DIRECTION_UP) { + return 'up'; + } else if (direction == DIRECTION_LEFT) { + return 'left'; + } else if (direction == DIRECTION_RIGHT) { + return 'right'; + } + return ''; +} + +/** + * get a recognizer by name if it is bound to a manager + * @param {Recognizer|String} otherRecognizer + * @param {Recognizer} recognizer + * @returns {Recognizer} + */ +function getRecognizerByNameIfManager(otherRecognizer, recognizer) { + var manager = recognizer.manager; + if (manager) { + return manager.get(otherRecognizer); + } + return otherRecognizer; +} + +/** + * This recognizer is just used as a base for the simple attribute recognizers. + * @constructor + * @extends Recognizer + */ +function AttrRecognizer() { + Recognizer.apply(this, arguments); +} + +inherit(AttrRecognizer, Recognizer, { + /** + * @namespace + * @memberof AttrRecognizer + */ + defaults: { + /** + * @type {Number} + * @default 1 + */ + pointers: 1 + }, + + /** + * Used to check if it the recognizer receives valid input, like input.distance > 10. + * @memberof AttrRecognizer + * @param {Object} input + * @returns {Boolean} recognized + */ + attrTest: function(input) { + var optionPointers = this.options.pointers; + return optionPointers === 0 || input.pointers.length === optionPointers; + }, + + /** + * Process the input and return the state for the recognizer + * @memberof AttrRecognizer + * @param {Object} input + * @returns {*} State + */ + process: function(input) { + var state = this.state; + var eventType = input.eventType; + + var isRecognized = state & (STATE_BEGAN | STATE_CHANGED); + var isValid = this.attrTest(input); + + // on cancel input and we've recognized before, return STATE_CANCELLED + if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) { + return state | STATE_CANCELLED; + } else if (isRecognized || isValid) { + if (eventType & INPUT_END) { + return state | STATE_ENDED; + } else if (!(state & STATE_BEGAN)) { + return STATE_BEGAN; + } + return state | STATE_CHANGED; + } + return STATE_FAILED; + } +}); + +/** + * Pan + * Recognized when the pointer is down and moved in the allowed direction. + * @constructor + * @extends AttrRecognizer + */ +function PanRecognizer() { + AttrRecognizer.apply(this, arguments); + + this.pX = null; + this.pY = null; +} + +inherit(PanRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof PanRecognizer + */ + defaults: { + event: 'pan', + threshold: 10, + pointers: 1, + direction: DIRECTION_ALL + }, + + getTouchAction: function() { + var direction = this.options.direction; + var actions = []; + if (direction & DIRECTION_HORIZONTAL) { + actions.push(TOUCH_ACTION_PAN_Y); + } + if (direction & DIRECTION_VERTICAL) { + actions.push(TOUCH_ACTION_PAN_X); + } + return actions; + }, + + directionTest: function(input) { + var options = this.options; + var hasMoved = true; + var distance = input.distance; + var direction = input.direction; + var x = input.deltaX; + var y = input.deltaY; + + // lock to axis? + if (!(direction & options.direction)) { + if (options.direction & DIRECTION_HORIZONTAL) { + direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT; + hasMoved = x != this.pX; + distance = Math.abs(input.deltaX); + } else { + direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN; + hasMoved = y != this.pY; + distance = Math.abs(input.deltaY); + } + } + input.direction = direction; + return hasMoved && distance > options.threshold && direction & options.direction; + }, + + attrTest: function(input) { + return AttrRecognizer.prototype.attrTest.call(this, input) && + (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input))); + }, + + emit: function(input) { + + this.pX = input.deltaX; + this.pY = input.deltaY; + + var direction = directionStr(input.direction); + + if (direction) { + input.additionalEvent = this.options.event + direction; + } + this._super.emit.call(this, input); + } +}); + +/** + * Pinch + * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out). + * @constructor + * @extends AttrRecognizer + */ +function PinchRecognizer() { + AttrRecognizer.apply(this, arguments); +} + +inherit(PinchRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof PinchRecognizer + */ + defaults: { + event: 'pinch', + threshold: 0, + pointers: 2 + }, + + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, + + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN); + }, + + emit: function(input) { + if (input.scale !== 1) { + var inOut = input.scale < 1 ? 'in' : 'out'; + input.additionalEvent = this.options.event + inOut; + } + this._super.emit.call(this, input); + } +}); + +/** + * Press + * Recognized when the pointer is down for x ms without any movement. + * @constructor + * @extends Recognizer + */ +function PressRecognizer() { + Recognizer.apply(this, arguments); + + this._timer = null; + this._input = null; +} + +inherit(PressRecognizer, Recognizer, { + /** + * @namespace + * @memberof PressRecognizer + */ + defaults: { + event: 'press', + pointers: 1, + time: 251, // minimal time of the pointer to be pressed + threshold: 9 // a minimal movement is ok, but keep it low + }, + + getTouchAction: function() { + return [TOUCH_ACTION_AUTO]; + }, + + process: function(input) { + var options = this.options; + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTime = input.deltaTime > options.time; + + this._input = input; + + // we only allow little movement + // and we've reached an end event, so a tap is possible + if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) { + this.reset(); + } else if (input.eventType & INPUT_START) { + this.reset(); + this._timer = setTimeoutContext(function() { + this.state = STATE_RECOGNIZED; + this.tryEmit(); + }, options.time, this); + } else if (input.eventType & INPUT_END) { + return STATE_RECOGNIZED; + } + return STATE_FAILED; + }, + + reset: function() { + clearTimeout(this._timer); + }, + + emit: function(input) { + if (this.state !== STATE_RECOGNIZED) { + return; + } + + if (input && (input.eventType & INPUT_END)) { + this.manager.emit(this.options.event + 'up', input); + } else { + this._input.timeStamp = now(); + this.manager.emit(this.options.event, this._input); + } + } +}); + +/** + * Rotate + * Recognized when two or more pointer are moving in a circular motion. + * @constructor + * @extends AttrRecognizer + */ +function RotateRecognizer() { + AttrRecognizer.apply(this, arguments); +} + +inherit(RotateRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof RotateRecognizer + */ + defaults: { + event: 'rotate', + threshold: 0, + pointers: 2 + }, + + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, + + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN); + } +}); + +/** + * Swipe + * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction. + * @constructor + * @extends AttrRecognizer + */ +function SwipeRecognizer() { + AttrRecognizer.apply(this, arguments); +} + +inherit(SwipeRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof SwipeRecognizer + */ + defaults: { + event: 'swipe', + threshold: 10, + velocity: 0.3, + direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL, + pointers: 1 + }, + + getTouchAction: function() { + return PanRecognizer.prototype.getTouchAction.call(this); + }, + + attrTest: function(input) { + var direction = this.options.direction; + var velocity; + + if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) { + velocity = input.overallVelocity; + } else if (direction & DIRECTION_HORIZONTAL) { + velocity = input.overallVelocityX; + } else if (direction & DIRECTION_VERTICAL) { + velocity = input.overallVelocityY; + } + + return this._super.attrTest.call(this, input) && + direction & input.offsetDirection && + input.distance > this.options.threshold && + input.maxPointers == this.options.pointers && + abs(velocity) > this.options.velocity && input.eventType & INPUT_END; + }, + + emit: function(input) { + var direction = directionStr(input.offsetDirection); + if (direction) { + this.manager.emit(this.options.event + direction, input); + } + + this.manager.emit(this.options.event, input); + } +}); + +/** + * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur + * between the given interval and position. The delay option can be used to recognize multi-taps without firing + * a single tap. + * + * The eventData from the emitted event contains the property `tapCount`, which contains the amount of + * multi-taps being recognized. + * @constructor + * @extends Recognizer + */ +function TapRecognizer() { + Recognizer.apply(this, arguments); + + // previous time and center, + // used for tap counting + this.pTime = false; + this.pCenter = false; + + this._timer = null; + this._input = null; + this.count = 0; +} + +inherit(TapRecognizer, Recognizer, { + /** + * @namespace + * @memberof PinchRecognizer + */ + defaults: { + event: 'tap', + pointers: 1, + taps: 1, + interval: 300, // max time between the multi-tap taps + time: 250, // max time of the pointer to be down (like finger on the screen) + threshold: 9, // a minimal movement is ok, but keep it low + posThreshold: 10 // a multi-tap can be a bit off the initial position + }, + + getTouchAction: function() { + return [TOUCH_ACTION_MANIPULATION]; + }, + + process: function(input) { + var options = this.options; + + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTouchTime = input.deltaTime < options.time; + + this.reset(); + + if ((input.eventType & INPUT_START) && (this.count === 0)) { + return this.failTimeout(); + } + + // we only allow little movement + // and we've reached an end event, so a tap is possible + if (validMovement && validTouchTime && validPointers) { + if (input.eventType != INPUT_END) { + return this.failTimeout(); + } + + var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true; + var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold; + + this.pTime = input.timeStamp; + this.pCenter = input.center; + + if (!validMultiTap || !validInterval) { + this.count = 1; + } else { + this.count += 1; + } + + this._input = input; + + // if tap count matches we have recognized it, + // else it has began recognizing... + var tapCount = this.count % options.taps; + if (tapCount === 0) { + // no failing requirements, immediately trigger the tap event + // or wait as long as the multitap interval to trigger + if (!this.hasRequireFailures()) { + return STATE_RECOGNIZED; + } else { + this._timer = setTimeoutContext(function() { + this.state = STATE_RECOGNIZED; + this.tryEmit(); + }, options.interval, this); + return STATE_BEGAN; + } + } + } + return STATE_FAILED; + }, + + failTimeout: function() { + this._timer = setTimeoutContext(function() { + this.state = STATE_FAILED; + }, this.options.interval, this); + return STATE_FAILED; + }, + + reset: function() { + clearTimeout(this._timer); + }, + + emit: function() { + if (this.state == STATE_RECOGNIZED) { + this._input.tapCount = this.count; + this.manager.emit(this.options.event, this._input); + } + } +}); + +/** + * Simple way to create a manager with a default set of recognizers. + * @param {HTMLElement} element + * @param {Object} [options] + * @constructor + */ +function Hammer(element, options) { + options = options || {}; + options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset); + return new Manager(element, options); +} + +/** + * @const {string} + */ +Hammer.VERSION = '2.0.7'; + +/** + * default settings + * @namespace + */ +Hammer.defaults = { + /** + * set if DOM events are being triggered. + * But this is slower and unused by simple implementations, so disabled by default. + * @type {Boolean} + * @default false + */ + domEvents: false, + + /** + * The value for the touchAction property/fallback. + * When set to `compute` it will magically set the correct value based on the added recognizers. + * @type {String} + * @default compute + */ + touchAction: TOUCH_ACTION_COMPUTE, + + /** + * @type {Boolean} + * @default true + */ + enable: true, + + /** + * EXPERIMENTAL FEATURE -- can be removed/changed + * Change the parent input target element. + * If Null, then it is being set the to main element. + * @type {Null|EventTarget} + * @default null + */ + inputTarget: null, + + /** + * force an input class + * @type {Null|Function} + * @default null + */ + inputClass: null, + + /** + * Default recognizer setup when calling `Hammer()` + * When creating a new Manager these will be skipped. + * @type {Array} + */ + preset: [ + // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...] + [RotateRecognizer, {enable: false}], + [PinchRecognizer, {enable: false}, ['rotate']], + [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}], + [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']], + [TapRecognizer], + [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']], + [PressRecognizer] + ], + + /** + * Some CSS properties can be used to improve the working of Hammer. + * Add them to this method and they will be set when creating a new Manager. + * @namespace + */ + cssProps: { + /** + * Disables text selection to improve the dragging gesture. Mainly for desktop browsers. + * @type {String} + * @default 'none' + */ + userSelect: 'none', + + /** + * Disable the Windows Phone grippers when pressing an element. + * @type {String} + * @default 'none' + */ + touchSelect: 'none', + + /** + * Disables the default callout shown when you touch and hold a touch target. + * On iOS, when you touch and hold a touch target such as a link, Safari displays + * a callout containing information about the link. This property allows you to disable that callout. + * @type {String} + * @default 'none' + */ + touchCallout: 'none', + + /** + * Specifies whether zooming is enabled. Used by IE10> + * @type {String} + * @default 'none' + */ + contentZooming: 'none', + + /** + * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers. + * @type {String} + * @default 'none' + */ + userDrag: 'none', + + /** + * Overrides the highlight color shown when the user taps a link or a JavaScript + * clickable element in iOS. This property obeys the alpha value, if specified. + * @type {String} + * @default 'rgba(0,0,0,0)' + */ + tapHighlightColor: 'rgba(0,0,0,0)' + } +}; + +var STOP = 1; +var FORCED_STOP = 2; + +/** + * Manager + * @param {HTMLElement} element + * @param {Object} [options] + * @constructor + */ +function Manager(element, options) { + this.options = assign({}, Hammer.defaults, options || {}); + + this.options.inputTarget = this.options.inputTarget || element; + + this.handlers = {}; + this.session = {}; + this.recognizers = []; + this.oldCssProps = {}; + + this.element = element; + this.input = createInputInstance(this); + this.touchAction = new TouchAction(this, this.options.touchAction); + + toggleCssProps(this, true); + + each(this.options.recognizers, function(item) { + var recognizer = this.add(new (item[0])(item[1])); + item[2] && recognizer.recognizeWith(item[2]); + item[3] && recognizer.requireFailure(item[3]); + }, this); +} + +Manager.prototype = { + /** + * set options + * @param {Object} options + * @returns {Manager} + */ + set: function(options) { + assign(this.options, options); + + // Options that need a little more setup + if (options.touchAction) { + this.touchAction.update(); + } + if (options.inputTarget) { + // Clean up existing event listeners and reinitialize + this.input.destroy(); + this.input.target = options.inputTarget; + this.input.init(); + } + return this; + }, + + /** + * stop recognizing for this session. + * This session will be discarded, when a new [input]start event is fired. + * When forced, the recognizer cycle is stopped immediately. + * @param {Boolean} [force] + */ + stop: function(force) { + this.session.stopped = force ? FORCED_STOP : STOP; + }, + + /** + * run the recognizers! + * called by the inputHandler function on every movement of the pointers (touches) + * it walks through all the recognizers and tries to detect the gesture that is being made + * @param {Object} inputData + */ + recognize: function(inputData) { + var session = this.session; + if (session.stopped) { + return; + } + + // run the touch-action polyfill + this.touchAction.preventDefaults(inputData); + + var recognizer; + var recognizers = this.recognizers; + + // this holds the recognizer that is being recognized. + // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED + // if no recognizer is detecting a thing, it is set to `null` + var curRecognizer = session.curRecognizer; + + // reset when the last recognizer is recognized + // or when we're in a new session + if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) { + curRecognizer = session.curRecognizer = null; + } + + var i = 0; + while (i < recognizers.length) { + recognizer = recognizers[i]; + + // find out if we are allowed try to recognize the input for this one. + // 1. allow if the session is NOT forced stopped (see the .stop() method) + // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one + // that is being recognized. + // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer. + // this can be setup with the `recognizeWith()` method on the recognizer. + if (session.stopped !== FORCED_STOP && ( // 1 + !curRecognizer || recognizer == curRecognizer || // 2 + recognizer.canRecognizeWith(curRecognizer))) { // 3 + recognizer.recognize(inputData); + } else { + recognizer.reset(); + } + + // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the + // current active recognizer. but only if we don't already have an active recognizer + if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) { + curRecognizer = session.curRecognizer = recognizer; + } + i++; + } + }, + + /** + * get a recognizer by its event name. + * @param {Recognizer|String} recognizer + * @returns {Recognizer|Null} + */ + get: function(recognizer) { + if (recognizer instanceof Recognizer) { + return recognizer; + } + + var recognizers = this.recognizers; + for (var i = 0; i < recognizers.length; i++) { + if (recognizers[i].options.event == recognizer) { + return recognizers[i]; + } + } + return null; + }, + + /** + * add a recognizer to the manager + * existing recognizers with the same event name will be removed + * @param {Recognizer} recognizer + * @returns {Recognizer|Manager} + */ + add: function(recognizer) { + if (invokeArrayArg(recognizer, 'add', this)) { + return this; + } + + // remove existing + var existing = this.get(recognizer.options.event); + if (existing) { + this.remove(existing); + } + + this.recognizers.push(recognizer); + recognizer.manager = this; + + this.touchAction.update(); + return recognizer; + }, + + /** + * remove a recognizer by name or instance + * @param {Recognizer|String} recognizer + * @returns {Manager} + */ + remove: function(recognizer) { + if (invokeArrayArg(recognizer, 'remove', this)) { + return this; + } + + recognizer = this.get(recognizer); + + // let's make sure this recognizer exists + if (recognizer) { + var recognizers = this.recognizers; + var index = inArray(recognizers, recognizer); + + if (index !== -1) { + recognizers.splice(index, 1); + this.touchAction.update(); + } + } + + return this; + }, + + /** + * bind event + * @param {String} events + * @param {Function} handler + * @returns {EventEmitter} this + */ + on: function(events, handler) { + if (events === undefined) { + return; + } + if (handler === undefined) { + return; + } + + var handlers = this.handlers; + each(splitStr(events), function(event) { + handlers[event] = handlers[event] || []; + handlers[event].push(handler); + }); + return this; + }, + + /** + * unbind event, leave emit blank to remove all handlers + * @param {String} events + * @param {Function} [handler] + * @returns {EventEmitter} this + */ + off: function(events, handler) { + if (events === undefined) { + return; + } + + var handlers = this.handlers; + each(splitStr(events), function(event) { + if (!handler) { + delete handlers[event]; + } else { + handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1); + } + }); + return this; + }, + + /** + * emit event to the listeners + * @param {String} event + * @param {Object} data + */ + emit: function(event, data) { + // we also want to trigger dom events + if (this.options.domEvents) { + triggerDomEvent(event, data); + } + + // no handlers, so skip it all + var handlers = this.handlers[event] && this.handlers[event].slice(); + if (!handlers || !handlers.length) { + return; + } + + data.type = event; + data.preventDefault = function() { + data.srcEvent.preventDefault(); + }; + + var i = 0; + while (i < handlers.length) { + handlers[i](data); + i++; + } + }, + + /** + * destroy the manager and unbinds all events + * it doesn't unbind dom events, that is the user own responsibility + */ + destroy: function() { + this.element && toggleCssProps(this, false); + + this.handlers = {}; + this.session = {}; + this.input.destroy(); + this.element = null; + } +}; + +/** + * add/remove the css properties as defined in manager.options.cssProps + * @param {Manager} manager + * @param {Boolean} add + */ +function toggleCssProps(manager, add) { + var element = manager.element; + if (!element.style) { + return; + } + var prop; + each(manager.options.cssProps, function(value, name) { + prop = prefixed(element.style, name); + if (add) { + manager.oldCssProps[prop] = element.style[prop]; + element.style[prop] = value; + } else { + element.style[prop] = manager.oldCssProps[prop] || ''; + } + }); + if (!add) { + manager.oldCssProps = {}; + } +} + +/** + * trigger dom event + * @param {String} event + * @param {Object} data + */ +function triggerDomEvent(event, data) { + var gestureEvent = document.createEvent('Event'); + gestureEvent.initEvent(event, true, true); + gestureEvent.gesture = data; + data.target.dispatchEvent(gestureEvent); +} + +assign(Hammer, { + INPUT_START: INPUT_START, + INPUT_MOVE: INPUT_MOVE, + INPUT_END: INPUT_END, + INPUT_CANCEL: INPUT_CANCEL, + + STATE_POSSIBLE: STATE_POSSIBLE, + STATE_BEGAN: STATE_BEGAN, + STATE_CHANGED: STATE_CHANGED, + STATE_ENDED: STATE_ENDED, + STATE_RECOGNIZED: STATE_RECOGNIZED, + STATE_CANCELLED: STATE_CANCELLED, + STATE_FAILED: STATE_FAILED, + + DIRECTION_NONE: DIRECTION_NONE, + DIRECTION_LEFT: DIRECTION_LEFT, + DIRECTION_RIGHT: DIRECTION_RIGHT, + DIRECTION_UP: DIRECTION_UP, + DIRECTION_DOWN: DIRECTION_DOWN, + DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL, + DIRECTION_VERTICAL: DIRECTION_VERTICAL, + DIRECTION_ALL: DIRECTION_ALL, + + Manager: Manager, + Input: Input, + TouchAction: TouchAction, + + TouchInput: TouchInput, + MouseInput: MouseInput, + PointerEventInput: PointerEventInput, + TouchMouseInput: TouchMouseInput, + SingleTouchInput: SingleTouchInput, + + Recognizer: Recognizer, + AttrRecognizer: AttrRecognizer, + Tap: TapRecognizer, + Pan: PanRecognizer, + Swipe: SwipeRecognizer, + Pinch: PinchRecognizer, + Rotate: RotateRecognizer, + Press: PressRecognizer, + + on: addEventListeners, + off: removeEventListeners, + each: each, + merge: merge, + extend: extend, + assign: assign, + inherit: inherit, + bindFn: bindFn, + prefixed: prefixed +}); + +// this prevents errors when Hammer is loaded in the presence of an AMD +// style loader but by script tag, not by the loader. +var freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line +freeGlobal.Hammer = Hammer; + +if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { + return Hammer; + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); +} else {} + +})(window, document, 'Hammer'); + + +/***/ }), + +/***/ "./node_modules/lodash.get/index.js": +/*!******************************************!*\ + !*** ./node_modules/lodash.get/index.js ***! + \******************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** `Object#toString` result references. */ +var funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + symbolTag = '[object Symbol]'; + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/, + reLeadingDot = /^\./, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +/** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ +function isHostObject(value) { + // Many host objects are `Object` objects that can coerce to strings + // despite having improperly defined `toString` methods. + var result = false; + if (value != null && typeof value.toString != 'function') { + try { + result = !!(value + ''); + } catch (e) {} + } + return result; +} + +/** Used for built-in method references. */ +var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var objectToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** Built-in value references. */ +var Symbol = root.Symbol, + splice = arrayProto.splice; + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'), + nativeCreate = getNative(Object, 'create'); + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; +} + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + return this.has(key) && delete this.__data__[key]; +} + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); +} + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; +} + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + return true; +} + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + return getMapData(this, key)['delete'](key); +} + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + getMapData(this, key).set(key, value); + return this; +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = isKey(path, object) ? [path] : castPath(path); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value) { + return isArray(value) ? value : stringToPath(value); +} + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoize(function(string) { + string = toString(string); + + var result = []; + if (reLeadingDot.test(string)) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to process. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result); + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Assign cache to `_.memoize`. +memoize.Cache = MapCache; + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); +} + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {string} Returns the string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +module.exports = get; + + +/***/ }), + +/***/ "./node_modules/node-gettext/lib/gettext.js": +/*!**************************************************!*\ + !*** ./node_modules/node-gettext/lib/gettext.js ***! + \**************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var get = __webpack_require__(/*! lodash.get */ "./node_modules/lodash.get/index.js"); +var plurals = __webpack_require__(/*! ./plurals */ "./node_modules/node-gettext/lib/plurals.js"); + +module.exports = Gettext; + +/** + * Creates and returns a new Gettext instance. + * + * @constructor + * @param {Object} [options] A set of options + * @param {String} options.sourceLocale The locale that the source code and its + * texts are written in. Translations for + * this locale is not necessary. + * @param {Boolean} options.debug Whether to output debug info into the + * console. + * @return {Object} A Gettext instance + */ +function Gettext(options) { + options = options || {}; + + this.catalogs = {}; + this.locale = ''; + this.domain = 'messages'; + + this.listeners = []; + + // Set source locale + this.sourceLocale = ''; + if (options.sourceLocale) { + if (typeof options.sourceLocale === 'string') { + this.sourceLocale = options.sourceLocale; + } + else { + this.warn('The `sourceLocale` option should be a string'); + } + } + + // Set debug flag + this.debug = 'debug' in options && options.debug === true; +} + +/** + * Adds an event listener. + * + * @param {String} eventName An event name + * @param {Function} callback An event handler function + */ +Gettext.prototype.on = function(eventName, callback) { + this.listeners.push({ + eventName: eventName, + callback: callback + }); +}; + +/** + * Removes an event listener. + * + * @param {String} eventName An event name + * @param {Function} callback A previously registered event handler function + */ +Gettext.prototype.off = function(eventName, callback) { + this.listeners = this.listeners.filter(function(listener) { + return ( + listener.eventName === eventName && + listener.callback === callback + ) === false; + }); +}; + +/** + * Emits an event to all registered event listener. + * + * @private + * @param {String} eventName An event name + * @param {any} eventData Data to pass to event listeners + */ +Gettext.prototype.emit = function(eventName, eventData) { + for (var i = 0; i < this.listeners.length; i++) { + var listener = this.listeners[i]; + if (listener.eventName === eventName) { + listener.callback(eventData); + } + } +}; + +/** + * Logs a warning to the console if debug mode is enabled. + * + * @ignore + * @param {String} message A warning message + */ +Gettext.prototype.warn = function(message) { + if (this.debug) { + console.warn(message); + } + + this.emit('error', new Error(message)); +}; + +/** + * Stores a set of translations in the set of gettext + * catalogs. + * + * @example + * gt.addTranslations('sv-SE', 'messages', translationsObject) + * + * @param {String} locale A locale string + * @param {String} domain A domain name + * @param {Object} translations An object of gettext-parser JSON shape + */ +Gettext.prototype.addTranslations = function(locale, domain, translations) { + if (!this.catalogs[locale]) { + this.catalogs[locale] = {}; + } + + this.catalogs[locale][domain] = translations; +}; + +/** + * Sets the locale to get translated messages for. + * + * @example + * gt.setLocale('sv-SE') + * + * @param {String} locale A locale + */ +Gettext.prototype.setLocale = function(locale) { + if (typeof locale !== 'string') { + this.warn( + 'You called setLocale() with an argument of type ' + (typeof locale) + '. ' + + 'The locale must be a string.' + ); + return; + } + + if (locale.trim() === '') { + this.warn('You called setLocale() with an empty value, which makes little sense.'); + } + + if (locale !== this.sourceLocale && !this.catalogs[locale]) { + this.warn('You called setLocale() with "' + locale + '", but no translations for that locale has been added.'); + } + + this.locale = locale; +}; + +/** + * Sets the default gettext domain. + * + * @example + * gt.setTextDomain('domainname') + * + * @param {String} domain A gettext domain name + */ +Gettext.prototype.setTextDomain = function(domain) { + if (typeof domain !== 'string') { + this.warn( + 'You called setTextDomain() with an argument of type ' + (typeof domain) + '. ' + + 'The domain must be a string.' + ); + return; + } + + if (domain.trim() === '') { + this.warn('You called setTextDomain() with an empty `domain` value.'); + } + + this.domain = domain; +}; + +/** + * Translates a string using the default textdomain + * + * @example + * gt.gettext('Some text') + * + * @param {String} msgid String to be translated + * @return {String} Translation or the original string if no translation was found + */ +Gettext.prototype.gettext = function(msgid) { + return this.dnpgettext(this.domain, '', msgid); +}; + +/** + * Translates a string using a specific domain + * + * @example + * gt.dgettext('domainname', 'Some text') + * + * @param {String} domain A gettext domain name + * @param {String} msgid String to be translated + * @return {String} Translation or the original string if no translation was found + */ +Gettext.prototype.dgettext = function(domain, msgid) { + return this.dnpgettext(domain, '', msgid); +}; + +/** + * Translates a plural string using the default textdomain + * + * @example + * gt.ngettext('One thing', 'Many things', numberOfThings) + * + * @param {String} msgid String to be translated when count is not plural + * @param {String} msgidPlural String to be translated when count is plural + * @param {Number} count Number count for the plural + * @return {String} Translation or the original string if no translation was found + */ +Gettext.prototype.ngettext = function(msgid, msgidPlural, count) { + return this.dnpgettext(this.domain, '', msgid, msgidPlural, count); +}; + +/** + * Translates a plural string using a specific textdomain + * + * @example + * gt.dngettext('domainname', 'One thing', 'Many things', numberOfThings) + * + * @param {String} domain A gettext domain name + * @param {String} msgid String to be translated when count is not plural + * @param {String} msgidPlural String to be translated when count is plural + * @param {Number} count Number count for the plural + * @return {String} Translation or the original string if no translation was found + */ +Gettext.prototype.dngettext = function(domain, msgid, msgidPlural, count) { + return this.dnpgettext(domain, '', msgid, msgidPlural, count); +}; + +/** + * Translates a string from a specific context using the default textdomain + * + * @example + * gt.pgettext('sports', 'Back') + * + * @param {String} msgctxt Translation context + * @param {String} msgid String to be translated + * @return {String} Translation or the original string if no translation was found + */ +Gettext.prototype.pgettext = function(msgctxt, msgid) { + return this.dnpgettext(this.domain, msgctxt, msgid); +}; + +/** + * Translates a string from a specific context using s specific textdomain + * + * @example + * gt.dpgettext('domainname', 'sports', 'Back') + * + * @param {String} domain A gettext domain name + * @param {String} msgctxt Translation context + * @param {String} msgid String to be translated + * @return {String} Translation or the original string if no translation was found + */ +Gettext.prototype.dpgettext = function(domain, msgctxt, msgid) { + return this.dnpgettext(domain, msgctxt, msgid); +}; + +/** + * Translates a plural string from a specific context using the default textdomain + * + * @example + * gt.npgettext('sports', 'Back', '%d backs', numberOfBacks) + * + * @param {String} msgctxt Translation context + * @param {String} msgid String to be translated when count is not plural + * @param {String} msgidPlural String to be translated when count is plural + * @param {Number} count Number count for the plural + * @return {String} Translation or the original string if no translation was found + */ +Gettext.prototype.npgettext = function(msgctxt, msgid, msgidPlural, count) { + return this.dnpgettext(this.domain, msgctxt, msgid, msgidPlural, count); +}; + +/** + * Translates a plural string from a specifi context using a specific textdomain + * + * @example + * gt.dnpgettext('domainname', 'sports', 'Back', '%d backs', numberOfBacks) + * + * @param {String} domain A gettext domain name + * @param {String} msgctxt Translation context + * @param {String} msgid String to be translated + * @param {String} msgidPlural If no translation was found, return this on count!=1 + * @param {Number} count Number count for the plural + * @return {String} Translation or the original string if no translation was found + */ +Gettext.prototype.dnpgettext = function(domain, msgctxt, msgid, msgidPlural, count) { + var defaultTranslation = msgid; + var translation; + var index; + + msgctxt = msgctxt || ''; + + if (!isNaN(count) && count !== 1) { + defaultTranslation = msgidPlural || msgid; + } + + translation = this._getTranslation(domain, msgctxt, msgid); + + if (translation) { + if (typeof count === 'number') { + var pluralsFunc = plurals[Gettext.getLanguageCode(this.locale)].pluralsFunc; + index = pluralsFunc(count); + if (typeof index === 'boolean') { + index = index ? 1 : 0; + } + } else { + index = 0; + } + + return translation.msgstr[index] || defaultTranslation; + } + else if (!this.sourceLocale || this.locale !== this.sourceLocale) { + this.warn('No translation was found for msgid "' + msgid + '" in msgctxt "' + msgctxt + '" and domain "' + domain + '"'); + } + + return defaultTranslation; +}; + +/** + * Retrieves comments object for a translation. The comments object + * has the shape `{ translator, extracted, reference, flag, previous }`. + * + * @example + * const comment = gt.getComment('domainname', 'sports', 'Backs') + * + * @private + * @param {String} domain A gettext domain name + * @param {String} msgctxt Translation context + * @param {String} msgid String to be translated + * @return {Object} Comments object or false if not found + */ +Gettext.prototype.getComment = function(domain, msgctxt, msgid) { + var translation; + + translation = this._getTranslation(domain, msgctxt, msgid); + if (translation) { + return translation.comments || {}; + } + + return {}; +}; + +/** + * Retrieves translation object from the domain and context + * + * @private + * @param {String} domain A gettext domain name + * @param {String} msgctxt Translation context + * @param {String} msgid String to be translated + * @return {Object} Translation object or false if not found + */ +Gettext.prototype._getTranslation = function(domain, msgctxt, msgid) { + msgctxt = msgctxt || ''; + + return get(this.catalogs, [this.locale, domain, 'translations', msgctxt, msgid]); +}; + +/** + * Returns the language code part of a locale + * + * @example + * Gettext.getLanguageCode('sv-SE') + * // -> "sv" + * + * @private + * @param {String} locale A case-insensitive locale string + * @returns {String} A language code + */ +Gettext.getLanguageCode = function(locale) { + return locale.split(/[\-_]/)[0].toLowerCase(); +}; + +/* C-style aliases */ + +/** + * C-style alias for [setTextDomain](#gettextsettextdomaindomain) + * + * @see Gettext#setTextDomain + */ +Gettext.prototype.textdomain = function(domain) { + if (this.debug) { + console.warn('textdomain(domain) was used to set locales in node-gettext v1. ' + + 'Make sure you are using it for domains, and switch to setLocale(locale) if you are not.\n\n ' + + 'To read more about the migration from node-gettext v1 to v2, ' + + 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x\n\n' + + 'This warning will be removed in the final 2.0.0'); + } + + this.setTextDomain(domain); +}; + +/** + * C-style alias for [setLocale](#gettextsetlocalelocale) + * + * @see Gettext#setLocale + */ +Gettext.prototype.setlocale = function(locale) { + this.setLocale(locale); +}; + +/* Deprecated functions */ + +/** + * This function will be removed in the final 2.0.0 release. + * + * @deprecated + */ +Gettext.prototype.addTextdomain = function() { + console.error('addTextdomain() is deprecated.\n\n' + + '* To add translations, use addTranslations()\n' + + '* To set the default domain, use setTextDomain() (or its alias textdomain())\n' + + '\n' + + 'To read more about the migration from node-gettext v1 to v2, ' + + 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x'); +}; + + +/***/ }), + +/***/ "./node_modules/node-gettext/lib/plurals.js": +/*!**************************************************!*\ + !*** ./node_modules/node-gettext/lib/plurals.js ***! + \**************************************************/ +/***/ ((module) => { + +"use strict"; + + +module.exports = { + ach: { + name: 'Acholi', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + af: { + name: 'Afrikaans', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ak: { + name: 'Akan', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + am: { + name: 'Amharic', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + an: { + name: 'Aragonese', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ar: { + name: 'Arabic', + examples: [{ + plural: 0, + sample: 0 + }, { + plural: 1, + sample: 1 + }, { + plural: 2, + sample: 2 + }, { + plural: 3, + sample: 3 + }, { + plural: 4, + sample: 11 + }, { + plural: 5, + sample: 100 + }], + nplurals: 6, + pluralsText: 'nplurals = 6; plural = (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5)', + pluralsFunc: function(n) { + return (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5); + } + }, + arn: { + name: 'Mapudungun', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + ast: { + name: 'Asturian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ay: { + name: 'Aymará', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + az: { + name: 'Azerbaijani', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + be: { + name: 'Belarusian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + bg: { + name: 'Bulgarian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + bn: { + name: 'Bengali', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + bo: { + name: 'Tibetan', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + br: { + name: 'Breton', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + brx: { + name: 'Bodo', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + bs: { + name: 'Bosnian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + ca: { + name: 'Catalan', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + cgg: { + name: 'Chiga', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + cs: { + name: 'Czech', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2); + } + }, + csb: { + name: 'Kashubian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + cy: { + name: 'Welsh', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 3 + }, { + plural: 3, + sample: 8 + }], + nplurals: 4, + pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3); + } + }, + da: { + name: 'Danish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + de: { + name: 'German', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + doi: { + name: 'Dogri', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + dz: { + name: 'Dzongkha', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + el: { + name: 'Greek', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + en: { + name: 'English', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + eo: { + name: 'Esperanto', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + es: { + name: 'Spanish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + et: { + name: 'Estonian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + eu: { + name: 'Basque', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + fa: { + name: 'Persian', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + ff: { + name: 'Fulah', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + fi: { + name: 'Finnish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + fil: { + name: 'Filipino', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + fo: { + name: 'Faroese', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + fr: { + name: 'French', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + fur: { + name: 'Friulian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + fy: { + name: 'Frisian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ga: { + name: 'Irish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 3 + }, { + plural: 3, + sample: 7 + }, { + plural: 4, + sample: 11 + }], + nplurals: 5, + pluralsText: 'nplurals = 5; plural = (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4); + } + }, + gd: { + name: 'Scottish Gaelic', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 3 + }, { + plural: 3, + sample: 20 + }], + nplurals: 4, + pluralsText: 'nplurals = 4; plural = ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3)', + pluralsFunc: function(n) { + return ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3); + } + }, + gl: { + name: 'Galician', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + gu: { + name: 'Gujarati', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + gun: { + name: 'Gun', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + ha: { + name: 'Hausa', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + he: { + name: 'Hebrew', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + hi: { + name: 'Hindi', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + hne: { + name: 'Chhattisgarhi', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + hr: { + name: 'Croatian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + hu: { + name: 'Hungarian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + hy: { + name: 'Armenian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + id: { + name: 'Indonesian', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + is: { + name: 'Icelandic', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n % 10 !== 1 || n % 100 === 11)', + pluralsFunc: function(n) { + return (n % 10 !== 1 || n % 100 === 11); + } + }, + it: { + name: 'Italian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ja: { + name: 'Japanese', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + jbo: { + name: 'Lojban', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + jv: { + name: 'Javanese', + examples: [{ + plural: 0, + sample: 0 + }, { + plural: 1, + sample: 1 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 0)', + pluralsFunc: function(n) { + return (n !== 0); + } + }, + ka: { + name: 'Georgian', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + kk: { + name: 'Kazakh', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + km: { + name: 'Khmer', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + kn: { + name: 'Kannada', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ko: { + name: 'Korean', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + ku: { + name: 'Kurdish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + kw: { + name: 'Cornish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 3 + }, { + plural: 3, + sample: 4 + }], + nplurals: 4, + pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3); + } + }, + ky: { + name: 'Kyrgyz', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + lb: { + name: 'Letzeburgesch', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ln: { + name: 'Lingala', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + lo: { + name: 'Lao', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + lt: { + name: 'Lithuanian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 10 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + lv: { + name: 'Latvian', + examples: [{ + plural: 2, + sample: 0 + }, { + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2)', + pluralsFunc: function(n) { + return (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2); + } + }, + mai: { + name: 'Maithili', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + mfe: { + name: 'Mauritian Creole', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + mg: { + name: 'Malagasy', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + mi: { + name: 'Maori', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + mk: { + name: 'Macedonian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n === 1 || n % 10 === 1 ? 0 : 1)', + pluralsFunc: function(n) { + return (n === 1 || n % 10 === 1 ? 0 : 1); + } + }, + ml: { + name: 'Malayalam', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + mn: { + name: 'Mongolian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + mni: { + name: 'Manipuri', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + mnk: { + name: 'Mandinka', + examples: [{ + plural: 0, + sample: 0 + }, { + plural: 1, + sample: 1 + }, { + plural: 2, + sample: 2 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n === 0 ? 0 : n === 1 ? 1 : 2)', + pluralsFunc: function(n) { + return (n === 0 ? 0 : n === 1 ? 1 : 2); + } + }, + mr: { + name: 'Marathi', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ms: { + name: 'Malay', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + mt: { + name: 'Maltese', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 11 + }, { + plural: 3, + sample: 20 + }], + nplurals: 4, + pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 0 || ( n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20 ) ? 2 : 3)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : n === 0 || (n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20) ? 2 : 3); + } + }, + my: { + name: 'Burmese', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + nah: { + name: 'Nahuatl', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + nap: { + name: 'Neapolitan', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + nb: { + name: 'Norwegian Bokmal', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ne: { + name: 'Nepali', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + nl: { + name: 'Dutch', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + nn: { + name: 'Norwegian Nynorsk', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + no: { + name: 'Norwegian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + nso: { + name: 'Northern Sotho', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + oc: { + name: 'Occitan', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + or: { + name: 'Oriya', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + pa: { + name: 'Punjabi', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + pap: { + name: 'Papiamento', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + pl: { + name: 'Polish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + pms: { + name: 'Piemontese', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ps: { + name: 'Pashto', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + pt: { + name: 'Portuguese', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + rm: { + name: 'Romansh', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ro: { + name: 'Romanian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 20 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2); + } + }, + ru: { + name: 'Russian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + rw: { + name: 'Kinyarwanda', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + sah: { + name: 'Yakut', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + sat: { + name: 'Santali', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + sco: { + name: 'Scots', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + sd: { + name: 'Sindhi', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + se: { + name: 'Northern Sami', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + si: { + name: 'Sinhala', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + sk: { + name: 'Slovak', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)', + pluralsFunc: function(n) { + return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2); + } + }, + sl: { + name: 'Slovenian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 3 + }, { + plural: 3, + sample: 5 + }], + nplurals: 4, + pluralsText: 'nplurals = 4; plural = (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3)', + pluralsFunc: function(n) { + return (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3); + } + }, + so: { + name: 'Somali', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + son: { + name: 'Songhay', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + sq: { + name: 'Albanian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + sr: { + name: 'Serbian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + su: { + name: 'Sundanese', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + sv: { + name: 'Swedish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + sw: { + name: 'Swahili', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + ta: { + name: 'Tamil', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + te: { + name: 'Telugu', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + tg: { + name: 'Tajik', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + th: { + name: 'Thai', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + ti: { + name: 'Tigrinya', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + tk: { + name: 'Turkmen', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + tr: { + name: 'Turkish', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + tt: { + name: 'Tatar', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + ug: { + name: 'Uyghur', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + uk: { + name: 'Ukrainian', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }, { + plural: 2, + sample: 5 + }], + nplurals: 3, + pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)', + pluralsFunc: function(n) { + return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2); + } + }, + ur: { + name: 'Urdu', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + uz: { + name: 'Uzbek', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + vi: { + name: 'Vietnamese', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + wa: { + name: 'Walloon', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n > 1)', + pluralsFunc: function(n) { + return (n > 1); + } + }, + wo: { + name: 'Wolof', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + }, + yo: { + name: 'Yoruba', + examples: [{ + plural: 0, + sample: 1 + }, { + plural: 1, + sample: 2 + }], + nplurals: 2, + pluralsText: 'nplurals = 2; plural = (n !== 1)', + pluralsFunc: function(n) { + return (n !== 1); + } + }, + zh: { + name: 'Chinese', + examples: [{ + plural: 0, + sample: 1 + }], + nplurals: 1, + pluralsText: 'nplurals = 1; plural = 0', + pluralsFunc: function() { + return 0; + } + } +}; + + +/***/ }), + +/***/ "./node_modules/object-assign/index.js": +/*!*********************************************!*\ + !*** ./node_modules/object-assign/index.js ***! + \*********************************************/ +/***/ ((module) => { + +"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + + +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + + +/***/ }), + +/***/ "./node_modules/tabbable/dist/index.esm.js": +/*!*************************************************!*\ + !*** ./node_modules/tabbable/dist/index.esm.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "focusable": () => (/* binding */ focusable), +/* harmony export */ "isFocusable": () => (/* binding */ isFocusable), +/* harmony export */ "isTabbable": () => (/* binding */ isTabbable), +/* harmony export */ "tabbable": () => (/* binding */ tabbable) +/* harmony export */ }); +/*! +* tabbable 6.0.1 +* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE +*/ +var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details']; +var candidateSelector = /* #__PURE__ */candidateSelectors.join(','); +var NoElement = typeof Element === 'undefined'; +var matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; +var getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) { + return element.getRootNode(); +} : function (element) { + return element.ownerDocument; +}; + +/** + * @param {Element} el container to check in + * @param {boolean} includeContainer add container to check + * @param {(node: Element) => boolean} filter filter candidates + * @returns {Element[]} + */ +var getCandidates = function getCandidates(el, includeContainer, filter) { + var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); + if (includeContainer && matches.call(el, candidateSelector)) { + candidates.unshift(el); + } + candidates = candidates.filter(filter); + return candidates; +}; + +/** + * @callback GetShadowRoot + * @param {Element} element to check for shadow root + * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available. + */ + +/** + * @callback ShadowRootFilter + * @param {Element} shadowHostNode the element which contains shadow content + * @returns {boolean} true if a shadow root could potentially contain valid candidates. + */ + +/** + * @typedef {Object} CandidateScope + * @property {Element} scopeParent contains inner candidates + * @property {Element[]} candidates list of candidates found in the scope parent + */ + +/** + * @typedef {Object} IterativeOptions + * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not; + * if a function, implies shadow support is enabled and either returns the shadow root of an element + * or a boolean stating if it has an undisclosed shadow root + * @property {(node: Element) => boolean} filter filter candidates + * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list + * @property {ShadowRootFilter} shadowRootFilter filter shadow roots; + */ + +/** + * @param {Element[]} elements list of element containers to match candidates from + * @param {boolean} includeContainer add container list to check + * @param {IterativeOptions} options + * @returns {Array.} + */ +var getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) { + var candidates = []; + var elementsToCheck = Array.from(elements); + while (elementsToCheck.length) { + var element = elementsToCheck.shift(); + if (element.tagName === 'SLOT') { + // add shadow dom slot scope (slot itself cannot be focusable) + var assigned = element.assignedElements(); + var content = assigned.length ? assigned : element.children; + var nestedCandidates = getCandidatesIteratively(content, true, options); + if (options.flatten) { + candidates.push.apply(candidates, nestedCandidates); + } else { + candidates.push({ + scopeParent: element, + candidates: nestedCandidates + }); + } + } else { + // check candidate element + var validCandidate = matches.call(element, candidateSelector); + if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) { + candidates.push(element); + } + + // iterate over shadow content if possible + var shadowRoot = element.shadowRoot || + // check for an undisclosed shadow + typeof options.getShadowRoot === 'function' && options.getShadowRoot(element); + var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element); + if (shadowRoot && validShadowRoot) { + // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed + // shadow exists, so look at light dom children as fallback BUT create a scope for any + // child candidates found because they're likely slotted elements (elements that are + // children of the web component element (which has the shadow), in the light dom, but + // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below, + // _after_ we return from this recursive call + var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options); + if (options.flatten) { + candidates.push.apply(candidates, _nestedCandidates); + } else { + candidates.push({ + scopeParent: element, + candidates: _nestedCandidates + }); + } + } else { + // there's not shadow so just dig into the element's (light dom) children + // __without__ giving the element special scope treatment + elementsToCheck.unshift.apply(elementsToCheck, element.children); + } + } + } + return candidates; +}; +var getTabindex = function getTabindex(node, isScope) { + if (node.tabIndex < 0) { + // in Chrome,
,