aboutsummaryrefslogtreecommitdiffstats
path: root/apps/updatenotification
diff options
context:
space:
mode:
Diffstat (limited to 'apps/updatenotification')
-rw-r--r--apps/updatenotification/.l10nignore2
-rw-r--r--apps/updatenotification/Makefile3
-rw-r--r--apps/updatenotification/appinfo/info.xml24
-rw-r--r--apps/updatenotification/appinfo/routes.php30
-rw-r--r--apps/updatenotification/composer/autoload.php15
-rw-r--r--apps/updatenotification/composer/composer.lock18
-rw-r--r--apps/updatenotification/composer/composer/ClassLoader.php174
-rw-r--r--apps/updatenotification/composer/composer/InstalledVersions.php359
-rw-r--r--apps/updatenotification/composer/composer/autoload_classmap.php13
-rw-r--r--apps/updatenotification/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/updatenotification/composer/composer/autoload_psr4.php2
-rw-r--r--apps/updatenotification/composer/composer/autoload_real.php15
-rw-r--r--apps/updatenotification/composer/composer/autoload_static.php11
-rw-r--r--apps/updatenotification/composer/composer/installed.json5
-rw-r--r--apps/updatenotification/composer/composer/installed.php23
-rw-r--r--apps/updatenotification/img/app.svg2
-rw-r--r--apps/updatenotification/img/notification.svg2
-rw-r--r--apps/updatenotification/js/legacy-notification.js21
-rw-r--r--apps/updatenotification/js/updatenotification.js2
-rw-r--r--apps/updatenotification/js/updatenotification.js.map1
-rw-r--r--apps/updatenotification/l10n/af.js25
-rw-r--r--apps/updatenotification/l10n/af.json23
-rw-r--r--apps/updatenotification/l10n/ar.js67
-rw-r--r--apps/updatenotification/l10n/ar.json67
-rw-r--r--apps/updatenotification/l10n/ast.js68
-rw-r--r--apps/updatenotification/l10n/ast.json68
-rw-r--r--apps/updatenotification/l10n/az.js7
-rw-r--r--apps/updatenotification/l10n/az.json5
-rw-r--r--apps/updatenotification/l10n/bg.js40
-rw-r--r--apps/updatenotification/l10n/bg.json40
-rw-r--r--apps/updatenotification/l10n/bg_BG.js12
-rw-r--r--apps/updatenotification/l10n/bg_BG.json10
-rw-r--r--apps/updatenotification/l10n/bn_BD.js6
-rw-r--r--apps/updatenotification/l10n/bn_BD.json4
-rw-r--r--apps/updatenotification/l10n/bs.js7
-rw-r--r--apps/updatenotification/l10n/bs.json5
-rw-r--r--apps/updatenotification/l10n/ca.js85
-rw-r--r--apps/updatenotification/l10n/ca.json85
-rw-r--r--apps/updatenotification/l10n/cs.js66
-rw-r--r--apps/updatenotification/l10n/cs.json66
-rw-r--r--apps/updatenotification/l10n/cs_CZ.js24
-rw-r--r--apps/updatenotification/l10n/cs_CZ.json22
-rw-r--r--apps/updatenotification/l10n/da.js51
-rw-r--r--apps/updatenotification/l10n/da.json51
-rw-r--r--apps/updatenotification/l10n/de.js68
-rw-r--r--apps/updatenotification/l10n/de.json68
-rw-r--r--apps/updatenotification/l10n/de_DE.js70
-rw-r--r--apps/updatenotification/l10n/de_DE.json70
-rw-r--r--apps/updatenotification/l10n/el.js43
-rw-r--r--apps/updatenotification/l10n/el.json43
-rw-r--r--apps/updatenotification/l10n/en_GB.js63
-rw-r--r--apps/updatenotification/l10n/en_GB.json63
-rw-r--r--apps/updatenotification/l10n/eo.js34
-rw-r--r--apps/updatenotification/l10n/eo.json34
-rw-r--r--apps/updatenotification/l10n/es.js68
-rw-r--r--apps/updatenotification/l10n/es.json68
-rw-r--r--apps/updatenotification/l10n/es_419.js27
-rw-r--r--apps/updatenotification/l10n/es_419.json25
-rw-r--r--apps/updatenotification/l10n/es_AR.js45
-rw-r--r--apps/updatenotification/l10n/es_AR.json45
-rw-r--r--apps/updatenotification/l10n/es_CL.js35
-rw-r--r--apps/updatenotification/l10n/es_CL.json33
-rw-r--r--apps/updatenotification/l10n/es_CO.js35
-rw-r--r--apps/updatenotification/l10n/es_CO.json33
-rw-r--r--apps/updatenotification/l10n/es_CR.js35
-rw-r--r--apps/updatenotification/l10n/es_CR.json33
-rw-r--r--apps/updatenotification/l10n/es_DO.js35
-rw-r--r--apps/updatenotification/l10n/es_DO.json33
-rw-r--r--apps/updatenotification/l10n/es_EC.js42
-rw-r--r--apps/updatenotification/l10n/es_EC.json42
-rw-r--r--apps/updatenotification/l10n/es_GT.js35
-rw-r--r--apps/updatenotification/l10n/es_GT.json33
-rw-r--r--apps/updatenotification/l10n/es_HN.js27
-rw-r--r--apps/updatenotification/l10n/es_HN.json25
-rw-r--r--apps/updatenotification/l10n/es_MX.js58
-rw-r--r--apps/updatenotification/l10n/es_MX.json58
-rw-r--r--apps/updatenotification/l10n/es_NI.js27
-rw-r--r--apps/updatenotification/l10n/es_NI.json25
-rw-r--r--apps/updatenotification/l10n/es_PA.js27
-rw-r--r--apps/updatenotification/l10n/es_PA.json25
-rw-r--r--apps/updatenotification/l10n/es_PE.js27
-rw-r--r--apps/updatenotification/l10n/es_PE.json25
-rw-r--r--apps/updatenotification/l10n/es_PR.js27
-rw-r--r--apps/updatenotification/l10n/es_PR.json25
-rw-r--r--apps/updatenotification/l10n/es_PY.js27
-rw-r--r--apps/updatenotification/l10n/es_PY.json25
-rw-r--r--apps/updatenotification/l10n/es_SV.js35
-rw-r--r--apps/updatenotification/l10n/es_SV.json33
-rw-r--r--apps/updatenotification/l10n/es_UY.js27
-rw-r--r--apps/updatenotification/l10n/es_UY.json25
-rw-r--r--apps/updatenotification/l10n/et_EE.js66
-rw-r--r--apps/updatenotification/l10n/et_EE.json66
-rw-r--r--apps/updatenotification/l10n/eu.js61
-rw-r--r--apps/updatenotification/l10n/eu.json61
-rw-r--r--apps/updatenotification/l10n/fa.js46
-rw-r--r--apps/updatenotification/l10n/fa.json46
-rw-r--r--apps/updatenotification/l10n/fi.js50
-rw-r--r--apps/updatenotification/l10n/fi.json50
-rw-r--r--apps/updatenotification/l10n/fi_FI.js17
-rw-r--r--apps/updatenotification/l10n/fi_FI.json15
-rw-r--r--apps/updatenotification/l10n/fr.js65
-rw-r--r--apps/updatenotification/l10n/fr.json65
-rw-r--r--apps/updatenotification/l10n/ga.js61
-rw-r--r--apps/updatenotification/l10n/ga.json59
-rw-r--r--apps/updatenotification/l10n/gl.js68
-rw-r--r--apps/updatenotification/l10n/gl.json68
-rw-r--r--apps/updatenotification/l10n/he.js36
-rw-r--r--apps/updatenotification/l10n/he.json34
-rw-r--r--apps/updatenotification/l10n/hr.js40
-rw-r--r--apps/updatenotification/l10n/hr.json40
-rw-r--r--apps/updatenotification/l10n/hu.js70
-rw-r--r--apps/updatenotification/l10n/hu.json70
-rw-r--r--apps/updatenotification/l10n/hu_HU.js24
-rw-r--r--apps/updatenotification/l10n/hu_HU.json22
-rw-r--r--apps/updatenotification/l10n/ia.js23
-rw-r--r--apps/updatenotification/l10n/ia.json21
-rw-r--r--apps/updatenotification/l10n/id.js23
-rw-r--r--apps/updatenotification/l10n/id.json21
-rw-r--r--apps/updatenotification/l10n/is.js57
-rw-r--r--apps/updatenotification/l10n/is.json57
-rw-r--r--apps/updatenotification/l10n/it.js64
-rw-r--r--apps/updatenotification/l10n/it.json64
-rw-r--r--apps/updatenotification/l10n/ja.js61
-rw-r--r--apps/updatenotification/l10n/ja.json61
-rw-r--r--apps/updatenotification/l10n/ka.js48
-rw-r--r--apps/updatenotification/l10n/ka.json46
-rw-r--r--apps/updatenotification/l10n/ka_GE.js29
-rw-r--r--apps/updatenotification/l10n/ka_GE.json27
-rw-r--r--apps/updatenotification/l10n/ko.js48
-rw-r--r--apps/updatenotification/l10n/ko.json48
-rw-r--r--apps/updatenotification/l10n/lb.js15
-rw-r--r--apps/updatenotification/l10n/lb.json13
-rw-r--r--apps/updatenotification/l10n/lt_LT.js35
-rw-r--r--apps/updatenotification/l10n/lt_LT.json35
-rw-r--r--apps/updatenotification/l10n/lv.js25
-rw-r--r--apps/updatenotification/l10n/lv.json23
-rw-r--r--apps/updatenotification/l10n/mk.js61
-rw-r--r--apps/updatenotification/l10n/mk.json61
-rw-r--r--apps/updatenotification/l10n/nb.js61
-rw-r--r--apps/updatenotification/l10n/nb.json61
-rw-r--r--apps/updatenotification/l10n/nb_NO.js22
-rw-r--r--apps/updatenotification/l10n/nb_NO.json20
-rw-r--r--apps/updatenotification/l10n/nl.js41
-rw-r--r--apps/updatenotification/l10n/nl.json41
-rw-r--r--apps/updatenotification/l10n/oc.js9
-rw-r--r--apps/updatenotification/l10n/oc.json7
-rw-r--r--apps/updatenotification/l10n/pl.js62
-rw-r--r--apps/updatenotification/l10n/pl.json62
-rw-r--r--apps/updatenotification/l10n/pt_BR.js66
-rw-r--r--apps/updatenotification/l10n/pt_BR.json66
-rw-r--r--apps/updatenotification/l10n/pt_PT.js17
-rw-r--r--apps/updatenotification/l10n/pt_PT.json15
-rw-r--r--apps/updatenotification/l10n/ro.js14
-rw-r--r--apps/updatenotification/l10n/ro.json12
-rw-r--r--apps/updatenotification/l10n/ru.js68
-rw-r--r--apps/updatenotification/l10n/ru.json68
-rw-r--r--apps/updatenotification/l10n/sc.js43
-rw-r--r--apps/updatenotification/l10n/sc.json41
-rw-r--r--apps/updatenotification/l10n/sk.js63
-rw-r--r--apps/updatenotification/l10n/sk.json63
-rw-r--r--apps/updatenotification/l10n/sk_SK.js24
-rw-r--r--apps/updatenotification/l10n/sk_SK.json22
-rw-r--r--apps/updatenotification/l10n/sl.js50
-rw-r--r--apps/updatenotification/l10n/sl.json50
-rw-r--r--apps/updatenotification/l10n/sq.js26
-rw-r--r--apps/updatenotification/l10n/sq.json24
-rw-r--r--apps/updatenotification/l10n/sr.js61
-rw-r--r--apps/updatenotification/l10n/sr.json61
-rw-r--r--apps/updatenotification/l10n/sv.js61
-rw-r--r--apps/updatenotification/l10n/sv.json61
-rw-r--r--apps/updatenotification/l10n/sw.js61
-rw-r--r--apps/updatenotification/l10n/sw.json59
-rw-r--r--apps/updatenotification/l10n/th_TH.js14
-rw-r--r--apps/updatenotification/l10n/th_TH.json12
-rw-r--r--apps/updatenotification/l10n/tr.js64
-rw-r--r--apps/updatenotification/l10n/tr.json64
-rw-r--r--apps/updatenotification/l10n/ug.js60
-rw-r--r--apps/updatenotification/l10n/ug.json58
-rw-r--r--apps/updatenotification/l10n/uk.js59
-rw-r--r--apps/updatenotification/l10n/uk.json59
-rw-r--r--apps/updatenotification/l10n/vi.js20
-rw-r--r--apps/updatenotification/l10n/vi.json18
-rw-r--r--apps/updatenotification/l10n/zh_CN.js66
-rw-r--r--apps/updatenotification/l10n/zh_CN.json66
-rw-r--r--apps/updatenotification/l10n/zh_HK.js78
-rw-r--r--apps/updatenotification/l10n/zh_HK.json78
-rw-r--r--apps/updatenotification/l10n/zh_TW.js80
-rw-r--r--apps/updatenotification/l10n/zh_TW.json80
-rw-r--r--apps/updatenotification/lib/AppInfo/Application.php75
-rw-r--r--apps/updatenotification/lib/BackgroundJob/AppUpdatedNotifications.php109
-rw-r--r--apps/updatenotification/lib/BackgroundJob/ResetToken.php49
-rw-r--r--apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php244
-rw-r--r--apps/updatenotification/lib/Command/Check.php57
-rw-r--r--apps/updatenotification/lib/Controller/APIController.php162
-rw-r--r--apps/updatenotification/lib/Controller/AdminController.php83
-rw-r--r--apps/updatenotification/lib/Controller/ChangelogController.php62
-rw-r--r--apps/updatenotification/lib/Listener/AppUpdateEventListener.php61
-rw-r--r--apps/updatenotification/lib/Listener/BeforeTemplateRenderedEventListener.php54
-rw-r--r--apps/updatenotification/lib/Manager.php114
-rw-r--r--apps/updatenotification/lib/Notification/AppUpdateNotifier.php104
-rw-r--r--apps/updatenotification/lib/Notification/BackgroundJob.php278
-rw-r--r--apps/updatenotification/lib/Notification/Notifier.php154
-rw-r--r--apps/updatenotification/lib/ResetTokenBackgroundJob.php67
-rw-r--r--apps/updatenotification/lib/ResponseDefinitions.php19
-rw-r--r--apps/updatenotification/lib/Settings/Admin.php113
-rw-r--r--apps/updatenotification/lib/UpdateChecker.php58
-rw-r--r--apps/updatenotification/openapi.json378
-rw-r--r--apps/updatenotification/openapi.json.license2
-rw-r--r--apps/updatenotification/src/components/AppChangelogDialog.vue100
-rw-r--r--apps/updatenotification/src/components/Markdown.vue60
-rw-r--r--apps/updatenotification/src/components/UpdateNotification.vue506
-rw-r--r--apps/updatenotification/src/composables/useMarkdown.ts66
-rw-r--r--apps/updatenotification/src/init.js39
-rw-r--r--apps/updatenotification/src/init.ts82
-rw-r--r--apps/updatenotification/src/update-notification-legacy.ts24
-rw-r--r--apps/updatenotification/src/updatenotification.js25
-rw-r--r--apps/updatenotification/src/view-changelog-page.ts12
-rw-r--r--apps/updatenotification/src/views/App.vue43
-rw-r--r--apps/updatenotification/templates/admin.php14
-rw-r--r--apps/updatenotification/templates/empty.php8
-rw-r--r--apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php93
-rw-r--r--apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php (renamed from apps/updatenotification/tests/Notification/BackgroundJobTest.php)259
-rw-r--r--apps/updatenotification/tests/Controller/APIControllerTest.php160
-rw-r--r--apps/updatenotification/tests/Controller/AdminControllerTest.php61
-rw-r--r--apps/updatenotification/tests/Notification/NotifierTest.php82
-rw-r--r--apps/updatenotification/tests/ResetTokenBackgroundJobTest.php87
-rw-r--r--apps/updatenotification/tests/Settings/AdminTest.php274
-rw-r--r--apps/updatenotification/tests/UpdateCheckerTest.php76
-rw-r--r--apps/updatenotification/webpack.js11
229 files changed, 7081 insertions, 5202 deletions
diff --git a/apps/updatenotification/.l10nignore b/apps/updatenotification/.l10nignore
index 7439adf0658..716eb07a112 100644
--- a/apps/updatenotification/.l10nignore
+++ b/apps/updatenotification/.l10nignore
@@ -1,2 +1,4 @@
+# SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+# SPDX-License-Identifier: AGPL-3.0-or-later
# compiled vue templates
js/updatenotification.js
diff --git a/apps/updatenotification/Makefile b/apps/updatenotification/Makefile
index ca810f6aa5a..b64cd1a6290 100644
--- a/apps/updatenotification/Makefile
+++ b/apps/updatenotification/Makefile
@@ -1,3 +1,5 @@
+# SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+# SPDX-License-Identifier: AGPL-3.0-or-later
app_name=updatenotification
project_dir=$(CURDIR)/../$(app_name)
@@ -47,7 +49,6 @@ package: clean build-js-production
--exclude=/SECURITY.md \
--exclude=/.gitignore \
--exclude=/.scrutinizer.yml \
- --exclude=/.travis.yml \
--exclude=/.drone.yml \
--exclude=/node_modules \
--exclude=/npm-debug.log \
diff --git a/apps/updatenotification/appinfo/info.xml b/apps/updatenotification/appinfo/info.xml
index 680fd811538..7b219d75623 100644
--- a/apps/updatenotification/appinfo/info.xml
+++ b/apps/updatenotification/appinfo/info.xml
@@ -1,30 +1,34 @@
<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ - SPDX-License-Identifier: AGPL-3.0-only
+ -->
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>updatenotification</id>
<name>Update notification</name>
- <summary>Displays update notifications for Nextcloud and provides the SSO for the updater.</summary>
- <description>Displays update notifications for Nextcloud and provides the SSO for the updater.</description>
- <version>1.11.0</version>
+ <summary>Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater.</summary>
+ <description>Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater.</description>
+ <version>1.22.0</version>
<licence>agpl</licence>
<author>Lukas Reschke</author>
<namespace>UpdateNotification</namespace>
- <default_enable/>
<category>monitoring</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
- <nextcloud min-version="22" max-version="22"/>
+ <nextcloud min-version="32" max-version="32"/>
</dependencies>
<background-jobs>
- <job>OCA\UpdateNotification\Notification\BackgroundJob</job>
+ <job>OCA\UpdateNotification\BackgroundJob\UpdateAvailableNotifications</job>
</background-jobs>
- <settings>
- <admin>OCA\UpdateNotification\Settings\Admin</admin>
- </settings>
-
<commands>
<command>OCA\UpdateNotification\Command\Check</command>
</commands>
+
+ <settings>
+ <admin>OCA\UpdateNotification\Settings\Admin</admin>
+ </settings>
</info>
diff --git a/apps/updatenotification/appinfo/routes.php b/apps/updatenotification/appinfo/routes.php
index 10835164c7b..92d198aae5b 100644
--- a/apps/updatenotification/appinfo/routes.php
+++ b/apps/updatenotification/appinfo/routes.php
@@ -1,32 +1,20 @@
<?php
+
+declare(strict_types=1);
+
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
return [
'routes' => [
['name' => 'Admin#createCredentials', 'url' => '/credentials', 'verb' => 'GET'],
['name' => 'Admin#setChannel', 'url' => '/channel', 'verb' => 'POST'],
+ // Fallback app changelog information for mobile clients
+ ['name' => 'Changelog#showChangelog', 'url' => '/changelog/{app}', 'verb' => 'GET'],
],
'ocs' => [
- ['name' => 'API#getAppList', 'url' => '/api/{apiVersion}/applist/{newVersion}', 'verb' => 'GET', 'requirements' => ['apiVersion' => 'v1']],
+ ['name' => 'API#getAppList', 'url' => '/api/{apiVersion}/applist/{newVersion}', 'verb' => 'GET', 'requirements' => ['apiVersion' => '(v1)']],
+ ['name' => 'API#getAppChangelogEntry', 'url' => '/api/{apiVersion}/changelog/{appId}', 'verb' => 'GET', 'requirements' => ['apiVersion' => '(v1)']],
],
];
diff --git a/apps/updatenotification/composer/autoload.php b/apps/updatenotification/composer/autoload.php
index 47cc4d587a5..a1e9eceb11c 100644
--- a/apps/updatenotification/composer/autoload.php
+++ b/apps/updatenotification/composer/autoload.php
@@ -2,6 +2,21 @@
// autoload.php @generated by Composer
+if (PHP_VERSION_ID < 50600) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, $err);
+ } elseif (!headers_sent()) {
+ echo $err;
+ }
+ }
+ throw new RuntimeException($err);
+}
+
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitUpdateNotification::getLoader();
diff --git a/apps/updatenotification/composer/composer.lock b/apps/updatenotification/composer/composer.lock
new file mode 100644
index 00000000000..fd0bcbcb753
--- /dev/null
+++ b/apps/updatenotification/composer/composer.lock
@@ -0,0 +1,18 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "d751713988987e9331980363e24189ce",
+ "packages": [],
+ "packages-dev": [],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": [],
+ "platform-dev": [],
+ "plugin-api-version": "2.1.0"
+}
diff --git a/apps/updatenotification/composer/composer/ClassLoader.php b/apps/updatenotification/composer/composer/ClassLoader.php
index 4d989a212c9..7824d8f7eaf 100644
--- a/apps/updatenotification/composer/composer/ClassLoader.php
+++ b/apps/updatenotification/composer/composer/ClassLoader.php
@@ -42,30 +42,76 @@ namespace Composer\Autoload;
*/
class ClassLoader
{
+ /** @var \Closure(string):void */
+ private static $includeFile;
+
+ /** @var string|null */
private $vendorDir;
// PSR-4
+ /**
+ * @var array<string, array<string, int>>
+ */
private $prefixLengthsPsr4 = array();
+ /**
+ * @var array<string, list<string>>
+ */
private $prefixDirsPsr4 = array();
+ /**
+ * @var list<string>
+ */
private $fallbackDirsPsr4 = array();
// PSR-0
+ /**
+ * List of PSR-0 prefixes
+ *
+ * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
+ *
+ * @var array<string, array<string, list<string>>>
+ */
private $prefixesPsr0 = array();
+ /**
+ * @var list<string>
+ */
private $fallbackDirsPsr0 = array();
+ /** @var bool */
private $useIncludePath = false;
+
+ /**
+ * @var array<string, string>
+ */
private $classMap = array();
+
+ /** @var bool */
private $classMapAuthoritative = false;
+
+ /**
+ * @var array<string, bool>
+ */
private $missingClasses = array();
+
+ /** @var string|null */
private $apcuPrefix;
+ /**
+ * @var array<string, self>
+ */
private static $registeredLoaders = array();
+ /**
+ * @param string|null $vendorDir
+ */
public function __construct($vendorDir = null)
{
$this->vendorDir = $vendorDir;
+ self::initializeIncludeClosure();
}
+ /**
+ * @return array<string, list<string>>
+ */
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
@@ -75,28 +121,42 @@ class ClassLoader
return array();
}
+ /**
+ * @return array<string, list<string>>
+ */
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
+ /**
+ * @return list<string>
+ */
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
+ /**
+ * @return list<string>
+ */
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
+ /**
+ * @return array<string, string> Array of classname => path
+ */
public function getClassMap()
{
return $this->classMap;
}
/**
- * @param array $classMap Class to filename map
+ * @param array<string, string> $classMap Class to filename map
+ *
+ * @return void
*/
public function addClassMap(array $classMap)
{
@@ -111,22 +171,25 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix
+ * @param list<string>|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
*/
public function add($prefix, $paths, $prepend = false)
{
+ $paths = (array) $paths;
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
- (array) $paths,
+ $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
- (array) $paths
+ $paths
);
}
@@ -135,19 +198,19 @@ class ClassLoader
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+ $this->prefixesPsr0[$first][$prefix] = $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
- (array) $paths,
+ $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
- (array) $paths
+ $paths
);
}
}
@@ -156,25 +219,28 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list<string>|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
+ $paths = (array) $paths;
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
- (array) $paths,
+ $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
- (array) $paths
+ $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
@@ -184,18 +250,18 @@ class ClassLoader
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ $this->prefixDirsPsr4[$prefix] = $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
- (array) $paths,
+ $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
- (array) $paths
+ $paths
);
}
}
@@ -204,8 +270,10 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 base directories
+ * @param string $prefix The prefix
+ * @param list<string>|string $paths The PSR-0 base directories
+ *
+ * @return void
*/
public function set($prefix, $paths)
{
@@ -220,10 +288,12 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param list<string>|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function setPsr4($prefix, $paths)
{
@@ -243,6 +313,8 @@ class ClassLoader
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
+ *
+ * @return void
*/
public function setUseIncludePath($useIncludePath)
{
@@ -265,6 +337,8 @@ class ClassLoader
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
+ *
+ * @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
@@ -285,6 +359,8 @@ class ClassLoader
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
+ *
+ * @return void
*/
public function setApcuPrefix($apcuPrefix)
{
@@ -305,14 +381,18 @@ class ClassLoader
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
+ *
+ * @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
if (null === $this->vendorDir) {
- //no-op
- } elseif ($prepend) {
+ return;
+ }
+
+ if ($prepend) {
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
} else {
unset(self::$registeredLoaders[$this->vendorDir]);
@@ -322,6 +402,8 @@ class ClassLoader
/**
* Unregisters this instance as an autoloader.
+ *
+ * @return void
*/
public function unregister()
{
@@ -336,15 +418,18 @@ class ClassLoader
* Loads the given class or interface.
*
* @param string $class The name of the class
- * @return bool|null True if loaded, null otherwise
+ * @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
- includeFile($file);
+ $includeFile = self::$includeFile;
+ $includeFile($file);
return true;
}
+
+ return null;
}
/**
@@ -390,15 +475,20 @@ class ClassLoader
}
/**
- * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ * Returns the currently registered loaders keyed by their corresponding vendor directories.
*
- * @return self[]
+ * @return array<string, self>
*/
public static function getRegisteredLoaders()
{
return self::$registeredLoaders;
}
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
@@ -464,14 +554,26 @@ class ClassLoader
return false;
}
-}
-/**
- * Scope isolated include.
- *
- * Prevents access to $this/self from included files.
- */
-function includeFile($file)
-{
- include $file;
+ /**
+ * @return void
+ */
+ private static function initializeIncludeClosure()
+ {
+ if (self::$includeFile !== null) {
+ return;
+ }
+
+ /**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ */
+ self::$includeFile = \Closure::bind(static function($file) {
+ include $file;
+ }, null, null);
+ }
}
diff --git a/apps/updatenotification/composer/composer/InstalledVersions.php b/apps/updatenotification/composer/composer/InstalledVersions.php
new file mode 100644
index 00000000000..51e734a774b
--- /dev/null
+++ b/apps/updatenotification/composer/composer/InstalledVersions.php
@@ -0,0 +1,359 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ * Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer;
+
+use Composer\Autoload\ClassLoader;
+use Composer\Semver\VersionParser;
+
+/**
+ * This class is copied in every Composer installed project and available to all
+ *
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
+ *
+ * To require its presence, you can require `composer-runtime-api ^2.0`
+ *
+ * @final
+ */
+class InstalledVersions
+{
+ /**
+ * @var mixed[]|null
+ * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
+ */
+ private static $installed;
+
+ /**
+ * @var bool|null
+ */
+ private static $canGetVendors;
+
+ /**
+ * @var array[]
+ * @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
+ */
+ private static $installedByVendor = array();
+
+ /**
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
+ *
+ * @return string[]
+ * @psalm-return list<string>
+ */
+ public static function getInstalledPackages()
+ {
+ $packages = array();
+ foreach (self::getInstalled() as $installed) {
+ $packages[] = array_keys($installed['versions']);
+ }
+
+ if (1 === \count($packages)) {
+ return $packages[0];
+ }
+
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+ }
+
+ /**
+ * Returns a list of all package names with a specific type e.g. 'library'
+ *
+ * @param string $type
+ * @return string[]
+ * @psalm-return list<string>
+ */
+ public static function getInstalledPackagesByType($type)
+ {
+ $packagesByType = array();
+
+ foreach (self::getInstalled() as $installed) {
+ foreach ($installed['versions'] as $name => $package) {
+ if (isset($package['type']) && $package['type'] === $type) {
+ $packagesByType[] = $name;
+ }
+ }
+ }
+
+ return $packagesByType;
+ }
+
+ /**
+ * Checks whether the given package is installed
+ *
+ * This also returns true if the package name is provided or replaced by another package
+ *
+ * @param string $packageName
+ * @param bool $includeDevRequirements
+ * @return bool
+ */
+ public static function isInstalled($packageName, $includeDevRequirements = true)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (isset($installed['versions'][$packageName])) {
+ return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package satisfies a version constraint
+ *
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
+ *
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
+ *
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
+ * @param string $packageName
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
+ * @return bool
+ */
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
+ {
+ $constraint = $parser->parseConstraints((string) $constraint);
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+ return $provided->matches($constraint);
+ }
+
+ /**
+ * Returns a version constraint representing all the range(s) which are installed for a given package
+ *
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
+ * whether a given version of a package is installed, and not just whether it exists
+ *
+ * @param string $packageName
+ * @return string Version constraint usable with composer/semver
+ */
+ public static function getVersionRanges($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ $ranges = array();
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
+ }
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+ }
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+ }
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+ }
+
+ return implode(' || ', $ranges);
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getPrettyVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['pretty_version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
+ */
+ public static function getReference($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['reference'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['reference'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
+ */
+ public static function getInstallPath($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @return array
+ * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
+ */
+ public static function getRootPackage()
+ {
+ $installed = self::getInstalled();
+
+ return $installed[0]['root'];
+ }
+
+ /**
+ * Returns the raw installed.php data for custom implementations
+ *
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
+ * @return array[]
+ * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
+ */
+ public static function getRawData()
+ {
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = include __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ return self::$installed;
+ }
+
+ /**
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
+ *
+ * @return array[]
+ * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
+ */
+ public static function getAllRawData()
+ {
+ return self::getInstalled();
+ }
+
+ /**
+ * Lets you reload the static array from another file
+ *
+ * This is only useful for complex integrations in which a project needs to use
+ * this class but then also needs to execute another project's autoloader in process,
+ * and wants to ensure both projects have access to their version of installed.php.
+ *
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
+ * the data it needs from this class, then call reload() with
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
+ * the project in which it runs can then also use this class safely, without
+ * interference between PHPUnit's dependencies and the project's dependencies.
+ *
+ * @param array[] $data A vendor/composer/installed.php data set
+ * @return void
+ *
+ * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
+ */
+ private static function getInstalled()
+ {
+ if (null === self::$canGetVendors) {
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+ }
+
+ $installed = array();
+
+ if (self::$canGetVendors) {
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+ if (isset(self::$installedByVendor[$vendorDir])) {
+ $installed[] = self::$installedByVendor[$vendorDir];
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
+ $required = require $vendorDir.'/composer/installed.php';
+ $installed[] = self::$installedByVendor[$vendorDir] = $required;
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+ self::$installed = $installed[count($installed) - 1];
+ }
+ }
+ }
+ }
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
+ $required = require __DIR__ . '/installed.php';
+ self::$installed = $required;
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ if (self::$installed !== array()) {
+ $installed[] = self::$installed;
+ }
+
+ return $installed;
+ }
+}
diff --git a/apps/updatenotification/composer/composer/autoload_classmap.php b/apps/updatenotification/composer/composer/autoload_classmap.php
index af7ec72d8e1..a03003ef3b2 100644
--- a/apps/updatenotification/composer/composer/autoload_classmap.php
+++ b/apps/updatenotification/composer/composer/autoload_classmap.php
@@ -2,18 +2,25 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
'OCA\\UpdateNotification\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
+ 'OCA\\UpdateNotification\\BackgroundJob\\AppUpdatedNotifications' => $baseDir . '/../lib/BackgroundJob/AppUpdatedNotifications.php',
+ 'OCA\\UpdateNotification\\BackgroundJob\\ResetToken' => $baseDir . '/../lib/BackgroundJob/ResetToken.php',
+ 'OCA\\UpdateNotification\\BackgroundJob\\UpdateAvailableNotifications' => $baseDir . '/../lib/BackgroundJob/UpdateAvailableNotifications.php',
'OCA\\UpdateNotification\\Command\\Check' => $baseDir . '/../lib/Command/Check.php',
'OCA\\UpdateNotification\\Controller\\APIController' => $baseDir . '/../lib/Controller/APIController.php',
'OCA\\UpdateNotification\\Controller\\AdminController' => $baseDir . '/../lib/Controller/AdminController.php',
- 'OCA\\UpdateNotification\\Notification\\BackgroundJob' => $baseDir . '/../lib/Notification/BackgroundJob.php',
+ 'OCA\\UpdateNotification\\Controller\\ChangelogController' => $baseDir . '/../lib/Controller/ChangelogController.php',
+ 'OCA\\UpdateNotification\\Listener\\AppUpdateEventListener' => $baseDir . '/../lib/Listener/AppUpdateEventListener.php',
+ 'OCA\\UpdateNotification\\Listener\\BeforeTemplateRenderedEventListener' => $baseDir . '/../lib/Listener/BeforeTemplateRenderedEventListener.php',
+ 'OCA\\UpdateNotification\\Manager' => $baseDir . '/../lib/Manager.php',
+ 'OCA\\UpdateNotification\\Notification\\AppUpdateNotifier' => $baseDir . '/../lib/Notification/AppUpdateNotifier.php',
'OCA\\UpdateNotification\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php',
- 'OCA\\UpdateNotification\\ResetTokenBackgroundJob' => $baseDir . '/../lib/ResetTokenBackgroundJob.php',
+ 'OCA\\UpdateNotification\\ResponseDefinitions' => $baseDir . '/../lib/ResponseDefinitions.php',
'OCA\\UpdateNotification\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php',
'OCA\\UpdateNotification\\UpdateChecker' => $baseDir . '/../lib/UpdateChecker.php',
);
diff --git a/apps/updatenotification/composer/composer/autoload_namespaces.php b/apps/updatenotification/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/updatenotification/composer/composer/autoload_namespaces.php
+++ b/apps/updatenotification/composer/composer/autoload_namespaces.php
@@ -2,7 +2,7 @@
// autoload_namespaces.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/updatenotification/composer/composer/autoload_psr4.php b/apps/updatenotification/composer/composer/autoload_psr4.php
index 361c205335a..c4e1b615fcc 100644
--- a/apps/updatenotification/composer/composer/autoload_psr4.php
+++ b/apps/updatenotification/composer/composer/autoload_psr4.php
@@ -2,7 +2,7 @@
// autoload_psr4.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/updatenotification/composer/composer/autoload_real.php b/apps/updatenotification/composer/composer/autoload_real.php
index 92169a76d4c..b7569aff2d1 100644
--- a/apps/updatenotification/composer/composer/autoload_real.php
+++ b/apps/updatenotification/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitUpdateNotification
}
spl_autoload_register(array('ComposerAutoloaderInitUpdateNotification', 'loadClassLoader'), true, true);
- self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInitUpdateNotification', 'loadClassLoader'));
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
- if ($useStaticLoader) {
- require __DIR__ . '/autoload_static.php';
-
- call_user_func(\Composer\Autoload\ComposerStaticInitUpdateNotification::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ call_user_func(\Composer\Autoload\ComposerStaticInitUpdateNotification::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/updatenotification/composer/composer/autoload_static.php b/apps/updatenotification/composer/composer/autoload_static.php
index 98d550b5f9b..57eedf5e075 100644
--- a/apps/updatenotification/composer/composer/autoload_static.php
+++ b/apps/updatenotification/composer/composer/autoload_static.php
@@ -23,12 +23,19 @@ class ComposerStaticInitUpdateNotification
public static $classMap = array (
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
'OCA\\UpdateNotification\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
+ 'OCA\\UpdateNotification\\BackgroundJob\\AppUpdatedNotifications' => __DIR__ . '/..' . '/../lib/BackgroundJob/AppUpdatedNotifications.php',
+ 'OCA\\UpdateNotification\\BackgroundJob\\ResetToken' => __DIR__ . '/..' . '/../lib/BackgroundJob/ResetToken.php',
+ 'OCA\\UpdateNotification\\BackgroundJob\\UpdateAvailableNotifications' => __DIR__ . '/..' . '/../lib/BackgroundJob/UpdateAvailableNotifications.php',
'OCA\\UpdateNotification\\Command\\Check' => __DIR__ . '/..' . '/../lib/Command/Check.php',
'OCA\\UpdateNotification\\Controller\\APIController' => __DIR__ . '/..' . '/../lib/Controller/APIController.php',
'OCA\\UpdateNotification\\Controller\\AdminController' => __DIR__ . '/..' . '/../lib/Controller/AdminController.php',
- 'OCA\\UpdateNotification\\Notification\\BackgroundJob' => __DIR__ . '/..' . '/../lib/Notification/BackgroundJob.php',
+ 'OCA\\UpdateNotification\\Controller\\ChangelogController' => __DIR__ . '/..' . '/../lib/Controller/ChangelogController.php',
+ 'OCA\\UpdateNotification\\Listener\\AppUpdateEventListener' => __DIR__ . '/..' . '/../lib/Listener/AppUpdateEventListener.php',
+ 'OCA\\UpdateNotification\\Listener\\BeforeTemplateRenderedEventListener' => __DIR__ . '/..' . '/../lib/Listener/BeforeTemplateRenderedEventListener.php',
+ 'OCA\\UpdateNotification\\Manager' => __DIR__ . '/..' . '/../lib/Manager.php',
+ 'OCA\\UpdateNotification\\Notification\\AppUpdateNotifier' => __DIR__ . '/..' . '/../lib/Notification/AppUpdateNotifier.php',
'OCA\\UpdateNotification\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php',
- 'OCA\\UpdateNotification\\ResetTokenBackgroundJob' => __DIR__ . '/..' . '/../lib/ResetTokenBackgroundJob.php',
+ 'OCA\\UpdateNotification\\ResponseDefinitions' => __DIR__ . '/..' . '/../lib/ResponseDefinitions.php',
'OCA\\UpdateNotification\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php',
'OCA\\UpdateNotification\\UpdateChecker' => __DIR__ . '/..' . '/../lib/UpdateChecker.php',
);
diff --git a/apps/updatenotification/composer/composer/installed.json b/apps/updatenotification/composer/composer/installed.json
new file mode 100644
index 00000000000..f20a6c47c6d
--- /dev/null
+++ b/apps/updatenotification/composer/composer/installed.json
@@ -0,0 +1,5 @@
+{
+ "packages": [],
+ "dev": false,
+ "dev-package-names": []
+}
diff --git a/apps/updatenotification/composer/composer/installed.php b/apps/updatenotification/composer/composer/installed.php
new file mode 100644
index 00000000000..1a66c7f2416
--- /dev/null
+++ b/apps/updatenotification/composer/composer/installed.php
@@ -0,0 +1,23 @@
+<?php return array(
+ 'root' => array(
+ 'name' => '__root__',
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'reference' => 'b1797842784b250fb01ed5e3bf130705eb94751b',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../',
+ 'aliases' => array(),
+ 'dev' => false,
+ ),
+ 'versions' => array(
+ '__root__' => array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'reference' => 'b1797842784b250fb01ed5e3bf130705eb94751b',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ ),
+);
diff --git a/apps/updatenotification/img/app.svg b/apps/updatenotification/img/app.svg
index c77f21c60b9..4b9d90f27f1 100644
--- a/apps/updatenotification/img/app.svg
+++ b/apps/updatenotification/img/app.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 16 16"><path d="M8 2a1 1 0 0 0-1 1c0 .047.02.087.027.133A3.992 3.992 0 0 0 4 7v2l-1 1v1h10v-1l-1-1V7c0-1.872-1.29-3.43-3.027-3.867C8.98 3.087 9 3.047 9 3a1 1 0 0 0-1-1zM6 12a2 2 0 0 0 4 0z" fill="#fff"/></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px" fill="#fff"><path d="M192-216v-72h48v-240q0-87 53.5-153T432-763v-53q0-20 14-34t34-14q20 0 34 14t14 34v53q85 16 138.5 82T720-528v240h48v72H192ZM479.79-96Q450-96 429-117.15T408-168h144q0 30-21.21 51t-51 21Z"/></svg> \ No newline at end of file
diff --git a/apps/updatenotification/img/notification.svg b/apps/updatenotification/img/notification.svg
index 7a3f6270cbd..5f7319bf442 100644
--- a/apps/updatenotification/img/notification.svg
+++ b/apps/updatenotification/img/notification.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewbox="0 0 16 16"><path d="M6.938 0A.43.43 0 0 0 6.5.438v1.25a5.818 5.818 0 0 0-1.53.656l-.907-.906a.436.436 0 0 0-.625 0l-1.5 1.5a.436.436 0 0 0 0 .624l.906.907c-.285.48-.514.976-.656 1.53H.938a.43.43 0 0 0-.438.438v2.125C.5 8.81.69 9 .938 9h1.25a5.82 5.82 0 0 0 .656 1.53l-.907.908a.436.436 0 0 0 0 .625l1.5 1.5c.176.176.45.176.625 0l.907-.907c.48.285.976.514 1.53.656v1.25c0 .25.19.438.437.438h2.125a.43.43 0 0 0 .438-.438v-1.25a5.82 5.82 0 0 0 1.53-.657l.907.907c.176.175.45.175.625 0l1.5-1.5a.436.436 0 0 0 0-.625l-.906-.906A5.79 5.79 0 0 0 13.812 9h1.25a.43.43 0 0 0 .438-.438V6.437A.43.43 0 0 0 15.062 6h-1.25a5.79 5.79 0 0 0-.656-1.532l.906-.906a.436.436 0 0 0 0-.625l-1.5-1.5a.436.436 0 0 0-.625 0l-.906.906a5.816 5.816 0 0 0-1.53-.656V.437A.43.43 0 0 0 9.063 0zM8 4.157a3.344 3.344 0 0 1 0 6.686 3.344 3.344 0 0 1 0-6.686z" display="block"/></svg>
+<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px"><path d="M192-216v-72h48v-240q0-87 53.5-153T432-763v-53q0-20 14-34t34-14q20 0 34 14t14 34v53q85 16 138.5 82T720-528v240h48v72H192ZM479.79-96Q450-96 429-117.15T408-168h144q0 30-21.21 51t-51 21Z"/></svg> \ No newline at end of file
diff --git a/apps/updatenotification/js/legacy-notification.js b/apps/updatenotification/js/legacy-notification.js
deleted file mode 100644
index 7480505d8be..00000000000
--- a/apps/updatenotification/js/legacy-notification.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * Copyright (c) 2015 ownCloud Inc
- *
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-/**
- * This only gets loaded if an update is available and the notifications app is not enabled for the user.
- */
-window.addEventListener('DOMContentLoaded', function(){
- var text = t('core', '{version} is available. Get more information on how to update.', {version: oc_updateState.updateVersion}),
- element = $('<a>').attr('href', oc_updateState.updateLink).attr('target','_blank').text(text);
-
- OC.Notification.showHtml(element.prop('outerHTML'), { type: 'error' });
-});
diff --git a/apps/updatenotification/js/updatenotification.js b/apps/updatenotification/js/updatenotification.js
deleted file mode 100644
index 98c321cac3a..00000000000
--- a/apps/updatenotification/js/updatenotification.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/js/",n(n.s=309)}([function(t,e,n){var r=n(1),o=n(20).f,i=n(14),s=n(9),a=n(75),c=n(117),l=n(37);t.exports=function(t,e){var n,u,m,p,d,f=t.target,g=t.global,A=t.stat;if(n=g?r:A?r[f]||a(f,{}):(r[f]||{}).prototype)for(u in e){if(p=e[u],m=t.noTargetGet?(d=o(n,u))&&d.value:n[u],!l(g?u:f+(A?".":"#")+u,t.forced)&&void 0!==m){if(typeof p==typeof m)continue;c(p,m)}(t.sham||m&&m.sham)&&i(p,"sham",!0),s(n,u,p,t)}}},function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(this,n(17))},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(1),o=n(78),i=n(7),s=n(48),a=n(84),c=n(123),l=o("wks"),u=r.Symbol,m=c?u:u&&u.withoutSetter||s;t.exports=function(t){return i(l,t)||(a&&i(u,t)?l[t]=u[t]:l[t]=m("Symbol."+t)),l[t]}},function(t,e,n){var r=n(6);t.exports=function(t){if(!r(t))throw TypeError(String(t)+" is not an object");return t}},function(t,e,n){var r=n(2);t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(5),o=n(116),i=n(4),s=n(33),a=Object.defineProperty;e.f=r?a:function(t,e,n){if(i(t),e=s(e,!0),i(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(1),o=n(14),i=n(7),s=n(75),a=n(76),c=n(19),l=c.get,u=c.enforce,m=String(String).split("String");(t.exports=function(t,e,n,a){var c,l=!!a&&!!a.unsafe,p=!!a&&!!a.enumerable,d=!!a&&!!a.noTargetGet;"function"==typeof n&&("string"!=typeof e||i(n,"name")||o(n,"name",e),(c=u(n)).source||(c.source=m.join("string"==typeof e?e:""))),t!==r?(l?!d&&t[e]&&(p=!0):delete t[e],p?t[e]=n:o(t,e,n)):p?t[e]=n:s(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&l(this).source||a(this)}))},function(t,e,n){var r=n(36),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){"use strict";var r=n(147),o=Object.prototype.toString;function i(t){return"[object Array]"===o.call(t)}function s(t){return void 0===t}function a(t){return null!==t&&"object"==typeof t}function c(t){if("[object Object]"!==o.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}function l(t){return"[object Function]"===o.call(t)}function u(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),i(t))for(var n=0,r=t.length;n<r;n++)e.call(null,t[n],n,t);else for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.call(null,t[o],o,t)}t.exports={isArray:i,isArrayBuffer:function(t){return"[object ArrayBuffer]"===o.call(t)},isBuffer:function(t){return null!==t&&!s(t)&&null!==t.constructor&&!s(t.constructor)&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)},isFormData:function(t){return"undefined"!=typeof FormData&&t instanceof FormData},isArrayBufferView:function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isObject:a,isPlainObject:c,isUndefined:s,isDate:function(t){return"[object Date]"===o.call(t)},isFile:function(t){return"[object File]"===o.call(t)},isBlob:function(t){return"[object Blob]"===o.call(t)},isFunction:l,isStream:function(t){return a(t)&&l(t.pipe)},isURLSearchParams:function(t){return"undefined"!=typeof URLSearchParams&&t instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:u,merge:function t(){var e={};function n(n,r){c(e[r])&&c(n)?e[r]=t(e[r],n):c(n)?e[r]=t({},n):i(n)?e[r]=n.slice():e[r]=n}for(var r=0,o=arguments.length;r<o;r++)u(arguments[r],n);return e},extend:function(t,e,n){return u(e,(function(e,o){t[o]=n&&"function"==typeof e?r(e,n):e})),t},trim:function(t){return t.replace(/^\s*/,"").replace(/\s*$/,"")},stripBOM:function(t){return 65279===t.charCodeAt(0)&&(t=t.slice(1)),t}}},function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||Function("return this")()}).call(this,n(17))},function(t,e,n){var r=n(32),o=n(18);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(5),o=n(8),i=n(29);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(18);t.exports=function(t){return Object(r(t))}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r,o,i,s=n(188),a=n(1),c=n(6),l=n(14),u=n(7),m=n(77),p=n(47),d=n(34),f=a.WeakMap;if(s){var g=m.state||(m.state=new f),A=g.get,h=g.has,v=g.set;r=function(t,e){return e.facade=t,v.call(g,t,e),e},o=function(t){return A.call(g,t)||{}},i=function(t){return h.call(g,t)}}else{var b=p("state");d[b]=!0,r=function(t,e){return e.facade=t,l(t,b,e),e},o=function(t){return u(t,b)?t[b]:{}},i=function(t){return u(t,b)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){var r=n(5),o=n(73),i=n(29),s=n(13),a=n(33),c=n(7),l=n(116),u=Object.getOwnPropertyDescriptor;e.f=r?u:function(t,e){if(t=s(t),e=a(e,!0),l)try{return u(t,e)}catch(t){}if(c(t,e))return i(!o.f.call(t,e),t[e])}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=!1},function(t,e,n){var r=n(119),o=n(1),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},function(t,e,n){var r=n(5),o=n(2),i=n(7),s=Object.defineProperty,a={},c=function(t){throw t};t.exports=function(t,e){if(i(a,t))return a[t];e||(e={});var n=[][t],l=!!i(e,"ACCESSORS")&&e.ACCESSORS,u=i(e,0)?e[0]:c,m=i(e,1)?e[1]:void 0;return a[t]=!!n&&!o((function(){if(l&&!r)return!0;var t={length:-1};l?s(t,1,{enumerable:!0,get:c}):t[1]=1,n.call(t,u,m)}))}},function(t,e,n){var r=n(8).f,o=n(7),i=n(3)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(43);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){"use strict";n(72),n(121),n(38),n(39),n(52),n(53),Object.defineProperty(e,"__esModule",{value:!0}),e.getRootUrl=e.generateFilePath=e.imagePath=e.generateUrl=e.generateOcsUrl=e.generateRemoteUrl=e.linkTo=void 0;e.linkTo=function(t,e){return r(t,"",e)};e.generateRemoteUrl=function(t){return window.location.protocol+"//"+window.location.host+function(t){return o()+"/remote.php/"+t}(t)};e.generateOcsUrl=function(t,e){return e=2!==e?1:2,window.location.protocol+"//"+window.location.host+o()+"/ocs/v"+e+".php/"+t+"/"};e.generateUrl=function(t,e,n){var r=Object.assign({escape:!0,noRewrite:!1},n||{}),i=function(t,e){return e=e||{},t.replace(/{([^{}]*)}/g,(function(t,n){var o=e[n];return r.escape?"string"==typeof o||"number"==typeof o?encodeURIComponent(o.toString()):encodeURIComponent(t):"string"==typeof o||"number"==typeof o?o.toString():t}))};return"/"!==t.charAt(0)&&(t="/"+t),!0!==OC.config.modRewriteWorking||r.noRewrite?o()+"/index.php"+i(t,e||{}):o()+i(t,e||{})};e.imagePath=function(t,e){return-1===e.indexOf(".")?r(t,"img",e+".svg"):r(t,"img",e)};var r=function(t,e,n){var r=-1!==OC.coreApps.indexOf(t),i=o();return"php"!==n.substring(n.length-3)||r?"php"===n.substring(n.length-3)||r?(i+="settings"!==t&&"core"!==t&&"search"!==t||"ajax"!==e?"/":"/index.php/",r||(i+="apps/"),""!==t&&(i+=t+="/"),e&&(i+=e+"/"),i+=n):(i=OC.appswebroots[t],e&&(i+="/"+e+"/"),"/"!==i.substring(i.length-1)&&(i+="/"),i+=n):(i+="/index.php/apps/"+t,"index.php"!==n&&(i+="/",e&&(i+=encodeURI(e+"/")),i+=n)),i};e.generateFilePath=r;var o=function(){return OC.webroot};e.getRootUrl=o},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r,o=n(4),i=n(125),s=n(81),a=n(34),c=n(126),l=n(74),u=n(47),m=u("IE_PROTO"),p=function(){},d=function(t){return"<script>"+t+"<\/script>"},f=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(t){}var t,e;f=r?function(t){t.write(d("")),t.close();var e=t.parentWindow.Object;return t=null,e}(r):((e=l("iframe")).style.display="none",c.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(d("document.F=Object")),t.close(),t.F);for(var n=s.length;n--;)delete f.prototype[s[n]];return f()};a[m]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(p.prototype=o(t),n=new p,p.prototype=null,n[m]=t):n=f(),void 0===e?n:i(n,e)}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(2),o=n(21),i="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,e,n){var r=n(6);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports={}},function(t,e,n){var r=n(120),o=n(81).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(2),o=/#|\.prototype\./,i=function(t,e){var n=a[s(t)];return n==l||n!=c&&("function"==typeof e?r(e):!!e)},s=i.normalize=function(t){return String(t).replace(o,".").toLowerCase()},a=i.data={},c=i.NATIVE="N",l=i.POLYFILL="P";t.exports=i},function(t,e,n){var r=n(83),o=n(9),i=n(189);r||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,e,n){"use strict";var r=n(0),o=n(51);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(t,e,n){"use strict";var r=n(13),o=n(88),i=n(41),s=n(19),a=n(89),c=s.set,l=s.getterFor("Array Iterator");t.exports=a(Array,"Array",(function(t,e){c(this,{type:"Array Iterator",target:r(t),index:0,kind:e})}),(function(){var t=l(this),e=t.target,n=t.kind,r=t.index++;return!e||r>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:e[r],done:!1}:{value:[r,e[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports={}},function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,n){var r=n(21);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(12),o=n(103).f,i=n(65),s=n(275),a=n(110),c=n(279),l=n(286);t.exports=function(t,e){var n,u,m,p,d,f=t.target,g=t.global,A=t.stat;if(n=g?r:A?r[f]||a(f,{}):(r[f]||{}).prototype)for(u in e){if(p=e[u],m=t.noTargetGet?(d=o(n,u))&&d.value:n[u],!l(g?u:f+(A?".":"#")+u,t.forced)&&void 0!==m){if(typeof p==typeof m)continue;c(p,m)}(t.sham||m&&m.sham)&&i(p,"sham",!0),s(n,u,p,t)}}},function(t,e,n){var r=n(12),o=n(167),i=n(31),s=n(169),a=n(178),c=n(289),l=o("wks"),u=r.Symbol,m=c?u:u&&u.withoutSetter||s;t.exports=function(t){return i(l,t)||(a&&i(u,t)?l[t]=u[t]:l[t]=m("Symbol."+t)),l[t]}},function(t,e,n){var r=n(78),o=n(48),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){throw 1},1)}))}},function(t,e,n){var r=n(120),o=n(81);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){"use strict";var r,o,i=n(86),s=n(124),a=RegExp.prototype.exec,c=String.prototype.replace,l=a,u=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),m=s.UNSUPPORTED_Y||s.BROKEN_CARET,p=void 0!==/()??/.exec("")[1];(u||p||m)&&(l=function(t){var e,n,r,o,s=this,l=m&&s.sticky,d=i.call(s),f=s.source,g=0,A=t;return l&&(-1===(d=d.replace("y","")).indexOf("g")&&(d+="g"),A=String(t).slice(s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==t[s.lastIndex-1])&&(f="(?: "+f+")",A=" "+A,g++),n=new RegExp("^(?:"+f+")",d)),p&&(n=new RegExp("^"+f+"$(?!\\s)",d)),u&&(e=s.lastIndex),r=a.call(l?n:s,A),l?r?(r.input=r.input.slice(g),r[0]=r[0].slice(g),r.index=s.lastIndex,s.lastIndex+=r[0].length):s.lastIndex=0:u&&r&&(s.lastIndex=s.global?r.index+r[0].length:e),p&&r&&r.length>1&&c.call(r[0],n,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r}),t.exports=l},function(t,e,n){"use strict";var r=n(9),o=n(4),i=n(2),s=n(86),a=RegExp.prototype,c=a.toString,l=i((function(){return"/a/b"!=c.call({source:"a",flags:"b"})})),u="toString"!=c.name;(l||u)&&r(RegExp.prototype,"toString",(function(){var t=o(this),e=String(t.source),n=t.flags;return"/"+e+"/"+String(void 0===n&&t instanceof RegExp&&!("flags"in a)?s.call(t):n)}),{unsafe:!0})},function(t,e,n){"use strict";var r=n(54),o=n(4),i=n(10),s=n(36),a=n(18),c=n(87),l=n(190),u=n(56),m=Math.max,p=Math.min;r("replace",2,(function(t,e,n,r){var d=r.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,f=r.REPLACE_KEEPS_$0,g=d?"$":"$0";return[function(n,r){var o=a(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):e.call(String(o),n,r)},function(t,r){if(!d&&f||"string"==typeof r&&-1===r.indexOf(g)){var a=n(e,t,this,r);if(a.done)return a.value}var A=o(t),h=String(this),v="function"==typeof r;v||(r=String(r));var b=A.global;if(b){var y=A.unicode;A.lastIndex=0}for(var x=[];;){var C=u(A,h);if(null===C)break;if(x.push(C),!b)break;""===String(C[0])&&(A.lastIndex=c(h,i(A.lastIndex),y))}for(var w,E="",k=0,T=0;T<x.length;T++){C=x[T];for(var S=String(C[0]),_=m(p(s(C.index),h.length),0),M=[],j=1;j<C.length;j++)M.push(void 0===(w=C[j])?w:String(w));var P=C.groups;if(v){var B=[S].concat(M,_,h);void 0!==P&&B.push(P);var N=String(r.apply(void 0,B))}else N=l(S,h,_,M,P,r);_>=k&&(E+=h.slice(k,_)+N,k=_+S.length)}return E+h.slice(k)}]}))},function(t,e,n){"use strict";n(39);var r=n(9),o=n(2),i=n(3),s=n(51),a=n(14),c=i("species"),l=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),u="$0"==="a".replace(/./,"$0"),m=i("replace"),p=!!/./[m]&&""===/./[m]("a","$0"),d=!o((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));t.exports=function(t,e,n,m){var f=i(t),g=!o((function(){var e={};return e[f]=function(){return 7},7!=""[t](e)})),A=g&&!o((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return e=!0,null},n[f](""),!e}));if(!g||!A||"replace"===t&&(!l||!u||p)||"split"===t&&!d){var h=/./[f],v=n(f,""[t],(function(t,e,n,r,o){return e.exec===s?g&&!o?{done:!0,value:h.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),{REPLACE_KEEPS_$0:u,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:p}),b=v[0],y=v[1];r(String.prototype,t,b),r(RegExp.prototype,f,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}m&&a(RegExp.prototype[f],"sham",!0)}},function(t,e,n){var r=n(36),o=n(18),i=function(t){return function(e,n){var i,s,a=String(o(e)),c=r(n),l=a.length;return c<0||c>=l?t?"":void 0:(i=a.charCodeAt(c))<55296||i>56319||c+1===l||(s=a.charCodeAt(c+1))<56320||s>57343?t?a.charAt(c):i:t?a.slice(c,c+2):s-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},function(t,e,n){var r=n(21),o=n(51);t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},function(t,e,n){"use strict";var r=n(55).charAt,o=n(19),i=n(89),s=o.set,a=o.getterFor("String Iterator");i(String,"String",(function(t){s(this,{type:"String Iterator",string:String(t),index:0})}),(function(){var t,e=a(this),n=e.string,o=e.index;return o>=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},function(t,e,n){"use strict";var r=n(33),o=n(8),i=n(29);t.exports=function(t,e,n){var s=r(e);s in t?o.f(t,s,i(0,n)):t[s]=n}},function(t,e,n){var r=n(85),o=n(41),i=n(3)("iterator");t.exports=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[r(t)]}},function(t,e,n){var r=n(26),o=n(32),i=n(15),s=n(10),a=n(93),c=[].push,l=function(t){var e=1==t,n=2==t,l=3==t,u=4==t,m=6==t,p=7==t,d=5==t||m;return function(f,g,A,h){for(var v,b,y=i(f),x=o(y),C=r(g,A,3),w=s(x.length),E=0,k=h||a,T=e?k(f,w):n||p?k(f,0):void 0;w>E;E++)if((d||E in x)&&(b=C(v=x[E],E,y),t))if(e)T[E]=b;else if(b)switch(t){case 3:return!0;case 5:return v;case 6:return E;case 2:c.call(T,v)}else switch(t){case 4:return!1;case 7:c.call(T,v)}return m?-1:l||u?u:T}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterOut:l(7)}},function(t,e,n){var r=n(2),o=n(3),i=n(62),s=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[s]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},function(t,e,n){var r,o,i=n(1),s=n(94),a=i.process,c=a&&a.versions,l=c&&c.v8;l?o=(r=l.split("."))[0]+r[1]:s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(o=r[1]),t.exports=o&&+o},function(t,e,n){var r=n(21),o=n(1);t.exports="process"==r(o.process)},function(t,e,n){var r=n(16);t.exports=!r((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,e,n){var r=n(64),o=n(109),i=n(104);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(173),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){"use strict";n.r(e),function(t,n){var r=Object.freeze({});function o(t){return null==t}function i(t){return null!=t}function s(t){return!0===t}function a(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return null!==t&&"object"==typeof t}var l=Object.prototype.toString;function u(t){return"[object Object]"===l.call(t)}function m(t){return"[object RegExp]"===l.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function f(t){return null==t?"":Array.isArray(t)||u(t)&&t.toString===l?JSON.stringify(t,null,2):String(t)}function g(t){var e=parseFloat(t);return isNaN(e)?t:e}function A(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}A("slot,component",!0);var h=A("key,ref,slot,slot-scope,is");function v(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function y(t,e){return b.call(t,e)}function x(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var C=/-(\w)/g,w=x((function(t){return t.replace(C,(function(t,e){return e?e.toUpperCase():""}))})),E=x((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),k=/\B([A-Z])/g,T=x((function(t){return t.replace(k,"-$1").toLowerCase()}));var S=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function _(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function M(t,e){for(var n in e)t[n]=e[n];return t}function j(t){for(var e={},n=0;n<t.length;n++)t[n]&&M(e,t[n]);return e}function P(t,e,n){}var B=function(t,e,n){return!1},N=function(t){return t};function I(t,e){if(t===e)return!0;var n=c(t),r=c(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var o=Array.isArray(t),i=Array.isArray(e);if(o&&i)return t.length===e.length&&t.every((function(t,n){return I(t,e[n])}));if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(o||i)return!1;var s=Object.keys(t),a=Object.keys(e);return s.length===a.length&&s.every((function(n){return I(t[n],e[n])}))}catch(t){return!1}}function O(t,e){for(var n=0;n<t.length;n++)if(I(t[n],e))return n;return-1}function L(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var D=["component","directive","filter"],F=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],U={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:B,isReservedAttr:B,isUnknownElement:B,getTagNamespace:P,parsePlatformTagName:N,mustUseProp:B,async:!0,_lifecycleHooks:F},R=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function z(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var G=new RegExp("[^"+R.source+".$_\\d]");var $,Q="__proto__"in{},H="undefined"!=typeof window,Y="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,V=Y&&WXEnvironment.platform.toLowerCase(),W=H&&window.navigator.userAgent.toLowerCase(),Z=W&&/msie|trident/.test(W),J=W&&W.indexOf("msie 9.0")>0,q=W&&W.indexOf("edge/")>0,X=(W&&W.indexOf("android"),W&&/iphone|ipad|ipod|ios/.test(W)||"ios"===V),K=(W&&/chrome\/\d+/.test(W),W&&/phantomjs/.test(W),W&&W.match(/firefox\/(\d+)/)),tt={}.watch,et=!1;if(H)try{var nt={};Object.defineProperty(nt,"passive",{get:function(){et=!0}}),window.addEventListener("test-passive",null,nt)}catch(t){}var rt=function(){return void 0===$&&($=!H&&!Y&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),$},ot=H&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function it(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,at="undefined"!=typeof Symbol&&it(Symbol)&&"undefined"!=typeof Reflect&&it(Reflect.ownKeys);st="undefined"!=typeof Set&&it(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ct=P,lt=0,ut=function(){this.id=lt++,this.subs=[]};ut.prototype.addSub=function(t){this.subs.push(t)},ut.prototype.removeSub=function(t){v(this.subs,t)},ut.prototype.depend=function(){ut.target&&ut.target.addDep(this)},ut.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e<n;e++)t[e].update()},ut.target=null;var mt=[];function pt(t){mt.push(t),ut.target=t}function dt(){mt.pop(),ut.target=mt[mt.length-1]}var ft=function(t,e,n,r,o,i,s,a){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=s,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=a,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},gt={child:{configurable:!0}};gt.child.get=function(){return this.componentInstance},Object.defineProperties(ft.prototype,gt);var At=function(t){void 0===t&&(t="");var e=new ft;return e.text=t,e.isComment=!0,e};function ht(t){return new ft(void 0,void 0,void 0,String(t))}function vt(t){var e=new ft(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var bt=Array.prototype,yt=Object.create(bt);["push","pop","shift","unshift","splice","sort","reverse"].forEach((function(t){var e=bt[t];z(yt,t,(function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var o,i=e.apply(this,n),s=this.__ob__;switch(t){case"push":case"unshift":o=n;break;case"splice":o=n.slice(2)}return o&&s.observeArray(o),s.dep.notify(),i}))}));var xt=Object.getOwnPropertyNames(yt),Ct=!0;function wt(t){Ct=t}var Et=function(t){this.value=t,this.dep=new ut,this.vmCount=0,z(t,"__ob__",this),Array.isArray(t)?(Q?function(t,e){t.__proto__=e}(t,yt):function(t,e,n){for(var r=0,o=n.length;r<o;r++){var i=n[r];z(t,i,e[i])}}(t,yt,xt),this.observeArray(t)):this.walk(t)};function kt(t,e){var n;if(c(t)&&!(t instanceof ft))return y(t,"__ob__")&&t.__ob__ instanceof Et?n=t.__ob__:Ct&&!rt()&&(Array.isArray(t)||u(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new Et(t)),e&&n&&n.vmCount++,n}function Tt(t,e,n,r,o){var i=new ut,s=Object.getOwnPropertyDescriptor(t,e);if(!s||!1!==s.configurable){var a=s&&s.get,c=s&&s.set;a&&!c||2!==arguments.length||(n=t[e]);var l=!o&&kt(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=a?a.call(t):n;return ut.target&&(i.depend(),l&&(l.dep.depend(),Array.isArray(e)&&Mt(e))),e},set:function(e){var r=a?a.call(t):n;e===r||e!=e&&r!=r||a&&!c||(c?c.call(t,e):n=e,l=!o&&kt(e),i.notify())}})}}function St(t,e,n){if(Array.isArray(t)&&p(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?n:r?(Tt(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function _t(t,e){if(Array.isArray(t)&&p(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount||y(t,e)&&(delete t[e],n&&n.dep.notify())}}function Mt(t){for(var e=void 0,n=0,r=t.length;n<r;n++)(e=t[n])&&e.__ob__&&e.__ob__.dep.depend(),Array.isArray(e)&&Mt(e)}Et.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)Tt(t,e[n])},Et.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)kt(t[e])};var jt=U.optionMergeStrategies;function Pt(t,e){if(!e)return t;for(var n,r,o,i=at?Reflect.ownKeys(e):Object.keys(e),s=0;s<i.length;s++)"__ob__"!==(n=i[s])&&(r=t[n],o=e[n],y(t,n)?r!==o&&u(r)&&u(o)&&Pt(r,o):St(t,n,o));return t}function Bt(t,e,n){return n?function(){var r="function"==typeof e?e.call(n,n):e,o="function"==typeof t?t.call(n,n):t;return r?Pt(r,o):o}:e?t?function(){return Pt("function"==typeof e?e.call(this,this):e,"function"==typeof t?t.call(this,this):t)}:e:t}function Nt(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n?function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(n):n}function It(t,e,n,r){var o=Object.create(t||null);return e?M(o,e):o}jt.data=function(t,e,n){return n?Bt(t,e,n):e&&"function"!=typeof e?t:Bt(t,e)},F.forEach((function(t){jt[t]=Nt})),D.forEach((function(t){jt[t+"s"]=It})),jt.watch=function(t,e,n,r){if(t===tt&&(t=void 0),e===tt&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var o={};for(var i in M(o,t),e){var s=o[i],a=e[i];s&&!Array.isArray(s)&&(s=[s]),o[i]=s?s.concat(a):Array.isArray(a)?a:[a]}return o},jt.props=jt.methods=jt.inject=jt.computed=function(t,e,n,r){if(!t)return e;var o=Object.create(null);return M(o,t),e&&M(o,e),o},jt.provide=Bt;var Ot=function(t,e){return void 0===e?t:e};function Lt(t,e,n){if("function"==typeof e&&(e=e.options),function(t,e){var n=t.props;if(n){var r,o,i={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(o=n[r])&&(i[w(o)]={type:null});else if(u(n))for(var s in n)o=n[s],i[w(s)]=u(o)?o:{type:o};else 0;t.props=i}}(e),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(u(n))for(var i in n){var s=n[i];r[i]=u(s)?M({from:i},s):{from:s}}else 0}}(e),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}(e),!e._base&&(e.extends&&(t=Lt(t,e.extends,n)),e.mixins))for(var r=0,o=e.mixins.length;r<o;r++)t=Lt(t,e.mixins[r],n);var i,s={};for(i in t)a(i);for(i in e)y(t,i)||a(i);function a(r){var o=jt[r]||Ot;s[r]=o(t[r],e[r],n,r)}return s}function Dt(t,e,n,r){if("string"==typeof n){var o=t[e];if(y(o,n))return o[n];var i=w(n);if(y(o,i))return o[i];var s=E(i);return y(o,s)?o[s]:o[n]||o[i]||o[s]}}function Ft(t,e,n,r){var o=e[t],i=!y(n,t),s=n[t],a=zt(Boolean,o.type);if(a>-1)if(i&&!y(o,"default"))s=!1;else if(""===s||s===T(t)){var c=zt(String,o.type);(c<0||a<c)&&(s=!0)}if(void 0===s){s=function(t,e,n){if(!y(e,"default"))return;var r=e.default;0;if(t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n])return t._props[n];return"function"==typeof r&&"Function"!==Ut(e.type)?r.call(t):r}(r,o,t);var l=Ct;wt(!0),kt(s),wt(l)}return s}function Ut(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Rt(t,e){return Ut(t)===Ut(e)}function zt(t,e){if(!Array.isArray(e))return Rt(e,t)?0:-1;for(var n=0,r=e.length;n<r;n++)if(Rt(e[n],t))return n;return-1}function Gt(t,e,n){pt();try{if(e)for(var r=e;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{if(!1===o[i].call(r,t,e,n))return}catch(t){Qt(t,r,"errorCaptured hook")}}Qt(t,e,n)}finally{dt()}}function $t(t,e,n,r,o){var i;try{(i=n?t.apply(e,n):t.call(e))&&!i._isVue&&d(i)&&!i._handled&&(i.catch((function(t){return Gt(t,r,o+" (Promise/async)")})),i._handled=!0)}catch(t){Gt(t,r,o)}return i}function Qt(t,e,n){if(U.errorHandler)try{return U.errorHandler.call(null,t,e,n)}catch(e){e!==t&&Ht(e,null,"config.errorHandler")}Ht(t,e,n)}function Ht(t,e,n){if(!H&&!Y||"undefined"==typeof console)throw t;console.error(t)}var Yt,Vt=!1,Wt=[],Zt=!1;function Jt(){Zt=!1;var t=Wt.slice(0);Wt.length=0;for(var e=0;e<t.length;e++)t[e]()}if("undefined"!=typeof Promise&&it(Promise)){var qt=Promise.resolve();Yt=function(){qt.then(Jt),X&&setTimeout(P)},Vt=!0}else if(Z||"undefined"==typeof MutationObserver||!it(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())Yt=void 0!==n&&it(n)?function(){n(Jt)}:function(){setTimeout(Jt,0)};else{var Xt=1,Kt=new MutationObserver(Jt),te=document.createTextNode(String(Xt));Kt.observe(te,{characterData:!0}),Yt=function(){Xt=(Xt+1)%2,te.data=String(Xt)},Vt=!0}function ee(t,e){var n;if(Wt.push((function(){if(t)try{t.call(e)}catch(t){Gt(t,e,"nextTick")}else n&&n(e)})),Zt||(Zt=!0,Yt()),!t&&"undefined"!=typeof Promise)return new Promise((function(t){n=t}))}var ne=new st;function re(t){!function t(e,n){var r,o,i=Array.isArray(e);if(!i&&!c(e)||Object.isFrozen(e)||e instanceof ft)return;if(e.__ob__){var s=e.__ob__.dep.id;if(n.has(s))return;n.add(s)}if(i)for(r=e.length;r--;)t(e[r],n);else for(o=Object.keys(e),r=o.length;r--;)t(e[o[r]],n)}(t,ne),ne.clear()}var oe=x((function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}}));function ie(t,e){function n(){var t=arguments,r=n.fns;if(!Array.isArray(r))return $t(r,null,arguments,e,"v-on handler");for(var o=r.slice(),i=0;i<o.length;i++)$t(o[i],null,t,e,"v-on handler")}return n.fns=t,n}function se(t,e,n,r,i,a){var c,l,u,m;for(c in t)l=t[c],u=e[c],m=oe(c),o(l)||(o(u)?(o(l.fns)&&(l=t[c]=ie(l,a)),s(m.once)&&(l=t[c]=i(m.name,l,m.capture)),n(m.name,l,m.capture,m.passive,m.params)):l!==u&&(u.fns=l,t[c]=u));for(c in e)o(t[c])&&r((m=oe(c)).name,e[c],m.capture)}function ae(t,e,n){var r;t instanceof ft&&(t=t.data.hook||(t.data.hook={}));var a=t[e];function c(){n.apply(this,arguments),v(r.fns,c)}o(a)?r=ie([c]):i(a.fns)&&s(a.merged)?(r=a).fns.push(c):r=ie([a,c]),r.merged=!0,t[e]=r}function ce(t,e,n,r,o){if(i(e)){if(y(e,n))return t[n]=e[n],o||delete e[n],!0;if(y(e,r))return t[n]=e[r],o||delete e[r],!0}return!1}function le(t){return a(t)?[ht(t)]:Array.isArray(t)?function t(e,n){var r,c,l,u,m=[];for(r=0;r<e.length;r++)o(c=e[r])||"boolean"==typeof c||(l=m.length-1,u=m[l],Array.isArray(c)?c.length>0&&(ue((c=t(c,(n||"")+"_"+r))[0])&&ue(u)&&(m[l]=ht(u.text+c[0].text),c.shift()),m.push.apply(m,c)):a(c)?ue(u)?m[l]=ht(u.text+c):""!==c&&m.push(ht(c)):ue(c)&&ue(u)?m[l]=ht(u.text+c.text):(s(e._isVList)&&i(c.tag)&&o(c.key)&&i(n)&&(c.key="__vlist"+n+"_"+r+"__"),m.push(c)));return m}(t):void 0}function ue(t){return i(t)&&i(t.text)&&!1===t.isComment}function me(t,e){if(t){for(var n=Object.create(null),r=at?Reflect.ownKeys(t):Object.keys(t),o=0;o<r.length;o++){var i=r[o];if("__ob__"!==i){for(var s=t[i].from,a=e;a;){if(a._provided&&y(a._provided,s)){n[i]=a._provided[s];break}a=a.$parent}if(!a)if("default"in t[i]){var c=t[i].default;n[i]="function"==typeof c?c.call(e):c}else 0}}return n}}function pe(t,e){if(!t||!t.length)return{};for(var n={},r=0,o=t.length;r<o;r++){var i=t[r],s=i.data;if(s&&s.attrs&&s.attrs.slot&&delete s.attrs.slot,i.context!==e&&i.fnContext!==e||!s||null==s.slot)(n.default||(n.default=[])).push(i);else{var a=s.slot,c=n[a]||(n[a]=[]);"template"===i.tag?c.push.apply(c,i.children||[]):c.push(i)}}for(var l in n)n[l].every(de)&&delete n[l];return n}function de(t){return t.isComment&&!t.asyncFactory||" "===t.text}function fe(t,e,n){var o,i=Object.keys(e).length>0,s=t?!!t.$stable:!i,a=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(s&&n&&n!==r&&a===n.$key&&!i&&!n.$hasNormal)return n;for(var c in o={},t)t[c]&&"$"!==c[0]&&(o[c]=ge(e,c,t[c]))}else o={};for(var l in e)l in o||(o[l]=Ae(e,l));return t&&Object.isExtensible(t)&&(t._normalized=o),z(o,"$stable",s),z(o,"$key",a),z(o,"$hasNormal",i),o}function ge(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:le(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function Ae(t,e){return function(){return t[e]}}function he(t,e){var n,r,o,s,a;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;r<o;r++)n[r]=e(t[r],r);else if("number"==typeof t)for(n=new Array(t),r=0;r<t;r++)n[r]=e(r+1,r);else if(c(t))if(at&&t[Symbol.iterator]){n=[];for(var l=t[Symbol.iterator](),u=l.next();!u.done;)n.push(e(u.value,n.length)),u=l.next()}else for(s=Object.keys(t),n=new Array(s.length),r=0,o=s.length;r<o;r++)a=s[r],n[r]=e(t[a],a,r);return i(n)||(n=[]),n._isVList=!0,n}function ve(t,e,n,r){var o,i=this.$scopedSlots[t];i?(n=n||{},r&&(n=M(M({},r),n)),o=i(n)||e):o=this.$slots[t]||e;var s=n&&n.slot;return s?this.$createElement("template",{slot:s},o):o}function be(t){return Dt(this.$options,"filters",t)||N}function ye(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}function xe(t,e,n,r,o){var i=U.keyCodes[e]||n;return o&&r&&!U.keyCodes[e]?ye(o,r):i?ye(i,t):r?T(r)!==e:void 0}function Ce(t,e,n,r,o){if(n)if(c(n)){var i;Array.isArray(n)&&(n=j(n));var s=function(s){if("class"===s||"style"===s||h(s))i=t;else{var a=t.attrs&&t.attrs.type;i=r||U.mustUseProp(e,a,s)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}var c=w(s),l=T(s);c in i||l in i||(i[s]=n[s],o&&((t.on||(t.on={}))["update:"+s]=function(t){n[s]=t}))};for(var a in n)s(a)}else;return t}function we(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e||ke(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),"__static__"+t,!1),r}function Ee(t,e,n){return ke(t,"__once__"+e+(n?"_"+n:""),!0),t}function ke(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&Te(t[r],e+"_"+r,n);else Te(t,e,n)}function Te(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function Se(t,e){if(e)if(u(e)){var n=t.on=t.on?M({},t.on):{};for(var r in e){var o=n[r],i=e[r];n[r]=o?[].concat(o,i):i}}else;return t}function _e(t,e,n,r){e=e||{$stable:!n};for(var o=0;o<t.length;o++){var i=t[o];Array.isArray(i)?_e(i,e,n):i&&(i.proxy&&(i.fn.proxy=!0),e[i.key]=i.fn)}return r&&(e.$key=r),e}function Me(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"==typeof r&&r&&(t[e[n]]=e[n+1])}return t}function je(t,e){return"string"==typeof t?e+t:t}function Pe(t){t._o=Ee,t._n=g,t._s=f,t._l=he,t._t=ve,t._q=I,t._i=O,t._m=we,t._f=be,t._k=xe,t._b=Ce,t._v=ht,t._e=At,t._u=_e,t._g=Se,t._d=Me,t._p=je}function Be(t,e,n,o,i){var a,c=this,l=i.options;y(o,"_uid")?(a=Object.create(o))._original=o:(a=o,o=o._original);var u=s(l._compiled),m=!u;this.data=t,this.props=e,this.children=n,this.parent=o,this.listeners=t.on||r,this.injections=me(l.inject,o),this.slots=function(){return c.$slots||fe(t.scopedSlots,c.$slots=pe(n,o)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return fe(t.scopedSlots,this.slots())}}),u&&(this.$options=l,this.$slots=this.slots(),this.$scopedSlots=fe(t.scopedSlots,this.$slots)),l._scopeId?this._c=function(t,e,n,r){var i=Ue(a,t,e,n,r,m);return i&&!Array.isArray(i)&&(i.fnScopeId=l._scopeId,i.fnContext=o),i}:this._c=function(t,e,n,r){return Ue(a,t,e,n,r,m)}}function Ne(t,e,n,r,o){var i=vt(t);return i.fnContext=n,i.fnOptions=r,e.slot&&((i.data||(i.data={})).slot=e.slot),i}function Ie(t,e){for(var n in e)t[w(n)]=e[n]}Pe(Be.prototype);var Oe={init:function(t,e){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var n=t;Oe.prepatch(n,n)}else{(t.componentInstance=function(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},r=t.data.inlineTemplate;i(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns);return new t.componentOptions.Ctor(n)}(t,Ze)).$mount(e?t.elm:void 0,e)}},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,o,i){0;var s=o.data.scopedSlots,a=t.$scopedSlots,c=!!(s&&!s.$stable||a!==r&&!a.$stable||s&&t.$scopedSlots.$key!==s.$key),l=!!(i||t.$options._renderChildren||c);t.$options._parentVnode=o,t.$vnode=o,t._vnode&&(t._vnode.parent=o);if(t.$options._renderChildren=i,t.$attrs=o.data.attrs||r,t.$listeners=n||r,e&&t.$options.props){wt(!1);for(var u=t._props,m=t.$options._propKeys||[],p=0;p<m.length;p++){var d=m[p],f=t.$options.props;u[d]=Ft(d,f,e,t)}wt(!0),t.$options.propsData=e}n=n||r;var g=t.$options._parentListeners;t.$options._parentListeners=n,We(t,n,g),l&&(t.$slots=pe(i,o.context),t.$forceUpdate());0}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e,n=t.context,r=t.componentInstance;r._isMounted||(r._isMounted=!0,Ke(r,"mounted")),t.data.keepAlive&&(n._isMounted?((e=r)._inactive=!1,en.push(e)):Xe(r,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(n&&(e._directInactive=!0,qe(e)))return;if(!e._inactive){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);Ke(e,"deactivated")}}(e,!0):e.$destroy())}},Le=Object.keys(Oe);function De(t,e,n,a,l){if(!o(t)){var u=n.$options._base;if(c(t)&&(t=u.extend(t)),"function"==typeof t){var m;if(o(t.cid)&&void 0===(t=function(t,e){if(s(t.error)&&i(t.errorComp))return t.errorComp;if(i(t.resolved))return t.resolved;var n=ze;n&&i(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n);if(s(t.loading)&&i(t.loadingComp))return t.loadingComp;if(n&&!i(t.owners)){var r=t.owners=[n],a=!0,l=null,u=null;n.$on("hook:destroyed",(function(){return v(r,n)}));var m=function(t){for(var e=0,n=r.length;e<n;e++)r[e].$forceUpdate();t&&(r.length=0,null!==l&&(clearTimeout(l),l=null),null!==u&&(clearTimeout(u),u=null))},p=L((function(n){t.resolved=Ge(n,e),a?r.length=0:m(!0)})),f=L((function(e){i(t.errorComp)&&(t.error=!0,m(!0))})),g=t(p,f);return c(g)&&(d(g)?o(t.resolved)&&g.then(p,f):d(g.component)&&(g.component.then(p,f),i(g.error)&&(t.errorComp=Ge(g.error,e)),i(g.loading)&&(t.loadingComp=Ge(g.loading,e),0===g.delay?t.loading=!0:l=setTimeout((function(){l=null,o(t.resolved)&&o(t.error)&&(t.loading=!0,m(!1))}),g.delay||200)),i(g.timeout)&&(u=setTimeout((function(){u=null,o(t.resolved)&&f(null)}),g.timeout)))),a=!1,t.loading?t.loadingComp:t.resolved}}(m=t,u)))return function(t,e,n,r,o){var i=At();return i.asyncFactory=t,i.asyncMeta={data:e,context:n,children:r,tag:o},i}(m,e,n,a,l);e=e||{},Cn(t),i(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.attrs||(e.attrs={}))[n]=e.model.value;var o=e.on||(e.on={}),s=o[r],a=e.model.callback;i(s)?(Array.isArray(s)?-1===s.indexOf(a):s!==a)&&(o[r]=[a].concat(s)):o[r]=a}(t.options,e);var p=function(t,e,n){var r=e.options.props;if(!o(r)){var s={},a=t.attrs,c=t.props;if(i(a)||i(c))for(var l in r){var u=T(l);ce(s,c,l,u,!0)||ce(s,a,l,u,!1)}return s}}(e,t);if(s(t.options.functional))return function(t,e,n,o,s){var a=t.options,c={},l=a.props;if(i(l))for(var u in l)c[u]=Ft(u,l,e||r);else i(n.attrs)&&Ie(c,n.attrs),i(n.props)&&Ie(c,n.props);var m=new Be(n,c,s,o,t),p=a.render.call(null,m._c,m);if(p instanceof ft)return Ne(p,n,m.parent,a,m);if(Array.isArray(p)){for(var d=le(p)||[],f=new Array(d.length),g=0;g<d.length;g++)f[g]=Ne(d[g],n,m.parent,a,m);return f}}(t,p,e,n,a);var f=e.on;if(e.on=e.nativeOn,s(t.options.abstract)){var g=e.slot;e={},g&&(e.slot=g)}!function(t){for(var e=t.hook||(t.hook={}),n=0;n<Le.length;n++){var r=Le[n],o=e[r],i=Oe[r];o===i||o&&o._merged||(e[r]=o?Fe(i,o):i)}}(e);var A=t.options.name||l;return new ft("vue-component-"+t.cid+(A?"-"+A:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:p,listeners:f,tag:l,children:a},m)}}}function Fe(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}function Ue(t,e,n,r,l,u){return(Array.isArray(n)||a(n))&&(l=r,r=n,n=void 0),s(u)&&(l=2),function(t,e,n,r,a){if(i(n)&&i(n.__ob__))return At();i(n)&&i(n.is)&&(e=n.is);if(!e)return At();0;Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);2===a?r=le(r):1===a&&(r=function(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}(r));var l,u;if("string"==typeof e){var m;u=t.$vnode&&t.$vnode.ns||U.getTagNamespace(e),l=U.isReservedTag(e)?new ft(U.parsePlatformTagName(e),n,r,void 0,void 0,t):n&&n.pre||!i(m=Dt(t.$options,"components",e))?new ft(e,n,r,void 0,void 0,t):De(m,n,t,r,e)}else l=De(e,n,t,r);return Array.isArray(l)?l:i(l)?(i(u)&&function t(e,n,r){e.ns=n,"foreignObject"===e.tag&&(n=void 0,r=!0);if(i(e.children))for(var a=0,c=e.children.length;a<c;a++){var l=e.children[a];i(l.tag)&&(o(l.ns)||s(r)&&"svg"!==l.tag)&&t(l,n,r)}}(l,u),i(n)&&function(t){c(t.style)&&re(t.style);c(t.class)&&re(t.class)}(n),l):At()}(t,e,n,r,l)}var Re,ze=null;function Ge(t,e){return(t.__esModule||at&&"Module"===t[Symbol.toStringTag])&&(t=t.default),c(t)?e.extend(t):t}function $e(t){return t.isComment&&t.asyncFactory}function Qe(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(i(n)&&(i(n.componentOptions)||$e(n)))return n}}function He(t,e){Re.$on(t,e)}function Ye(t,e){Re.$off(t,e)}function Ve(t,e){var n=Re;return function r(){var o=e.apply(null,arguments);null!==o&&n.$off(t,r)}}function We(t,e,n){Re=t,se(e,n||{},He,Ye,Ve,t),Re=void 0}var Ze=null;function Je(t){var e=Ze;return Ze=t,function(){Ze=e}}function qe(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function Xe(t,e){if(e){if(t._directInactive=!1,qe(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)Xe(t.$children[n]);Ke(t,"activated")}}function Ke(t,e){pt();var n=t.$options[e],r=e+" hook";if(n)for(var o=0,i=n.length;o<i;o++)$t(n[o],t,null,t,r);t._hasHookEvent&&t.$emit("hook:"+e),dt()}var tn=[],en=[],nn={},rn=!1,on=!1,sn=0;var an=0,cn=Date.now;if(H&&!Z){var ln=window.performance;ln&&"function"==typeof ln.now&&cn()>document.createEvent("Event").timeStamp&&(cn=function(){return ln.now()})}function un(){var t,e;for(an=cn(),on=!0,tn.sort((function(t,e){return t.id-e.id})),sn=0;sn<tn.length;sn++)(t=tn[sn]).before&&t.before(),e=t.id,nn[e]=null,t.run();var n=en.slice(),r=tn.slice();sn=tn.length=en.length=0,nn={},rn=on=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,Xe(t[e],!0)}(n),function(t){var e=t.length;for(;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&Ke(r,"updated")}}(r),ot&&U.devtools&&ot.emit("flush")}var mn=0,pn=function(t,e,n,r,o){this.vm=t,o&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++mn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new st,this.newDepIds=new st,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!G.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=P)),this.value=this.lazy?void 0:this.get()};pn.prototype.get=function(){var t;pt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;Gt(t,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&re(t),dt(),this.cleanupDeps()}return t},pn.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},pn.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},pn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(t){var e=t.id;if(null==nn[e]){if(nn[e]=!0,on){for(var n=tn.length-1;n>sn&&tn[n].id>t.id;)n--;tn.splice(n+1,0,t)}else tn.push(t);rn||(rn=!0,ee(un))}}(this)},pn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Gt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},pn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},pn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},pn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||v(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var dn={enumerable:!0,configurable:!0,get:P,set:P};function fn(t,e,n){dn.get=function(){return this[e][n]},dn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,dn)}function gn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&wt(!1);var i=function(i){o.push(i);var s=Ft(i,e,n,t);Tt(r,i,s),i in t||fn(t,"_props",i)};for(var s in e)i(s);wt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?P:S(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;u(e=t._data="function"==typeof e?function(t,e){pt();try{return t.call(e,e)}catch(t){return Gt(t,e,"data()"),{}}finally{dt()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];0,r&&y(r,i)||(s=void 0,36!==(s=(i+"").charCodeAt(0))&&95!==s&&fn(t,"_data",i))}var s;kt(e,!0)}(t):kt(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=rt();for(var o in e){var i=e[o],s="function"==typeof i?i:i.get;0,r||(n[o]=new pn(t,s||P,P,An)),o in t||hn(t,o,i)}}(t,e.computed),e.watch&&e.watch!==tt&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o<r.length;o++)yn(t,n,r[o]);else yn(t,n,r)}}(t,e.watch)}var An={lazy:!0};function hn(t,e,n){var r=!rt();"function"==typeof n?(dn.get=r?vn(e):bn(n),dn.set=P):(dn.get=n.get?r&&!1!==n.cache?vn(e):bn(n.get):P,dn.set=n.set||P),Object.defineProperty(t,e,dn)}function vn(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ut.target&&e.depend(),e.value}}function bn(t){return function(){return t.call(this,this)}}function yn(t,e,n,r){return u(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}var xn=0;function Cn(t){var e=t.options;if(t.super){var n=Cn(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.sealedOptions;for(var o in n)n[o]!==r[o]&&(e||(e={}),e[o]=n[o]);return e}(t);r&&M(t.extendOptions,r),(e=t.options=Lt(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function wn(t){this._init(t)}function En(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=t.name||n.options.name;var s=function(t){this._init(t)};return(s.prototype=Object.create(n.prototype)).constructor=s,s.cid=e++,s.options=Lt(n.options,t),s.super=n,s.options.props&&function(t){var e=t.options.props;for(var n in e)fn(t.prototype,"_props",n)}(s),s.options.computed&&function(t){var e=t.options.computed;for(var n in e)hn(t.prototype,n,e[n])}(s),s.extend=n.extend,s.mixin=n.mixin,s.use=n.use,D.forEach((function(t){s[t]=n[t]})),i&&(s.options.components[i]=s),s.superOptions=n.options,s.extendOptions=t,s.sealedOptions=M({},s.options),o[r]=s,s}}function kn(t){return t&&(t.Ctor.options.name||t.tag)}function Tn(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!m(t)&&t.test(e)}function Sn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var s=n[i];if(s){var a=kn(s.componentOptions);a&&!e(a)&&_n(n,i,r,o)}}}function _n(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,v(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=xn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Lt(Cn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&We(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return Ue(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Ue(t,e,n,r,o,!0)};var i=n&&n.data;Tt(t,"$attrs",i&&i.attrs||r,null,!0),Tt(t,"$listeners",e._parentListeners||r,null,!0)}(e),Ke(e,"beforeCreate"),function(t){var e=me(t.$options.inject,t);e&&(wt(!1),Object.keys(e).forEach((function(n){Tt(t,n,e[n])})),wt(!0))}(e),gn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),Ke(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(wn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=St,t.prototype.$delete=_t,t.prototype.$watch=function(t,e,n){if(u(e))return yn(this,t,e,n);(n=n||{}).user=!0;var r=new pn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){Gt(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(wn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var o=0,i=t.length;o<i;o++)r.$on(t[o],n);else(r._events[t]||(r._events[t]=[])).push(n),e.test(t)&&(r._hasHookEvent=!0);return r},t.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(t)){for(var r=0,o=t.length;r<o;r++)n.$off(t[r],e);return n}var i,s=n._events[t];if(!s)return n;if(!e)return n._events[t]=null,n;for(var a=s.length;a--;)if((i=s[a])===e||i.fn===e){s.splice(a,1);break}return n},t.prototype.$emit=function(t){var e=this,n=e._events[t];if(n){n=n.length>1?_(n):n;for(var r=_(arguments,1),o='event handler for "'+t+'"',i=0,s=n.length;i<s;i++)$t(n[i],e,r,e,o)}return e}}(wn),function(t){t.prototype._update=function(t,e){var n=this,r=n.$el,o=n._vnode,i=Je(n);n._vnode=t,n.$el=o?n.__patch__(o,t):n.__patch__(n.$el,t,e,!1),i(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},t.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){Ke(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||v(e.$children,t),t._watcher&&t._watcher.teardown();for(var n=t._watchers.length;n--;)t._watchers[n].teardown();t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),Ke(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}(wn),function(t){Pe(t.prototype),t.prototype.$nextTick=function(t){return ee(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,r=n.render,o=n._parentVnode;o&&(e.$scopedSlots=fe(o.data.scopedSlots,e.$slots,e.$scopedSlots)),e.$vnode=o;try{ze=e,t=r.call(e._renderProxy,e.$createElement)}catch(n){Gt(n,e,"render"),t=e._vnode}finally{ze=null}return Array.isArray(t)&&1===t.length&&(t=t[0]),t instanceof ft||(t=At()),t.parent=o,t}}(wn);var Mn=[String,RegExp,Array],jn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Mn,exclude:Mn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)_n(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",(function(e){Sn(t,(function(t){return Tn(e,t)}))})),this.$watch("exclude",(function(e){Sn(t,(function(t){return!Tn(e,t)}))}))},render:function(){var t=this.$slots.default,e=Qe(t),n=e&&e.componentOptions;if(n){var r=kn(n),o=this.include,i=this.exclude;if(o&&(!r||!Tn(o,r))||i&&r&&Tn(i,r))return e;var s=this.cache,a=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;s[c]?(e.componentInstance=s[c].componentInstance,v(a,c),a.push(c)):(s[c]=e,a.push(c),this.max&&a.length>parseInt(this.max)&&_n(s,a[0],a,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return U}};Object.defineProperty(t,"config",e),t.util={warn:ct,extend:M,mergeOptions:Lt,defineReactive:Tt},t.set=St,t.delete=_t,t.nextTick=ee,t.observable=function(t){return kt(t),t},t.options=Object.create(null),D.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,M(t.options.components,jn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=_(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Lt(this.options,t),this}}(t),En(t),function(t){D.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(wn),Object.defineProperty(wn.prototype,"$isServer",{get:rt}),Object.defineProperty(wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wn,"FunctionalRenderContext",{value:Be}),wn.version="2.6.12";var Pn=A("style,class"),Bn=A("input,textarea,option,select,progress"),Nn=A("contenteditable,draggable,spellcheck"),In=A("events,caret,typing,plaintext-only"),On=A("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Ln="http://www.w3.org/1999/xlink",Dn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Fn=function(t){return Dn(t)?t.slice(6,t.length):""},Un=function(t){return null==t||!1===t};function Rn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=zn(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=zn(e,n.data));return function(t,e){if(i(t)||i(e))return Gn(t,$n(e));return""}(e.staticClass,e.class)}function zn(t,e){return{staticClass:Gn(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Gn(t,e){return t?e?t+" "+e:t:e||""}function $n(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r<o;r++)i(e=$n(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):c(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var Qn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Hn=A("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Yn=A("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Vn=function(t){return Hn(t)||Yn(t)};var Wn=Object.create(null);var Zn=A("text,number,password,search,email,tel,url");var Jn=Object.freeze({createElement:function(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n},createElementNS:function(t,e){return document.createElementNS(Qn[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setStyleScope:function(t,e){t.setAttribute(e,"")}}),qn={create:function(t,e){Xn(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Xn(t,!0),Xn(e))},destroy:function(t){Xn(t,!0)}};function Xn(t,e){var n=t.data.ref;if(i(n)){var r=t.context,o=t.componentInstance||t.elm,s=r.$refs;e?Array.isArray(s[n])?v(s[n],o):s[n]===o&&(s[n]=void 0):t.data.refInFor?Array.isArray(s[n])?s[n].indexOf(o)<0&&s[n].push(o):s[n]=[o]:s[n]=o}}var Kn=new ft("",{},[]),tr=["create","activate","update","remove","destroy"];function er(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&i(t.data)===i(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=i(n=t.data)&&i(n=n.attrs)&&n.type,o=i(n=e.data)&&i(n=n.attrs)&&n.type;return r===o||Zn(r)&&Zn(o)}(t,e)||s(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&o(e.asyncFactory.error))}function nr(t,e,n){var r,o,s={};for(r=e;r<=n;++r)i(o=t[r].key)&&(s[o]=r);return s}var rr={create:or,update:or,destroy:function(t){or(t,Kn)}};function or(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,o,i=t===Kn,s=e===Kn,a=sr(t.data.directives,t.context),c=sr(e.data.directives,e.context),l=[],u=[];for(n in c)r=a[n],o=c[n],r?(o.oldValue=r.value,o.oldArg=r.arg,cr(o,"update",e,t),o.def&&o.def.componentUpdated&&u.push(o)):(cr(o,"bind",e,t),o.def&&o.def.inserted&&l.push(o));if(l.length){var m=function(){for(var n=0;n<l.length;n++)cr(l[n],"inserted",e,t)};i?ae(e,"insert",m):m()}u.length&&ae(e,"postpatch",(function(){for(var n=0;n<u.length;n++)cr(u[n],"componentUpdated",e,t)}));if(!i)for(n in a)c[n]||cr(a[n],"unbind",t,t,s)}(t,e)}var ir=Object.create(null);function sr(t,e){var n,r,o=Object.create(null);if(!t)return o;for(n=0;n<t.length;n++)(r=t[n]).modifiers||(r.modifiers=ir),o[ar(r)]=r,r.def=Dt(e.$options,"directives",r.name);return o}function ar(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{}).join(".")}function cr(t,e,n,r,o){var i=t.def&&t.def[e];if(i)try{i(n.elm,t,n,r,o)}catch(r){Gt(r,n.context,"directive "+t.name+" "+e+" hook")}}var lr=[qn,rr];function ur(t,e){var n=e.componentOptions;if(!(i(n)&&!1===n.Ctor.options.inheritAttrs||o(t.data.attrs)&&o(e.data.attrs))){var r,s,a=e.elm,c=t.data.attrs||{},l=e.data.attrs||{};for(r in i(l.__ob__)&&(l=e.data.attrs=M({},l)),l)s=l[r],c[r]!==s&&mr(a,r,s);for(r in(Z||q)&&l.value!==c.value&&mr(a,"value",l.value),c)o(l[r])&&(Dn(r)?a.removeAttributeNS(Ln,Fn(r)):Nn(r)||a.removeAttribute(r))}}function mr(t,e,n){t.tagName.indexOf("-")>-1?pr(t,e,n):On(e)?Un(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Nn(e)?t.setAttribute(e,function(t,e){return Un(e)||"false"===e?"false":"contenteditable"===t&&In(e)?e:"true"}(e,n)):Dn(e)?Un(n)?t.removeAttributeNS(Ln,Fn(e)):t.setAttributeNS(Ln,e,n):pr(t,e,n)}function pr(t,e,n){if(Un(n))t.removeAttribute(e);else{if(Z&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var dr={create:ur,update:ur};function fr(t,e){var n=e.elm,r=e.data,s=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(s)||o(s.staticClass)&&o(s.class)))){var a=Rn(e),c=n._transitionClasses;i(c)&&(a=Gn(a,$n(c))),a!==n._prevClass&&(n.setAttribute("class",a),n._prevClass=a)}}var gr,Ar={create:fr,update:fr};function hr(t,e,n){var r=gr;return function o(){var i=e.apply(null,arguments);null!==i&&yr(t,o,n,r)}}var vr=Vt&&!(K&&Number(K[1])<=53);function br(t,e,n,r){if(vr){var o=an,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}gr.addEventListener(t,e,et?{capture:n,passive:r}:n)}function yr(t,e,n,r){(r||gr).removeEventListener(t,e._wrapper||e,n)}function xr(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};gr=e.elm,function(t){if(i(t.__r)){var e=Z?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}i(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),se(n,r,br,yr,hr,e.context),gr=void 0}}var Cr,wr={create:xr,update:xr};function Er(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,s=e.elm,a=t.data.domProps||{},c=e.data.domProps||{};for(n in i(c.__ob__)&&(c=e.data.domProps=M({},c)),a)n in c||(s[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===a[n])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if("value"===n&&"PROGRESS"!==s.tagName){s._value=r;var l=o(r)?"":String(r);kr(s,l)&&(s.value=l)}else if("innerHTML"===n&&Yn(s.tagName)&&o(s.innerHTML)){(Cr=Cr||document.createElement("div")).innerHTML="<svg>"+r+"</svg>";for(var u=Cr.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;u.firstChild;)s.appendChild(u.firstChild)}else if(r!==a[n])try{s[n]=r}catch(t){}}}}function kr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return g(n)!==g(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Tr={create:Er,update:Er},Sr=x((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function _r(t){var e=Mr(t.style);return t.staticStyle?M(t.staticStyle,e):e}function Mr(t){return Array.isArray(t)?j(t):"string"==typeof t?Sr(t):t}var jr,Pr=/^--/,Br=/\s*!important$/,Nr=function(t,e,n){if(Pr.test(e))t.style.setProperty(e,n);else if(Br.test(n))t.style.setProperty(T(e),n.replace(Br,""),"important");else{var r=Or(e);if(Array.isArray(n))for(var o=0,i=n.length;o<i;o++)t.style[r]=n[o];else t.style[r]=n}},Ir=["Webkit","Moz","ms"],Or=x((function(t){if(jr=jr||document.createElement("div").style,"filter"!==(t=w(t))&&t in jr)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<Ir.length;n++){var r=Ir[n]+e;if(r in jr)return r}}));function Lr(t,e){var n=e.data,r=t.data;if(!(o(n.staticStyle)&&o(n.style)&&o(r.staticStyle)&&o(r.style))){var s,a,c=e.elm,l=r.staticStyle,u=r.normalizedStyle||r.style||{},m=l||u,p=Mr(e.data.style)||{};e.data.normalizedStyle=i(p.__ob__)?M({},p):p;var d=function(t,e){var n,r={};if(e)for(var o=t;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(n=_r(o.data))&&M(r,n);(n=_r(t.data))&&M(r,n);for(var i=t;i=i.parent;)i.data&&(n=_r(i.data))&&M(r,n);return r}(e,!0);for(a in m)o(d[a])&&Nr(c,a,"");for(a in d)(s=d[a])!==m[a]&&Nr(c,a,null==s?"":s)}}var Dr={create:Lr,update:Lr},Fr=/\s+/;function Ur(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Fr).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Rr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Fr).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function zr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&M(e,Gr(t.name||"v")),M(e,t),e}return"string"==typeof t?Gr(t):void 0}}var Gr=x((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),$r=H&&!J,Qr="transition",Hr="transitionend",Yr="animation",Vr="animationend";$r&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Qr="WebkitTransition",Hr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Yr="WebkitAnimation",Vr="webkitAnimationEnd"));var Wr=H?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Zr(t){Wr((function(){Wr(t)}))}function Jr(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Ur(t,e))}function qr(t,e){t._transitionClasses&&v(t._transitionClasses,e),Rr(t,e)}function Xr(t,e,n){var r=to(t,e),o=r.type,i=r.timeout,s=r.propCount;if(!o)return n();var a="transition"===o?Hr:Vr,c=0,l=function(){t.removeEventListener(a,u),n()},u=function(e){e.target===t&&++c>=s&&l()};setTimeout((function(){c<s&&l()}),i+1),t.addEventListener(a,u)}var Kr=/\b(transform|all)(,|$)/;function to(t,e){var n,r=window.getComputedStyle(t),o=(r[Qr+"Delay"]||"").split(", "),i=(r[Qr+"Duration"]||"").split(", "),s=eo(o,i),a=(r[Yr+"Delay"]||"").split(", "),c=(r[Yr+"Duration"]||"").split(", "),l=eo(a,c),u=0,m=0;return"transition"===e?s>0&&(n="transition",u=s,m=i.length):"animation"===e?l>0&&(n="animation",u=l,m=c.length):m=(n=(u=Math.max(s,l))>0?s>l?"transition":"animation":null)?"transition"===n?i.length:c.length:0,{type:n,timeout:u,propCount:m,hasTransform:"transition"===n&&Kr.test(r[Qr+"Property"])}}function eo(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map((function(e,n){return no(e)+no(t[n])})))}function no(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function ro(t,e){var n=t.elm;i(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=zr(t.data.transition);if(!o(r)&&!i(n._enterCb)&&1===n.nodeType){for(var s=r.css,a=r.type,l=r.enterClass,u=r.enterToClass,m=r.enterActiveClass,p=r.appearClass,d=r.appearToClass,f=r.appearActiveClass,A=r.beforeEnter,h=r.enter,v=r.afterEnter,b=r.enterCancelled,y=r.beforeAppear,x=r.appear,C=r.afterAppear,w=r.appearCancelled,E=r.duration,k=Ze,T=Ze.$vnode;T&&T.parent;)k=T.context,T=T.parent;var S=!k._isMounted||!t.isRootInsert;if(!S||x||""===x){var _=S&&p?p:l,M=S&&f?f:m,j=S&&d?d:u,P=S&&y||A,B=S&&"function"==typeof x?x:h,N=S&&C||v,I=S&&w||b,O=g(c(E)?E.enter:E);0;var D=!1!==s&&!J,F=so(B),U=n._enterCb=L((function(){D&&(qr(n,j),qr(n,M)),U.cancelled?(D&&qr(n,_),I&&I(n)):N&&N(n),n._enterCb=null}));t.data.show||ae(t,"insert",(function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),B&&B(n,U)})),P&&P(n),D&&(Jr(n,_),Jr(n,M),Zr((function(){qr(n,_),U.cancelled||(Jr(n,j),F||(io(O)?setTimeout(U,O):Xr(n,a,U)))}))),t.data.show&&(e&&e(),B&&B(n,U)),D||F||U()}}}function oo(t,e){var n=t.elm;i(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=zr(t.data.transition);if(o(r)||1!==n.nodeType)return e();if(!i(n._leaveCb)){var s=r.css,a=r.type,l=r.leaveClass,u=r.leaveToClass,m=r.leaveActiveClass,p=r.beforeLeave,d=r.leave,f=r.afterLeave,A=r.leaveCancelled,h=r.delayLeave,v=r.duration,b=!1!==s&&!J,y=so(d),x=g(c(v)?v.leave:v);0;var C=n._leaveCb=L((function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),b&&(qr(n,u),qr(n,m)),C.cancelled?(b&&qr(n,l),A&&A(n)):(e(),f&&f(n)),n._leaveCb=null}));h?h(w):w()}function w(){C.cancelled||(!t.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),p&&p(n),b&&(Jr(n,l),Jr(n,m),Zr((function(){qr(n,l),C.cancelled||(Jr(n,u),y||(io(x)?setTimeout(C,x):Xr(n,a,C)))}))),d&&d(n,C),b||y||C())}}function io(t){return"number"==typeof t&&!isNaN(t)}function so(t){if(o(t))return!1;var e=t.fns;return i(e)?so(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function ao(t,e){!0!==e.data.show&&ro(e)}var co=function(t){var e,n,r={},c=t.modules,l=t.nodeOps;for(e=0;e<tr.length;++e)for(r[tr[e]]=[],n=0;n<c.length;++n)i(c[n][tr[e]])&&r[tr[e]].push(c[n][tr[e]]);function u(t){var e=l.parentNode(t);i(e)&&l.removeChild(e,t)}function m(t,e,n,o,a,c,u){if(i(t.elm)&&i(c)&&(t=c[u]=vt(t)),t.isRootInsert=!a,!function(t,e,n,o){var a=t.data;if(i(a)){var c=i(t.componentInstance)&&a.keepAlive;if(i(a=a.hook)&&i(a=a.init)&&a(t,!1),i(t.componentInstance))return p(t,e),d(n,t.elm,o),s(c)&&function(t,e,n,o){var s,a=t;for(;a.componentInstance;)if(a=a.componentInstance._vnode,i(s=a.data)&&i(s=s.transition)){for(s=0;s<r.activate.length;++s)r.activate[s](Kn,a);e.push(a);break}d(n,t.elm,o)}(t,e,n,o),!0}}(t,e,n,o)){var m=t.data,g=t.children,A=t.tag;i(A)?(t.elm=t.ns?l.createElementNS(t.ns,A):l.createElement(A,t),v(t),f(t,g,e),i(m)&&h(t,e),d(n,t.elm,o)):s(t.isComment)?(t.elm=l.createComment(t.text),d(n,t.elm,o)):(t.elm=l.createTextNode(t.text),d(n,t.elm,o))}}function p(t,e){i(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,g(t)?(h(t,e),v(t)):(Xn(t),e.push(t))}function d(t,e,n){i(t)&&(i(n)?l.parentNode(n)===t&&l.insertBefore(t,e,n):l.appendChild(t,e))}function f(t,e,n){if(Array.isArray(e)){0;for(var r=0;r<e.length;++r)m(e[r],n,t.elm,null,!0,e,r)}else a(t.text)&&l.appendChild(t.elm,l.createTextNode(String(t.text)))}function g(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return i(t.tag)}function h(t,n){for(var o=0;o<r.create.length;++o)r.create[o](Kn,t);i(e=t.data.hook)&&(i(e.create)&&e.create(Kn,t),i(e.insert)&&n.push(t))}function v(t){var e;if(i(e=t.fnScopeId))l.setStyleScope(t.elm,e);else for(var n=t;n;)i(e=n.context)&&i(e=e.$options._scopeId)&&l.setStyleScope(t.elm,e),n=n.parent;i(e=Ze)&&e!==t.context&&e!==t.fnContext&&i(e=e.$options._scopeId)&&l.setStyleScope(t.elm,e)}function b(t,e,n,r,o,i){for(;r<=o;++r)m(n[r],i,t,e,!1,n,r)}function y(t){var e,n,o=t.data;if(i(o))for(i(e=o.hook)&&i(e=e.destroy)&&e(t),e=0;e<r.destroy.length;++e)r.destroy[e](t);if(i(e=t.children))for(n=0;n<t.children.length;++n)y(t.children[n])}function x(t,e,n){for(;e<=n;++e){var r=t[e];i(r)&&(i(r.tag)?(C(r),y(r)):u(r.elm))}}function C(t,e){if(i(e)||i(t.data)){var n,o=r.remove.length+1;for(i(e)?e.listeners+=o:e=function(t,e){function n(){0==--n.listeners&&u(t)}return n.listeners=e,n}(t.elm,o),i(n=t.componentInstance)&&i(n=n._vnode)&&i(n.data)&&C(n,e),n=0;n<r.remove.length;++n)r.remove[n](t,e);i(n=t.data.hook)&&i(n=n.remove)?n(t,e):e()}else u(t.elm)}function w(t,e,n,r){for(var o=n;o<r;o++){var s=e[o];if(i(s)&&er(t,s))return o}}function E(t,e,n,a,c,u){if(t!==e){i(e.elm)&&i(a)&&(e=a[c]=vt(e));var p=e.elm=t.elm;if(s(t.isAsyncPlaceholder))i(e.asyncFactory.resolved)?S(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(s(e.isStatic)&&s(t.isStatic)&&e.key===t.key&&(s(e.isCloned)||s(e.isOnce)))e.componentInstance=t.componentInstance;else{var d,f=e.data;i(f)&&i(d=f.hook)&&i(d=d.prepatch)&&d(t,e);var A=t.children,h=e.children;if(i(f)&&g(e)){for(d=0;d<r.update.length;++d)r.update[d](t,e);i(d=f.hook)&&i(d=d.update)&&d(t,e)}o(e.text)?i(A)&&i(h)?A!==h&&function(t,e,n,r,s){var a,c,u,p=0,d=0,f=e.length-1,g=e[0],A=e[f],h=n.length-1,v=n[0],y=n[h],C=!s;for(0;p<=f&&d<=h;)o(g)?g=e[++p]:o(A)?A=e[--f]:er(g,v)?(E(g,v,r,n,d),g=e[++p],v=n[++d]):er(A,y)?(E(A,y,r,n,h),A=e[--f],y=n[--h]):er(g,y)?(E(g,y,r,n,h),C&&l.insertBefore(t,g.elm,l.nextSibling(A.elm)),g=e[++p],y=n[--h]):er(A,v)?(E(A,v,r,n,d),C&&l.insertBefore(t,A.elm,g.elm),A=e[--f],v=n[++d]):(o(a)&&(a=nr(e,p,f)),o(c=i(v.key)?a[v.key]:w(v,e,p,f))?m(v,r,t,g.elm,!1,n,d):er(u=e[c],v)?(E(u,v,r,n,d),e[c]=void 0,C&&l.insertBefore(t,u.elm,g.elm)):m(v,r,t,g.elm,!1,n,d),v=n[++d]);p>f?b(t,o(n[h+1])?null:n[h+1].elm,n,d,h,r):d>h&&x(e,p,f)}(p,A,h,n,u):i(h)?(i(t.text)&&l.setTextContent(p,""),b(p,null,h,0,h.length-1,n)):i(A)?x(A,0,A.length-1):i(t.text)&&l.setTextContent(p,""):t.text!==e.text&&l.setTextContent(p,e.text),i(f)&&i(d=f.hook)&&i(d=d.postpatch)&&d(t,e)}}}function k(t,e,n){if(s(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r<e.length;++r)e[r].data.hook.insert(e[r])}var T=A("attrs,class,staticClass,staticStyle,key");function S(t,e,n,r){var o,a=e.tag,c=e.data,l=e.children;if(r=r||c&&c.pre,e.elm=t,s(e.isComment)&&i(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(i(c)&&(i(o=c.hook)&&i(o=o.init)&&o(e,!0),i(o=e.componentInstance)))return p(e,n),!0;if(i(a)){if(i(l))if(t.hasChildNodes())if(i(o=c)&&i(o=o.domProps)&&i(o=o.innerHTML)){if(o!==t.innerHTML)return!1}else{for(var u=!0,m=t.firstChild,d=0;d<l.length;d++){if(!m||!S(m,l[d],n,r)){u=!1;break}m=m.nextSibling}if(!u||m)return!1}else f(e,l,n);if(i(c)){var g=!1;for(var A in c)if(!T(A)){g=!0,h(e,n);break}!g&&c.class&&re(c.class)}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,a){if(!o(e)){var c,u=!1,p=[];if(o(t))u=!0,m(e,p);else{var d=i(t.nodeType);if(!d&&er(t,e))E(t,e,p,null,null,a);else{if(d){if(1===t.nodeType&&t.hasAttribute("data-server-rendered")&&(t.removeAttribute("data-server-rendered"),n=!0),s(n)&&S(t,e,p))return k(e,p,!0),t;c=t,t=new ft(l.tagName(c).toLowerCase(),{},[],void 0,c)}var f=t.elm,A=l.parentNode(f);if(m(e,p,f._leaveCb?null:A,l.nextSibling(f)),i(e.parent))for(var h=e.parent,v=g(e);h;){for(var b=0;b<r.destroy.length;++b)r.destroy[b](h);if(h.elm=e.elm,v){for(var C=0;C<r.create.length;++C)r.create[C](Kn,h);var w=h.data.hook.insert;if(w.merged)for(var T=1;T<w.fns.length;T++)w.fns[T]()}else Xn(h);h=h.parent}i(A)?x([t],0,0):i(t.tag)&&y(t)}}return k(e,p,u),e.elm}i(t)&&y(t)}}({nodeOps:Jn,modules:[dr,Ar,wr,Tr,Dr,H?{create:ao,activate:ao,remove:function(t,e){!0!==t.data.show?oo(t,e):e()}}:{}].concat(lr)});J&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&ho(t,"input")}));var lo={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?ae(n,"postpatch",(function(){lo.componentUpdated(t,e,n)})):uo(t,e,n.context),t._vOptions=[].map.call(t.options,fo)):("textarea"===n.tag||Zn(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",go),t.addEventListener("compositionend",Ao),t.addEventListener("change",Ao),J&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){uo(t,e,n.context);var r=t._vOptions,o=t._vOptions=[].map.call(t.options,fo);if(o.some((function(t,e){return!I(t,r[e])})))(t.multiple?e.value.some((function(t){return po(t,o)})):e.value!==e.oldValue&&po(e.value,o))&&ho(t,"change")}}};function uo(t,e,n){mo(t,e,n),(Z||q)&&setTimeout((function(){mo(t,e,n)}),0)}function mo(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){for(var i,s,a=0,c=t.options.length;a<c;a++)if(s=t.options[a],o)i=O(r,fo(s))>-1,s.selected!==i&&(s.selected=i);else if(I(fo(s),r))return void(t.selectedIndex!==a&&(t.selectedIndex=a));o||(t.selectedIndex=-1)}}function po(t,e){return e.every((function(e){return!I(e,t)}))}function fo(t){return"_value"in t?t._value:t.value}function go(t){t.target.composing=!0}function Ao(t){t.target.composing&&(t.target.composing=!1,ho(t.target,"input"))}function ho(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function vo(t){return!t.componentInstance||t.data&&t.data.transition?t:vo(t.componentInstance._vnode)}var bo={model:lo,show:{bind:function(t,e,n){var r=e.value,o=(n=vo(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,ro(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=vo(n)).data&&n.data.transition?(n.data.show=!0,r?ro(n,(function(){t.style.display=t.__vOriginalDisplay})):oo(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},yo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function xo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?xo(Qe(e.children)):t}function Co(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[w(i)]=o[i];return e}function wo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Eo=function(t){return t.tag||$e(t)},ko=function(t){return"show"===t.name},To={name:"transition",props:yo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Eo)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=xo(o);if(!i)return o;if(this._leaving)return wo(t,o);var s="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?s+"comment":s+i.tag:a(i.key)?0===String(i.key).indexOf(s)?i.key:s+i.key:i.key;var c=(i.data||(i.data={})).transition=Co(this),l=this._vnode,u=xo(l);if(i.data.directives&&i.data.directives.some(ko)&&(i.data.show=!0),u&&u.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,u)&&!$e(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var m=u.data.transition=M({},c);if("out-in"===r)return this._leaving=!0,ae(m,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),wo(t,o);if("in-out"===r){if($e(i))return l;var p,d=function(){p()};ae(c,"afterEnter",d),ae(c,"enterCancelled",d),ae(m,"delayLeave",(function(t){p=t}))}}return o}}},So=M({tag:String,moveClass:String},yo);function _o(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Mo(t){t.data.newPos=t.elm.getBoundingClientRect()}function jo(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete So.mode;var Po={Transition:To,TransitionGroup:{props:So,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],s=Co(this),a=0;a<o.length;a++){var c=o[a];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf("__vlist"))i.push(c),n[c.key]=c,(c.data||(c.data={})).transition=s;else;}if(r){for(var l=[],u=[],m=0;m<r.length;m++){var p=r[m];p.data.transition=s,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?l.push(p):u.push(p)}this.kept=t(e,null,l),this.removed=u}return t(e,null,i)},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(_o),t.forEach(Mo),t.forEach(jo),this._reflow=document.body.offsetHeight,t.forEach((function(t){if(t.data.moved){var n=t.elm,r=n.style;Jr(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Hr,n._moveCb=function t(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Hr,t),n._moveCb=null,qr(n,e))})}})))},methods:{hasMove:function(t,e){if(!$r)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach((function(t){Rr(n,t)})),Ur(n,e),n.style.display="none",this.$el.appendChild(n);var r=to(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};wn.config.mustUseProp=function(t,e,n){return"value"===n&&Bn(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},wn.config.isReservedTag=Vn,wn.config.isReservedAttr=Pn,wn.config.getTagNamespace=function(t){return Yn(t)?"svg":"math"===t?"math":void 0},wn.config.isUnknownElement=function(t){if(!H)return!0;if(Vn(t))return!1;if(t=t.toLowerCase(),null!=Wn[t])return Wn[t];var e=document.createElement(t);return t.indexOf("-")>-1?Wn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Wn[t]=/HTMLUnknownElement/.test(e.toString())},M(wn.options.directives,bo),M(wn.options.components,Po),wn.prototype.__patch__=H?co:P,wn.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=At),Ke(t,"beforeMount"),r=function(){t._update(t._render(),n)},new pn(t,r,P,{before:function(){t._isMounted&&!t._isDestroyed&&Ke(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,Ke(t,"mounted")),t}(this,t=t&&H?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},H&&setTimeout((function(){U.devtools&&ot&&ot.emit("init",wn)}),0),e.default=wn}.call(this,n(17),n(197).setImmediate)},function(t,e,n){"use strict";n.r(e),function(t){n.d(e,"VClosePopover",(function(){return ur})),n.d(e,"VPopover",(function(){return mr})),n.d(e,"VTooltip",(function(){return lr})),n.d(e,"createTooltip",(function(){return tn})),n.d(e,"destroyTooltip",(function(){return en})),n.d(e,"install",(function(){return cr}));var r=n(113),o=n(186);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function s(t){return(s="function"==typeof Symbol&&"symbol"===i(Symbol.iterator)?function(t){return i(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":i(t)})(t)}function a(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function c(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?l(Object(n),!0).forEach((function(e){c(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var m=function(){};function p(t){return"string"==typeof t&&(t=t.split(" ")),t}function d(t,e){var n,r=p(e);n=t.className instanceof m?p(t.className.baseVal):p(t.className),r.forEach((function(t){-1===n.indexOf(t)&&n.push(t)})),t instanceof SVGElement?t.setAttribute("class",n.join(" ")):t.className=n.join(" ")}function f(t,e){var n,r=p(e);n=t.className instanceof m?p(t.className.baseVal):p(t.className),r.forEach((function(t){var e=n.indexOf(t);-1!==e&&n.splice(e,1)})),t instanceof SVGElement?t.setAttribute("class",n.join(" ")):t.className=n.join(" ")}"undefined"!=typeof window&&(m=window.SVGAnimatedString);var g=!1;if("undefined"!=typeof window){g=!1;try{var A=Object.defineProperty({},"passive",{get:function(){g=!0}});window.addEventListener("test",null,A)}catch(t){}}var h=function(){this.__data__=[],this.size=0};var v=function(t,e){return t===e||t!=t&&e!=e};var b=function(t,e){for(var n=t.length;n--;)if(v(t[n][0],e))return n;return-1},y=Array.prototype.splice;var x=function(t){var e=this.__data__,n=b(e,t);return!(n<0)&&(n==e.length-1?e.pop():y.call(e,n,1),--this.size,!0)};var C=function(t){var e=this.__data__,n=b(e,t);return n<0?void 0:e[n][1]};var w=function(t){return b(this.__data__,t)>-1};var E=function(t,e){var n=this.__data__,r=b(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this};function k(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}k.prototype.clear=h,k.prototype.delete=x,k.prototype.get=C,k.prototype.has=w,k.prototype.set=E;var T=k;var S=function(){this.__data__=new T,this.size=0};var _=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n};var M=function(t){return this.__data__.get(t)};var j=function(t){return this.__data__.has(t)},P="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{};function B(t,e){return t(e={exports:{}},e.exports),e.exports}var N="object"==i(P)&&P&&P.Object===Object&&P,I="object"==("undefined"==typeof self?"undefined":i(self))&&self&&self.Object===Object&&self,O=N||I||Function("return this")(),L=O.Symbol,D=Object.prototype,F=D.hasOwnProperty,U=D.toString,R=L?L.toStringTag:void 0;var z=function(t){var e=F.call(t,R),n=t[R];try{t[R]=void 0;var r=!0}catch(t){}var o=U.call(t);return r&&(e?t[R]=n:delete t[R]),o},G=Object.prototype.toString;var $=function(t){return G.call(t)},Q=L?L.toStringTag:void 0;var H=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Q&&Q in Object(t)?z(t):$(t)};var Y=function(t){var e=i(t);return null!=t&&("object"==e||"function"==e)};var V,W=function(t){if(!Y(t))return!1;var e=H(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},Z=O["__core-js_shared__"],J=(V=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+V:"";var q=function(t){return!!J&&J in t},X=Function.prototype.toString;var K=function(t){if(null!=t){try{return X.call(t)}catch(t){}try{return t+""}catch(t){}}return""},tt=/^\[object .+?Constructor\]$/,et=Function.prototype,nt=Object.prototype,rt=et.toString,ot=nt.hasOwnProperty,it=RegExp("^"+rt.call(ot).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var st=function(t){return!(!Y(t)||q(t))&&(W(t)?it:tt).test(K(t))};var at=function(t,e){return null==t?void 0:t[e]};var ct=function(t,e){var n=at(t,e);return st(n)?n:void 0},lt=ct(O,"Map"),ut=ct(Object,"create");var mt=function(){this.__data__=ut?ut(null):{},this.size=0};var pt=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},dt=Object.prototype.hasOwnProperty;var ft=function(t){var e=this.__data__;if(ut){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return dt.call(e,t)?e[t]:void 0},gt=Object.prototype.hasOwnProperty;var At=function(t){var e=this.__data__;return ut?void 0!==e[t]:gt.call(e,t)};var ht=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=ut&&void 0===e?"__lodash_hash_undefined__":e,this};function vt(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}vt.prototype.clear=mt,vt.prototype.delete=pt,vt.prototype.get=ft,vt.prototype.has=At,vt.prototype.set=ht;var bt=vt;var yt=function(){this.size=0,this.__data__={"hash":new bt,"map":new(lt||T),"string":new bt}};var xt=function(t){var e=i(t);return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var Ct=function(t,e){var n=t.__data__;return xt(e)?n["string"==typeof e?"string":"hash"]:n.map};var wt=function(t){var e=Ct(this,t).delete(t);return this.size-=e?1:0,e};var Et=function(t){return Ct(this,t).get(t)};var kt=function(t){return Ct(this,t).has(t)};var Tt=function(t,e){var n=Ct(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this};function St(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}St.prototype.clear=yt,St.prototype.delete=wt,St.prototype.get=Et,St.prototype.has=kt,St.prototype.set=Tt;var _t=St;var Mt=function(t,e){var n=this.__data__;if(n instanceof T){var r=n.__data__;if(!lt||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new _t(r)}return n.set(t,e),this.size=n.size,this};function jt(t){var e=this.__data__=new T(t);this.size=e.size}jt.prototype.clear=S,jt.prototype.delete=_,jt.prototype.get=M,jt.prototype.has=j,jt.prototype.set=Mt;var Pt=jt;var Bt=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};var Nt=function(t){return this.__data__.has(t)};function It(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new _t;++e<n;)this.add(t[e])}It.prototype.add=It.prototype.push=Bt,It.prototype.has=Nt;var Ot=It;var Lt=function(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1};var Dt=function(t,e){return t.has(e)};var Ft=function(t,e,n,r,o,i){var s=1&n,a=t.length,c=e.length;if(a!=c&&!(s&&c>a))return!1;var l=i.get(t);if(l&&i.get(e))return l==e;var u=-1,m=!0,p=2&n?new Ot:void 0;for(i.set(t,e),i.set(e,t);++u<a;){var d=t[u],f=e[u];if(r)var g=s?r(f,d,u,e,t,i):r(d,f,u,t,e,i);if(void 0!==g){if(g)continue;m=!1;break}if(p){if(!Lt(e,(function(t,e){if(!Dt(p,e)&&(d===t||o(d,t,n,r,i)))return p.push(e)}))){m=!1;break}}else if(d!==f&&!o(d,f,n,r,i)){m=!1;break}}return i.delete(t),i.delete(e),m},Ut=O.Uint8Array;var Rt=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n};var zt=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n},Gt=L?L.prototype:void 0,$t=Gt?Gt.valueOf:void 0;var Qt=function(t,e,n,r,o,i,s){switch(n){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!i(new Ut(t),new Ut(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return v(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var a=Rt;case"[object Set]":var c=1&r;if(a||(a=zt),t.size!=e.size&&!c)return!1;var l=s.get(t);if(l)return l==e;r|=2,s.set(t,e);var u=Ft(a(t),a(e),r,o,i,s);return s.delete(t),u;case"[object Symbol]":if($t)return $t.call(t)==$t.call(e)}return!1};var Ht=function(t,e){for(var n=-1,r=e.length,o=t.length;++n<r;)t[o+n]=e[n];return t},Yt=Array.isArray;var Vt=function(t,e,n){var r=e(t);return Yt(t)?r:Ht(r,n(t))};var Wt=function(t,e){for(var n=-1,r=null==t?0:t.length,o=0,i=[];++n<r;){var s=t[n];e(s,n,t)&&(i[o++]=s)}return i};var Zt=function(){return[]},Jt=Object.prototype.propertyIsEnumerable,qt=Object.getOwnPropertySymbols,Xt=qt?function(t){return null==t?[]:(t=Object(t),Wt(qt(t),(function(e){return Jt.call(t,e)})))}:Zt;var Kt=function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r};var te=function(t){return null!=t&&"object"==i(t)};var ee=function(t){return te(t)&&"[object Arguments]"==H(t)},ne=Object.prototype,re=ne.hasOwnProperty,oe=ne.propertyIsEnumerable,ie=ee(function(){return arguments}())?ee:function(t){return te(t)&&re.call(t,"callee")&&!oe.call(t,"callee")};var se=function(){return!1},ae=B((function(t,e){var n=e&&!e.nodeType&&e,r=n&&t&&!t.nodeType&&t,o=r&&r.exports===n?O.Buffer:void 0,i=(o?o.isBuffer:void 0)||se;t.exports=i})),ce=/^(?:0|[1-9]\d*)$/;var le=function(t,e){var n=i(t);return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&ce.test(t))&&t>-1&&t%1==0&&t<e};var ue=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991},me={};me["[object Float32Array]"]=me["[object Float64Array]"]=me["[object Int8Array]"]=me["[object Int16Array]"]=me["[object Int32Array]"]=me["[object Uint8Array]"]=me["[object Uint8ClampedArray]"]=me["[object Uint16Array]"]=me["[object Uint32Array]"]=!0,me["[object Arguments]"]=me["[object Array]"]=me["[object ArrayBuffer]"]=me["[object Boolean]"]=me["[object DataView]"]=me["[object Date]"]=me["[object Error]"]=me["[object Function]"]=me["[object Map]"]=me["[object Number]"]=me["[object Object]"]=me["[object RegExp]"]=me["[object Set]"]=me["[object String]"]=me["[object WeakMap]"]=!1;var pe=function(t){return te(t)&&ue(t.length)&&!!me[H(t)]};var de=function(t){return function(e){return t(e)}},fe=B((function(t,e){var n=e&&!e.nodeType&&e,r=n&&t&&!t.nodeType&&t,o=r&&r.exports===n&&N.process,i=function(){try{var t=r&&r.require&&r.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=i})),ge=fe&&fe.isTypedArray,Ae=ge?de(ge):pe,he=Object.prototype.hasOwnProperty;var ve=function(t,e){var n=Yt(t),r=!n&&ie(t),o=!n&&!r&&ae(t),i=!n&&!r&&!o&&Ae(t),s=n||r||o||i,a=s?Kt(t.length,String):[],c=a.length;for(var l in t)!e&&!he.call(t,l)||s&&("length"==l||o&&("offset"==l||"parent"==l)||i&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||le(l,c))||a.push(l);return a},be=Object.prototype;var ye=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||be)};var xe=function(t,e){return function(n){return t(e(n))}},Ce=xe(Object.keys,Object),we=Object.prototype.hasOwnProperty;var Ee=function(t){if(!ye(t))return Ce(t);var e=[];for(var n in Object(t))we.call(t,n)&&"constructor"!=n&&e.push(n);return e};var ke=function(t){return null!=t&&ue(t.length)&&!W(t)};var Te=function(t){return ke(t)?ve(t):Ee(t)};var Se=function(t){return Vt(t,Te,Xt)},_e=Object.prototype.hasOwnProperty;var Me=function(t,e,n,r,o,i){var s=1&n,a=Se(t),c=a.length;if(c!=Se(e).length&&!s)return!1;for(var l=c;l--;){var u=a[l];if(!(s?u in e:_e.call(e,u)))return!1}var m=i.get(t);if(m&&i.get(e))return m==e;var p=!0;i.set(t,e),i.set(e,t);for(var d=s;++l<c;){var f=t[u=a[l]],g=e[u];if(r)var A=s?r(g,f,u,e,t,i):r(f,g,u,t,e,i);if(!(void 0===A?f===g||o(f,g,n,r,i):A)){p=!1;break}d||(d="constructor"==u)}if(p&&!d){var h=t.constructor,v=e.constructor;h==v||!("constructor"in t)||!("constructor"in e)||"function"==typeof h&&h instanceof h&&"function"==typeof v&&v instanceof v||(p=!1)}return i.delete(t),i.delete(e),p},je=ct(O,"DataView"),Pe=ct(O,"Promise"),Be=ct(O,"Set"),Ne=ct(O,"WeakMap"),Ie=K(je),Oe=K(lt),Le=K(Pe),De=K(Be),Fe=K(Ne),Ue=H;(je&&"[object DataView]"!=Ue(new je(new ArrayBuffer(1)))||lt&&"[object Map]"!=Ue(new lt)||Pe&&"[object Promise]"!=Ue(Pe.resolve())||Be&&"[object Set]"!=Ue(new Be)||Ne&&"[object WeakMap]"!=Ue(new Ne))&&(Ue=function(t){var e=H(t),n="[object Object]"==e?t.constructor:void 0,r=n?K(n):"";if(r)switch(r){case Ie:return"[object DataView]";case Oe:return"[object Map]";case Le:return"[object Promise]";case De:return"[object Set]";case Fe:return"[object WeakMap]"}return e});var Re=Ue,ze=Object.prototype.hasOwnProperty;var Ge=function(t,e,n,r,o,i){var s=Yt(t),a=Yt(e),c=s?"[object Array]":Re(t),l=a?"[object Array]":Re(e),u="[object Object]"==(c="[object Arguments]"==c?"[object Object]":c),m="[object Object]"==(l="[object Arguments]"==l?"[object Object]":l),p=c==l;if(p&&ae(t)){if(!ae(e))return!1;s=!0,u=!1}if(p&&!u)return i||(i=new Pt),s||Ae(t)?Ft(t,e,n,r,o,i):Qt(t,e,c,n,r,o,i);if(!(1&n)){var d=u&&ze.call(t,"__wrapped__"),f=m&&ze.call(e,"__wrapped__");if(d||f){var g=d?t.value():t,A=f?e.value():e;return i||(i=new Pt),o(g,A,n,r,i)}}return!!p&&(i||(i=new Pt),Me(t,e,n,r,o,i))};var $e=function t(e,n,r,o,i){return e===n||(null==e||null==n||!te(e)&&!te(n)?e!=e&&n!=n:Ge(e,n,r,o,t,i))};var Qe=function(t,e){return $e(t,e)},He={container:!1,delay:0,html:!1,placement:"top",title:"",template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",offset:0},Ye=[],Ve=function(){function t(e,n){var r=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),c(this,"_events",[]),c(this,"_setTooltipNodeEvent",(function(t,e,n,o){var i=t.relatedreference||t.toElement||t.relatedTarget;return!!r._tooltipNode.contains(i)&&(r._tooltipNode.addEventListener(t.type,(function n(i){var s=i.relatedreference||i.toElement||i.relatedTarget;r._tooltipNode.removeEventListener(t.type,n),e.contains(s)||r._scheduleHide(e,o.delay,o,i)})),!0)})),n=u({},He,{},n),e.jquery&&(e=e[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=e,this.options=n,this._isOpen=!1,this._init()}var e,n,o;return e=t,(n=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(t){this._classes=t}},{key:"setContent",value:function(t){this.options.title=t,this._tooltipNode&&this._setContent(t,this.options)}},{key:"setOptions",value:function(t){var e=!1,n=t&&t.classes||rn.options.defaultClass;Qe(this._classes,n)||(this.setClasses(n),e=!0),t=qe(t);var r=!1,o=!1;for(var i in this.options.offset===t.offset&&this.options.placement===t.placement||(r=!0),(this.options.template!==t.template||this.options.trigger!==t.trigger||this.options.container!==t.container||e)&&(o=!0),t)this.options[i]=t[i];if(this._tooltipNode)if(o){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else r&&this.popperInstance.update()}},{key:"_init",value:function(){var t="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===t.indexOf("manual"),t=t.filter((function(t){return-1!==["click","hover","focus"].indexOf(t)})),this._setEventListeners(this.reference,t,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(t,e){var n=window.document.createElement("div");n.innerHTML=e.trim();var r=n.childNodes[0];return r.id="tooltip_".concat(Math.random().toString(36).substr(2,10)),r.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(r.addEventListener("mouseenter",this.hide),r.addEventListener("click",this.hide)),r}},{key:"_setContent",value:function(t,e){var n=this;this.asyncContent=!1,this._applyContent(t,e).then((function(){n.popperInstance.update()}))}},{key:"_applyContent",value:function(t,e){var n=this;return new Promise((function(r,o){var i=e.html,s=n._tooltipNode;if(s){var a=s.querySelector(n.options.innerSelector);if(1===t.nodeType){if(i){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(t)}}else{if("function"==typeof t){var c=t();return void(c&&"function"==typeof c.then?(n.asyncContent=!0,e.loadingClass&&d(s,e.loadingClass),e.loadingContent&&n._applyContent(e.loadingContent,e),c.then((function(t){return e.loadingClass&&f(s,e.loadingClass),n._applyContent(t,e)})).then(r).catch(o)):n._applyContent(c,e).then(r).catch(o))}i?a.innerHTML=t:a.innerText=t}r()}}))}},{key:"_show",value:function(t,e){if(!e||"string"!=typeof e.container||document.querySelector(e.container)){clearTimeout(this._disposeTimer),delete(e=Object.assign({},e)).offset;var n=!0;this._tooltipNode&&(d(this._tooltipNode,this._classes),n=!1);var r=this._ensureShown(t,e);return n&&this._tooltipNode&&d(this._tooltipNode,this._classes),d(t,["v-tooltip-open"]),r}}},{key:"_ensureShown",value:function(t,e){var n=this;if(this._isOpen)return this;if(this._isOpen=!0,Ye.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(e.title,e),this;var o=t.getAttribute("title")||e.title;if(!o)return this;var i=this._create(t,e.template);this._tooltipNode=i,t.setAttribute("aria-describedby",i.id);var s=this._findContainer(e.container,t);this._append(i,s);var a=u({},e.popperOptions,{placement:e.placement});return a.modifiers=u({},a.modifiers,{arrow:{element:this.options.arrowSelector}}),e.boundariesElement&&(a.modifiers.preventOverflow={boundariesElement:e.boundariesElement}),this.popperInstance=new r.a(t,i,a),this._setContent(o,e),requestAnimationFrame((function(){!n._isDisposed&&n.popperInstance?(n.popperInstance.update(),requestAnimationFrame((function(){n._isDisposed?n.dispose():n._isOpen&&i.setAttribute("aria-hidden","false")}))):n.dispose()})),this}},{key:"_noLongerOpen",value:function(){var t=Ye.indexOf(this);-1!==t&&Ye.splice(t,1)}},{key:"_hide",value:function(){var t=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var e=rn.options.disposeTimeout;return null!==e&&(this._disposeTimer=setTimeout((function(){t._tooltipNode&&(t._tooltipNode.removeEventListener("mouseenter",t.hide),t._tooltipNode.removeEventListener("click",t.hide),t._removeTooltipNode())}),e)),f(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var t=this._tooltipNode.parentNode;t&&(t.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var t=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach((function(e){var n=e.func,r=e.event;t.reference.removeEventListener(r,n)})),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(t,e){return"string"==typeof t?t=window.document.querySelector(t):!1===t&&(t=e.parentNode),t}},{key:"_append",value:function(t,e){e.appendChild(t)}},{key:"_setEventListeners",value:function(t,e,n){var r=this,o=[],i=[];e.forEach((function(t){switch(t){case"hover":o.push("mouseenter"),i.push("mouseleave"),r.options.hideOnTargetClick&&i.push("click");break;case"focus":o.push("focus"),i.push("blur"),r.options.hideOnTargetClick&&i.push("click");break;case"click":o.push("click"),i.push("click")}})),o.forEach((function(e){var o=function(e){!0!==r._isOpen&&(e.usedByTooltip=!0,r._scheduleShow(t,n.delay,n,e))};r._events.push({event:e,func:o}),t.addEventListener(e,o)})),i.forEach((function(e){var o=function(e){!0!==e.usedByTooltip&&r._scheduleHide(t,n.delay,n,e)};r._events.push({event:e,func:o}),t.addEventListener(e,o)}))}},{key:"_onDocumentTouch",value:function(t){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,t)}},{key:"_scheduleShow",value:function(t,e,n){var r=this,o=e&&e.show||e||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout((function(){return r._show(t,n)}),o)}},{key:"_scheduleHide",value:function(t,e,n,r){var o=this,i=e&&e.hide||e||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout((function(){if(!1!==o._isOpen&&o._tooltipNode.ownerDocument.body.contains(o._tooltipNode)){if("mouseleave"===r.type&&o._setTooltipNodeEvent(r,t,e,n))return;o._hide(t,n)}}),i)}}])&&a(e.prototype,n),o&&a(e,o),t}();"undefined"!=typeof document&&document.addEventListener("touchstart",(function(t){for(var e=0;e<Ye.length;e++)Ye[e]._onDocumentTouch(t)}),!g||{passive:!0,capture:!0});var We={enabled:!0},Ze=["top","top-start","top-end","right","right-start","right-end","bottom","bottom-start","bottom-end","left","left-start","left-end"],Je={defaultPlacement:"top",defaultClass:"vue-tooltip-theme",defaultTargetClass:"has-tooltip",defaultHtml:!0,defaultTemplate:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function qe(t){var e={placement:void 0!==t.placement?t.placement:rn.options.defaultPlacement,delay:void 0!==t.delay?t.delay:rn.options.defaultDelay,html:void 0!==t.html?t.html:rn.options.defaultHtml,template:void 0!==t.template?t.template:rn.options.defaultTemplate,arrowSelector:void 0!==t.arrowSelector?t.arrowSelector:rn.options.defaultArrowSelector,innerSelector:void 0!==t.innerSelector?t.innerSelector:rn.options.defaultInnerSelector,trigger:void 0!==t.trigger?t.trigger:rn.options.defaultTrigger,offset:void 0!==t.offset?t.offset:rn.options.defaultOffset,container:void 0!==t.container?t.container:rn.options.defaultContainer,boundariesElement:void 0!==t.boundariesElement?t.boundariesElement:rn.options.defaultBoundariesElement,autoHide:void 0!==t.autoHide?t.autoHide:rn.options.autoHide,hideOnTargetClick:void 0!==t.hideOnTargetClick?t.hideOnTargetClick:rn.options.defaultHideOnTargetClick,loadingClass:void 0!==t.loadingClass?t.loadingClass:rn.options.defaultLoadingClass,loadingContent:void 0!==t.loadingContent?t.loadingContent:rn.options.defaultLoadingContent,popperOptions:u({},void 0!==t.popperOptions?t.popperOptions:rn.options.defaultPopperOptions)};if(e.offset){var n=s(e.offset),r=e.offset;("number"===n||"string"===n&&-1===r.indexOf(","))&&(r="0, ".concat(r)),e.popperOptions.modifiers||(e.popperOptions.modifiers={}),e.popperOptions.modifiers.offset={offset:r}}return e.trigger&&-1!==e.trigger.indexOf("click")&&(e.hideOnTargetClick=!1),e}function Xe(t,e){for(var n=t.placement,r=0;r<Ze.length;r++){var o=Ze[r];e[o]&&(n=o)}return n}function Ke(t){var e=s(t);return"string"===e?t:!(!t||"object"!==e)&&t.content}function tn(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Ke(e),o=void 0!==e.classes?e.classes:rn.options.defaultClass,i=u({title:r},qe(u({},e,{placement:Xe(e,n)}))),s=t._tooltip=new Ve(t,i);s.setClasses(o),s._vueEl=t;var a=void 0!==e.targetClasses?e.targetClasses:rn.options.defaultTargetClass;return t._tooltipTargetClasses=a,d(t,a),s}function en(t){t._tooltip&&(t._tooltip.dispose(),delete t._tooltip,delete t._tooltipOldShow),t._tooltipTargetClasses&&(f(t,t._tooltipTargetClasses),delete t._tooltipTargetClasses)}function nn(t,e){var n,r=e.value,o=(e.oldValue,e.modifiers),i=Ke(r);i&&We.enabled?(t._tooltip?((n=t._tooltip).setContent(i),n.setOptions(u({},r,{placement:Xe(r,o)}))):n=tn(t,r,o),void 0!==r.show&&r.show!==t._tooltipOldShow&&(t._tooltipOldShow=r.show,r.show?n.show():n.hide())):en(t)}var rn={options:Je,bind:nn,update:nn,unbind:function(t){en(t)}};function on(t){t.addEventListener("click",an),t.addEventListener("touchstart",cn,!!g&&{passive:!0})}function sn(t){t.removeEventListener("click",an),t.removeEventListener("touchstart",cn),t.removeEventListener("touchend",ln),t.removeEventListener("touchcancel",un)}function an(t){var e=t.currentTarget;t.closePopover=!e.$_vclosepopover_touch,t.closeAllPopover=e.$_closePopoverModifiers&&!!e.$_closePopoverModifiers.all}function cn(t){if(1===t.changedTouches.length){var e=t.currentTarget;e.$_vclosepopover_touch=!0;var n=t.changedTouches[0];e.$_vclosepopover_touchPoint=n,e.addEventListener("touchend",ln),e.addEventListener("touchcancel",un)}}function ln(t){var e=t.currentTarget;if(e.$_vclosepopover_touch=!1,1===t.changedTouches.length){var n=t.changedTouches[0],r=e.$_vclosepopover_touchPoint;t.closePopover=Math.abs(n.screenY-r.screenY)<20&&Math.abs(n.screenX-r.screenX)<20,t.closeAllPopover=e.$_closePopoverModifiers&&!!e.$_closePopoverModifiers.all}}function un(t){t.currentTarget.$_vclosepopover_touch=!1}var mn={bind:function(t,e){var n=e.value,r=e.modifiers;t.$_closePopoverModifiers=r,(void 0===n||n)&&on(t)},update:function(t,e){var n=e.value,r=e.oldValue,o=e.modifiers;t.$_closePopoverModifiers=o,n!==r&&(void 0===n||n?on(t):sn(t))},unbind:function(t){sn(t)}};function pn(t){var e=rn.options.popover[t];return void 0===e?rn.options[t]:e}var dn=!1;"undefined"!=typeof window&&"undefined"!=typeof navigator&&(dn=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);var fn=[],gn=function(){};"undefined"!=typeof window&&(gn=window.Element);var An={name:"VPopover",components:{ResizeObserver:o.a},props:{open:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placement:{type:String,default:function(){return pn("defaultPlacement")}},delay:{type:[String,Number,Object],default:function(){return pn("defaultDelay")}},offset:{type:[String,Number],default:function(){return pn("defaultOffset")}},trigger:{type:String,default:function(){return pn("defaultTrigger")}},container:{type:[String,Object,gn,Boolean],default:function(){return pn("defaultContainer")}},boundariesElement:{type:[String,gn],default:function(){return pn("defaultBoundariesElement")}},popperOptions:{type:Object,default:function(){return pn("defaultPopperOptions")}},popoverClass:{type:[String,Array],default:function(){return pn("defaultClass")}},popoverBaseClass:{type:[String,Array],default:function(){return rn.options.popover.defaultBaseClass}},popoverInnerClass:{type:[String,Array],default:function(){return rn.options.popover.defaultInnerClass}},popoverWrapperClass:{type:[String,Array],default:function(){return rn.options.popover.defaultWrapperClass}},popoverArrowClass:{type:[String,Array],default:function(){return rn.options.popover.defaultArrowClass}},autoHide:{type:Boolean,default:function(){return rn.options.popover.defaultAutoHide}},handleResize:{type:Boolean,default:function(){return rn.options.popover.defaultHandleResize}},openGroup:{type:String,default:null},openClass:{type:[String,Array],default:function(){return rn.options.popover.defaultOpenClass}}},data:function(){return{isOpen:!1,id:Math.random().toString(36).substr(2,10)}},computed:{cssClass:function(){return c({},this.openClass,this.isOpen)},popoverId:function(){return"popover_".concat(this.id)}},watch:{open:function(t){t?this.show():this.hide()},disabled:function(t,e){t!==e&&(t?this.hide():this.open&&this.show())},container:function(t){if(this.isOpen&&this.popperInstance){var e=this.$refs.popover,n=this.$refs.trigger,r=this.$_findContainer(this.container,n);if(!r)return void console.warn("No container for popover",this);r.appendChild(e),this.popperInstance.scheduleUpdate()}},trigger:function(t){this.$_removeEventListeners(),this.$_addEventListeners()},placement:function(t){var e=this;this.$_updatePopper((function(){e.popperInstance.options.placement=t}))},offset:"$_restartPopper",boundariesElement:"$_restartPopper",popperOptions:{handler:"$_restartPopper",deep:!0}},created:function(){this.$_isDisposed=!1,this.$_mounted=!1,this.$_events=[],this.$_preventOpen=!1},mounted:function(){var t=this.$refs.popover;t.parentNode&&t.parentNode.removeChild(t),this.$_init(),this.open&&this.show()},deactivated:function(){this.hide()},beforeDestroy:function(){this.dispose()},methods:{show:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.event,r=(e.skipDelay,e.force),o=void 0!==r&&r;!o&&this.disabled||(this.$_scheduleShow(n),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame((function(){t.$_beingShowed=!1}))},hide:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.event;t.skipDelay;this.$_scheduleHide(e),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var t=this.$refs.popover;t.parentNode&&t.parentNode.removeChild(t)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var t=this,e=this.$refs.trigger,n=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var o=this.$_findContainer(this.container,e);if(!o)return void console.warn("No container for popover",this);o.appendChild(n),this.$_mounted=!0}if(!this.popperInstance){var i=u({},this.popperOptions,{placement:this.placement});if(i.modifiers=u({},i.modifiers,{arrow:u({},i.modifiers&&i.modifiers.arrow,{element:this.$refs.arrow})}),this.offset){var s=this.$_getOffset();i.modifiers.offset=u({},i.modifiers&&i.modifiers.offset,{offset:s})}this.boundariesElement&&(i.modifiers.preventOverflow=u({},i.modifiers&&i.modifiers.preventOverflow,{boundariesElement:this.boundariesElement})),this.popperInstance=new r.a(e,n,i),requestAnimationFrame((function(){if(t.hidden)return t.hidden=!1,void t.$_hide();!t.$_isDisposed&&t.popperInstance?(t.popperInstance.scheduleUpdate(),requestAnimationFrame((function(){if(t.hidden)return t.hidden=!1,void t.$_hide();t.$_isDisposed?t.dispose():t.isOpen=!0}))):t.dispose()}))}var a=this.openGroup;if(a)for(var c,l=0;l<fn.length;l++)(c=fn[l]).openGroup!==a&&(c.hide(),c.$emit("close-group"));fn.push(this),this.$emit("apply-show")}},$_hide:function(){var t=this;if(this.isOpen){var e=fn.indexOf(this);-1!==e&&fn.splice(e,1),this.isOpen=!1,this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this.$_disposeTimer);var n=rn.options.popover.disposeTimeout||rn.options.disposeTimeout;null!==n&&(this.$_disposeTimer=setTimeout((function(){var e=t.$refs.popover;e&&(e.parentNode&&e.parentNode.removeChild(e),t.$_mounted=!1)}),n)),this.$emit("apply-hide")}},$_findContainer:function(t,e){return"string"==typeof t?t=window.document.querySelector(t):!1===t&&(t=e.parentNode),t},$_getOffset:function(){var t=s(this.offset),e=this.offset;return("number"===t||"string"===t&&-1===e.indexOf(","))&&(e="0, ".concat(e)),e},$_addEventListeners:function(){var t=this,e=this.$refs.trigger,n=[],r=[];("string"==typeof this.trigger?this.trigger.split(" ").filter((function(t){return-1!==["click","hover","focus"].indexOf(t)})):[]).forEach((function(t){switch(t){case"hover":n.push("mouseenter"),r.push("mouseleave");break;case"focus":n.push("focus"),r.push("blur");break;case"click":n.push("click"),r.push("click")}})),n.forEach((function(n){var r=function(e){t.isOpen||(e.usedByTooltip=!0,!t.$_preventOpen&&t.show({event:e}),t.hidden=!1)};t.$_events.push({event:n,func:r}),e.addEventListener(n,r)})),r.forEach((function(n){var r=function(e){e.usedByTooltip||(t.hide({event:e}),t.hidden=!0)};t.$_events.push({event:n,func:r}),e.addEventListener(n,r)}))},$_scheduleShow:function(){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),t)this.$_show();else{var e=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),e)}},$_scheduleHide:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),n)this.$_hide();else{var r=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout((function(){if(t.isOpen){if(e&&"mouseleave"===e.type)if(t.$_setTooltipNodeEvent(e))return;t.$_hide()}}),r)}},$_setTooltipNodeEvent:function(t){var e=this,n=this.$refs.trigger,r=this.$refs.popover,o=t.relatedreference||t.toElement||t.relatedTarget;return!!r.contains(o)&&(r.addEventListener(t.type,(function o(i){var s=i.relatedreference||i.toElement||i.relatedTarget;r.removeEventListener(t.type,o),n.contains(s)||e.hide({event:i})})),!0)},$_removeEventListeners:function(){var t=this.$refs.trigger;this.$_events.forEach((function(e){var n=e.func,r=e.event;t.removeEventListener(r,n)})),this.$_events=[]},$_updatePopper:function(t){this.popperInstance&&(t(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var t=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),t&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),n&&(this.$_preventOpen=!0,setTimeout((function(){e.$_preventOpen=!1}),300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function hn(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(n){var r=fn[n];if(r.$refs.popover){var o=r.$refs.popover.contains(t.target);requestAnimationFrame((function(){(t.closeAllPopover||t.closePopover&&o||r.autoHide&&!o)&&r.$_handleGlobalClose(t,e)}))}},r=0;r<fn.length;r++)n(r)}"undefined"!=typeof document&&"undefined"!=typeof window&&(dn?document.addEventListener("touchend",(function(t){hn(t,!0)}),!g||{passive:!0,capture:!0}):window.addEventListener("click",(function(t){hn(t)}),!0));var vn=An,bn=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"v-popover",class:t.cssClass},[n("div",{ref:"trigger",staticClass:"trigger",staticStyle:{display:"inline-block"},attrs:{"aria-describedby":t.popoverId,tabindex:-1!==t.trigger.indexOf("focus")?0:void 0}},[t._t("default")],2),t._v(" "),n("div",{ref:"popover",class:[t.popoverBaseClass,t.popoverClass,t.cssClass],style:{visibility:t.isOpen?"visible":"hidden"},attrs:{id:t.popoverId,"aria-hidden":t.isOpen?"false":"true",tabindex:t.autoHide?0:void 0},on:{keyup:function(e){if(!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"]))return null;t.autoHide&&t.hide()}}},[n("div",{class:t.popoverWrapperClass},[n("div",{ref:"inner",class:t.popoverInnerClass,staticStyle:{position:"relative"}},[n("div",[t._t("popover")],2),t._v(" "),t.handleResize?n("ResizeObserver",{on:{notify:t.$_handleResize}}):t._e()],1),t._v(" "),n("div",{ref:"arrow",class:t.popoverArrowClass})])])])};bn._withStripped=!0;var yn=function(t,e,n,r,o,i,s,a,c,l){"boolean"!=typeof s&&(c=a,a=s,s=!1);var u,m="function"==typeof n?n.options:n;if(t&&t.render&&(m.render=t.render,m.staticRenderFns=t.staticRenderFns,m._compiled=!0,o&&(m.functional=!0)),r&&(m._scopeId=r),i?(u=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__),e&&e.call(this,c(t)),t&&t._registeredComponents&&t._registeredComponents.add(i)},m._ssrRegister=u):e&&(u=s?function(t){e.call(this,l(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,a(t))}),u)if(m.functional){var p=m.render;m.render=function(t,e){return u.call(e),p(t,e)}}else{var d=m.beforeCreate;m.beforeCreate=d?[].concat(d,u):[u]}return n}({render:bn,staticRenderFns:[]},void 0,vn,void 0,!1,void 0,!1,void 0,void 0,void 0),xn=function(){try{var t=ct(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();var Cn=function(t,e,n){"__proto__"==e&&xn?xn(t,e,{"configurable":!0,"enumerable":!0,"value":n,"writable":!0}):t[e]=n};var wn=function(t,e,n){(void 0!==n&&!v(t[e],n)||void 0===n&&!(e in t))&&Cn(t,e,n)};var En=function(t){return function(e,n,r){for(var o=-1,i=Object(e),s=r(e),a=s.length;a--;){var c=s[t?a:++o];if(!1===n(i[c],c,i))break}return e}}(),kn=B((function(t,e){var n=e&&!e.nodeType&&e,r=n&&t&&!t.nodeType&&t,o=r&&r.exports===n?O.Buffer:void 0,i=o?o.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,r=i?i(n):new t.constructor(n);return t.copy(r),r}}));var Tn=function(t){var e=new t.constructor(t.byteLength);return new Ut(e).set(new Ut(t)),e};var Sn=function(t,e){var n=e?Tn(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)};var _n=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e},Mn=Object.create,jn=function(){function t(){}return function(e){if(!Y(e))return{};if(Mn)return Mn(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}(),Pn=xe(Object.getPrototypeOf,Object);var Bn=function(t){return"function"!=typeof t.constructor||ye(t)?{}:jn(Pn(t))};var Nn=function(t){return te(t)&&ke(t)},In=Function.prototype,On=Object.prototype,Ln=In.toString,Dn=On.hasOwnProperty,Fn=Ln.call(Object);var Un=function(t){if(!te(t)||"[object Object]"!=H(t))return!1;var e=Pn(t);if(null===e)return!0;var n=Dn.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Ln.call(n)==Fn};var Rn=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]},zn=Object.prototype.hasOwnProperty;var Gn=function(t,e,n){var r=t[e];zn.call(t,e)&&v(r,n)&&(void 0!==n||e in t)||Cn(t,e,n)};var $n=function(t,e,n,r){var o=!n;n||(n={});for(var i=-1,s=e.length;++i<s;){var a=e[i],c=r?r(n[a],t[a],a,n,t):void 0;void 0===c&&(c=t[a]),o?Cn(n,a,c):Gn(n,a,c)}return n};var Qn=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e},Hn=Object.prototype.hasOwnProperty;var Yn=function(t){if(!Y(t))return Qn(t);var e=ye(t),n=[];for(var r in t)("constructor"!=r||!e&&Hn.call(t,r))&&n.push(r);return n};var Vn=function(t){return ke(t)?ve(t,!0):Yn(t)};var Wn=function(t){return $n(t,Vn(t))};var Zn=function(t,e,n,r,o,i,s){var a=Rn(t,n),c=Rn(e,n),l=s.get(c);if(l)wn(t,n,l);else{var u=i?i(a,c,n+"",t,e,s):void 0,m=void 0===u;if(m){var p=Yt(c),d=!p&&ae(c),f=!p&&!d&&Ae(c);u=c,p||d||f?Yt(a)?u=a:Nn(a)?u=_n(a):d?(m=!1,u=kn(c,!0)):f?(m=!1,u=Sn(c,!0)):u=[]:Un(c)||ie(c)?(u=a,ie(a)?u=Wn(a):Y(a)&&!W(a)||(u=Bn(c))):m=!1}m&&(s.set(c,u),o(u,c,r,i,s),s.delete(c)),wn(t,n,u)}};var Jn=function t(e,n,r,o,i){e!==n&&En(n,(function(s,a){if(i||(i=new Pt),Y(s))Zn(e,n,a,r,t,o,i);else{var c=o?o(Rn(e,a),s,a+"",e,n,i):void 0;void 0===c&&(c=s),wn(e,a,c)}}),Vn)};var qn=function(t){return t};var Xn=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)},Kn=Math.max;var tr=function(t,e,n){return e=Kn(void 0===e?t.length-1:e,0),function(){for(var r=arguments,o=-1,i=Kn(r.length-e,0),s=Array(i);++o<i;)s[o]=r[e+o];o=-1;for(var a=Array(e+1);++o<e;)a[o]=r[o];return a[e]=n(s),Xn(t,this,a)}};var er=function(t){return function(){return t}},nr=xn?function(t,e){return xn(t,"toString",{"configurable":!0,"enumerable":!1,"value":er(e),"writable":!0})}:qn,rr=Date.now;var or=function(t){var e=0,n=0;return function(){var r=rr(),o=16-(r-n);if(n=r,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(nr);var ir=function(t,e){return or(tr(t,e,qn),t+"")};var sr=function(t,e,n){if(!Y(n))return!1;var r=i(e);return!!("number"==r?ke(n)&&le(e,n.length):"string"==r&&e in n)&&v(n[e],t)};var ar=function(t){return ir((function(e,n){var r=-1,o=n.length,i=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,s&&sr(n[0],n[1],s)&&(i=o<3?void 0:i,o=1),e=Object(e);++r<o;){var a=n[r];a&&t(e,a,r,i)}return e}))}((function(t,e,n){Jn(t,e,n)}));function cr(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!cr.installed){cr.installed=!0;var n={};ar(n,Je,e),pr.options=n,rn.options=n,t.directive("tooltip",rn),t.directive("close-popover",mn),t.component("v-popover",yn)}}!function(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}(".resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}");var lr=rn,ur=mn,mr=yn,pr={install:cr,get enabled(){return We.enabled},set enabled(t){We.enabled=t}},dr=null;"undefined"!=typeof window?dr=window.Vue:void 0!==t&&(dr=t.Vue),dr&&dr.use(pr),e.default=pr}.call(this,n(17))},function(t,e,n){"use strict";var r,o=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},i=function(){var t={};return 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(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n<s.length;n++)if(s[n].identifier===t){e=n;break}return e}function c(t,e){for(var n={},r=[],o=0;o<t.length;o++){var i=t[o],c=e.base?i[0]+e.base:i[0],l=n[c]||0,u="".concat(c," ").concat(l);n[c]=l+1;var m=a(u),p={css:i[1],media:i[2],sourceMap:i[3]};-1!==m?(s[m].references++,s[m].updater(p)):s.push({identifier:u,updater:A(p,e),references:1}),r.push(u)}return r}function l(t){var e=document.createElement("style"),r=t.attributes||{};if(void 0===r.nonce){var o=n.nc;o&&(r.nonce=o)}if(Object.keys(r).forEach((function(t){e.setAttribute(t,r[t])})),"function"==typeof t.insert)t.insert(e);else{var s=i(t.insert||"head");if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(e)}return e}var u,m=(u=[],function(t,e){return u[t]=e,u.filter(Boolean).join("\n")});function p(t,e,n,r){var o=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(t.styleSheet)t.styleSheet.cssText=m(e,o);else{var i=document.createTextNode(o),s=t.childNodes;s[e]&&t.removeChild(s[e]),s.length?t.insertBefore(i,s[e]):t.appendChild(i)}}function d(t,e,n){var r=n.css,o=n.media,i=n.sourceMap;if(o?t.setAttribute("media",o):t.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var f=null,g=0;function A(t,e){var n,r,o;if(e.singleton){var i=g++;n=f||(f=l(e)),r=p.bind(null,n,i,!1),o=p.bind(null,n,i,!0)}else n=l(e),r=d.bind(null,n,e),o=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)};return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=o());var n=c(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var r=0;r<n.length;r++){var o=a(n[r]);s[o].references--}for(var i=c(t,e),l=0;l<n.length;l++){var u=a(n[l]);0===s[u].references&&(s[u].updater(),s.splice(u,1))}n=i}}}},function(t,e,n){"use strict";function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=t[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}t.exports=function(t){var e=r(t,4),n=e[1],o=e[3];if("function"==typeof btoa){var i=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),a="/*# ".concat(s," */"),c=o.sources.map((function(t){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(t," */")}));return[n].concat(c).concat([a]).join("\n")}return[n].join("\n")}},function(t,e,n){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,r){"string"==typeof t&&(t=[[null,t,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(o[s]=!0)}for(var a=0;a<t.length;a++){var c=[].concat(t[a]);r&&o[c[0]]||(n&&(c[2]?c[2]="".concat(n," and ").concat(c[2]):c[2]=n),e.push(c))}},e}},function(t,e,n){"use strict";var r=n(0),o=n(79).indexOf,i=n(49),s=n(24),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,l=i("indexOf"),u=s("indexOf",{ACCESSORS:!0,1:0});r({target:"Array",proto:!0,forced:c||!l||!u},{indexOf:function(t){return c?a.apply(this,arguments)||0:o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},function(t,e,n){var r=n(1),o=n(6),i=r.document,s=o(i)&&o(i.createElement);t.exports=function(t){return s?i.createElement(t):{}}},function(t,e,n){var r=n(1),o=n(14);t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},function(t,e,n){var r=n(77),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},function(t,e,n){var r=n(1),o=n(75),i=r["__core-js_shared__"]||o("__core-js_shared__",{});t.exports=i},function(t,e,n){var r=n(22),o=n(77);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.8.3",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var r=n(13),o=n(10),i=n(80),s=function(t){return function(e,n,s){var a,c=r(e),l=o(c.length),u=i(s,l);if(t&&n!=n){for(;l>u;)if((a=c[u++])!=a)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}},function(t,e,n){var r=n(36),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r={};r[n(3)("toStringTag")]="z",t.exports="[object z]"===String(r)},function(t,e,n){var r=n(2);t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},function(t,e,n){var r=n(83),o=n(21),i=n(3)("toStringTag"),s="Arguments"==o(function(){return arguments}());t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:s?o(e):"Object"==(r=o(e))&&"function"==typeof e.callee?"Arguments":r}},function(t,e,n){"use strict";var r=n(4);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){"use strict";var r=n(55).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},function(t,e,n){var r=n(3),o=n(30),i=n(8),s=r("unscopables"),a=Array.prototype;null==a[s]&&i.f(a,s,{configurable:!0,value:o(null)}),t.exports=function(t){a[s][t]=!0}},function(t,e,n){"use strict";var r=n(0),o=n(127),i=n(129),s=n(130),a=n(25),c=n(14),l=n(9),u=n(3),m=n(22),p=n(41),d=n(128),f=d.IteratorPrototype,g=d.BUGGY_SAFARI_ITERATORS,A=u("iterator"),h=function(){return this};t.exports=function(t,e,n,u,d,v,b){o(n,e,u);var y,x,C,w=function(t){if(t===d&&_)return _;if(!g&&t in T)return T[t];switch(t){case"keys":case"values":case"entries":return function(){return new n(this,t)}}return function(){return new n(this)}},E=e+" Iterator",k=!1,T=t.prototype,S=T[A]||T["@@iterator"]||d&&T[d],_=!g&&S||w(d),M="Array"==e&&T.entries||S;if(M&&(y=i(M.call(new t)),f!==Object.prototype&&y.next&&(m||i(y)===f||(s?s(y,f):"function"!=typeof y[A]&&c(y,A,h)),a(y,E,!0,!0),m&&(p[E]=h))),"values"==d&&S&&"values"!==S.name&&(k=!0,_=function(){return S.call(this)}),m&&!b||T[A]===_||c(T,A,_),p[e]=_,d)if(x={values:w("values"),keys:v?_:w("keys"),entries:w("entries")},b)for(C in x)(g||k||!(C in T))&&l(T,C,x[C]);else r({target:e,proto:!0,forced:g||k},x);return x}},function(t,e,n){var r=n(1),o=n(131),i=n(40),s=n(14),a=n(3),c=a("iterator"),l=a("toStringTag"),u=i.values;for(var m in o){var p=r[m],d=p&&p.prototype;if(d){if(d[c]!==u)try{s(d,c,u)}catch(t){d[c]=u}if(d[l]||s(d,l,m),o[m])for(var f in i)if(d[f]!==i[f])try{s(d,f,i[f])}catch(t){d[f]=i[f]}}}},function(t,e,n){var r=n(9);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e){var n,r,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(t){n=i}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(t){r=s}}();var c,l=[],u=!1,m=-1;function p(){u&&c&&(u=!1,c.length?l=c.concat(l):m=-1,l.length&&d())}function d(){if(!u){var t=a(p);u=!0;for(var e=l.length;e;){for(c=l,l=[];++m<e;)c&&c[m].run();m=-1,e=l.length}c=null,u=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function f(t,e){this.fun=t,this.array=e}function g(){}o.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];l.push(new f(t,e)),1!==l.length||u||a(d)},f.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=g,o.addListener=g,o.once=g,o.off=g,o.removeListener=g,o.removeAllListeners=g,o.emit=g,o.prependListener=g,o.prependOnceListener=g,o.listeners=function(t){return[]},o.binding=function(t){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(t){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(t,e,n){var r=n(6),o=n(44),i=n(3)("species");t.exports=function(t,e){var n;return o(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},function(t,e,n){var r=n(23);t.exports=r("navigator","userAgent")||""},function(t,e,n){"use strict";var r=n(0),o=n(2),i=n(44),s=n(6),a=n(15),c=n(10),l=n(58),u=n(93),m=n(61),p=n(3),d=n(62),f=p("isConcatSpreadable"),g=d>=51||!o((function(){var t=[];return t[f]=!1,t.concat()[0]!==t})),A=m("concat"),h=function(t){if(!s(t))return!1;var e=t[f];return void 0!==e?!!e:i(t)};r({target:"Array",proto:!0,forced:!g||!A},{concat:function(t){var e,n,r,o,i,s=a(this),m=u(s,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(h(i=-1===e?s:arguments[e])){if(p+(o=c(i.length))>9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n<o;n++,p++)n in i&&l(m,p,i[n])}else{if(p>=9007199254740991)throw TypeError("Maximum allowed index exceeded");l(m,p++,i)}return m.length=p,m}})},function(t,e){var n=Number.MAX_SAFE_INTEGER||9007199254740991;t.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:n,MAX_SAFE_COMPONENT_LENGTH:16}},function(t,e,n){"use strict";var r=n(0),o=n(142);r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},function(t,e,n){var r=n(4),o=n(136),i=n(10),s=n(26),a=n(59),c=n(135),l=function(t,e){this.stopped=t,this.result=e};t.exports=function(t,e,n){var u,m,p,d,f,g,A,h=n&&n.that,v=!(!n||!n.AS_ENTRIES),b=!(!n||!n.IS_ITERATOR),y=!(!n||!n.INTERRUPTED),x=s(e,h,1+v+y),C=function(t){return u&&c(u),new l(!0,t)},w=function(t){return v?(r(t),y?x(t[0],t[1],C):x(t[0],t[1])):y?x(t,C):x(t)};if(b)u=t;else{if("function"!=typeof(m=a(t)))throw TypeError("Target is not iterable");if(o(m)){for(p=0,d=i(t.length);d>p;p++)if((f=w(t[p]))&&f instanceof l)return f;return new l(!1)}u=m.call(t)}for(g=u.next;!(A=g.call(u)).done;){try{f=w(A.value)}catch(t){throw c(u),t}if("object"==typeof f&&f&&f instanceof l)return f}return new l(!1)}},function(t,e,n){var r=n(3)("iterator"),o=!1;try{var i=0,s={next:function(){return{done:!!i++}},"return":function(){o=!0}};s[r]=function(){return this},Array.from(s,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(t){}return n}},function(t,e,n){var r=n(6),o=n(130);t.exports=function(t,e,n){var i,s;return o&&"function"==typeof(i=e.constructor)&&i!==n&&r(s=i.prototype)&&s!==n.prototype&&o(t,s),t}},function(t,e,n){"use strict";var r=n(23),o=n(8),i=n(3),s=n(5),a=i("species");t.exports=function(t){var e=r(t),n=o.f;s&&e&&!e[a]&&n(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){var r=n(6),o=n(21),i=n(3)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},function(t,e,n){var r=n(64),o=n(273),i=n(104),s=n(105),a=n(108),c=n(31),l=n(163),u=Object.getOwnPropertyDescriptor;e.f=r?u:function(t,e){if(t=s(t),e=a(e,!0),l)try{return u(t,e)}catch(t){}if(c(t,e))return i(!o.f.call(t,e),t[e])}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(162),o=n(107);t.exports=function(t){return r(o(t))}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(27);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(64),o=n(163),i=n(164),s=n(108),a=Object.defineProperty;e.f=r?a:function(t,e,n){if(i(t),e=s(e,!0),i(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(12),o=n(65);t.exports=function(t,e){try{o(r,t,e)}catch(n){r[t]=e}return e}},function(t,e,n){var r=n(107);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(16),o=n(46),i=n(179),s=o("species");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[s]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},function(t,e,n){"use strict";(function(t){var n="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,r=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(n&&navigator.userAgent.indexOf(t[e])>=0)return 1;return 0}();var o=n&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then((function(){e=!1,t()})))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout((function(){e=!1,t()}),r))}};function i(t){return t&&"[object Function]"==={}.toString.call(t)}function s(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function a(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function c(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=s(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+r)?t:c(a(t))}function l(t){return t&&t.referenceNode?t.referenceNode:t}var u=n&&!(!window.MSInputMethodContext||!document.documentMode),m=n&&/MSIE 10/.test(navigator.userAgent);function p(t){return 11===t?u:10===t?m:u||m}function d(t){if(!t)return document.documentElement;for(var e=p(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var r=n&&n.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===s(n,"position")?d(n):n:t?t.ownerDocument.documentElement:document.documentElement}function f(t){return null!==t.parentNode?f(t.parentNode):t}function g(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?t:e,o=n?e:t,i=document.createRange();i.setStart(r,0),i.setEnd(o,0);var s,a,c=i.commonAncestorContainer;if(t!==c&&e!==c||r.contains(o))return"BODY"===(a=(s=c).nodeName)||"HTML"!==a&&d(s.firstElementChild)!==s?d(c):c;var l=f(t);return l.host?g(l.host,e):g(t,f(e).host)}function A(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",r=t.nodeName;if("BODY"===r||"HTML"===r){var o=t.ownerDocument.documentElement,i=t.ownerDocument.scrollingElement||o;return i[n]}return t[n]}function h(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=A(e,"top"),o=A(e,"left"),i=n?-1:1;return t.top+=r*i,t.bottom+=r*i,t.left+=o*i,t.right+=o*i,t}function v(t,e){var n="x"===e?"Left":"Top",r="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+r+"Width"])}function b(t,e,n,r){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],p(10)?parseInt(n["offset"+t])+parseInt(r["margin"+("Height"===t?"Top":"Left")])+parseInt(r["margin"+("Height"===t?"Bottom":"Right")]):0)}function y(t){var e=t.body,n=t.documentElement,r=p(10)&&getComputedStyle(n);return{height:b("Height",e,n,r),width:b("Width",e,n,r)}}var x=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},C=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),w=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},E=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t};function k(t){return E({},t,{right:t.left+t.width,bottom:t.top+t.height})}function T(t){var e={};try{if(p(10)){e=t.getBoundingClientRect();var n=A(t,"top"),r=A(t,"left");e.top+=n,e.left+=r,e.bottom+=n,e.right+=r}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},i="HTML"===t.nodeName?y(t.ownerDocument):{},a=i.width||t.clientWidth||o.width,c=i.height||t.clientHeight||o.height,l=t.offsetWidth-a,u=t.offsetHeight-c;if(l||u){var m=s(t);l-=v(m,"x"),u-=v(m,"y"),o.width-=l,o.height-=u}return k(o)}function S(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=p(10),o="HTML"===e.nodeName,i=T(t),a=T(e),l=c(t),u=s(e),m=parseFloat(u.borderTopWidth),d=parseFloat(u.borderLeftWidth);n&&o&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var f=k({top:i.top-a.top-m,left:i.left-a.left-d,width:i.width,height:i.height});if(f.marginTop=0,f.marginLeft=0,!r&&o){var g=parseFloat(u.marginTop),A=parseFloat(u.marginLeft);f.top-=m-g,f.bottom-=m-g,f.left-=d-A,f.right-=d-A,f.marginTop=g,f.marginLeft=A}return(r&&!n?e.contains(l):e===l&&"BODY"!==l.nodeName)&&(f=h(f,e)),f}function _(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,r=S(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:A(n),a=e?0:A(n,"left"),c={top:s-r.top+r.marginTop,left:a-r.left+r.marginLeft,width:o,height:i};return k(c)}function M(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===s(t,"position"))return!0;var n=a(t);return!!n&&M(n)}function j(t){if(!t||!t.parentElement||p())return document.documentElement;for(var e=t.parentElement;e&&"none"===s(e,"transform");)e=e.parentElement;return e||document.documentElement}function P(t,e,n,r){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i={top:0,left:0},s=o?j(t):g(t,l(e));if("viewport"===r)i=_(s,o);else{var u=void 0;"scrollParent"===r?"BODY"===(u=c(a(e))).nodeName&&(u=t.ownerDocument.documentElement):u="window"===r?t.ownerDocument.documentElement:r;var m=S(u,s,o);if("HTML"!==u.nodeName||M(s))i=m;else{var p=y(t.ownerDocument),d=p.height,f=p.width;i.top+=m.top-m.marginTop,i.bottom=d+m.top,i.left+=m.left-m.marginLeft,i.right=f+m.left}}var A="number"==typeof(n=n||0);return i.left+=A?n:n.left||0,i.top+=A?n:n.top||0,i.right-=A?n:n.right||0,i.bottom-=A?n:n.bottom||0,i}function B(t){return t.width*t.height}function N(t,e,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=P(n,r,i,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},c=Object.keys(a).map((function(t){return E({key:t},a[t],{area:B(a[t])})})).sort((function(t,e){return e.area-t.area})),l=c.filter((function(t){var e=t.width,r=t.height;return e>=n.clientWidth&&r>=n.clientHeight})),u=l.length>0?l[0].key:c[0].key,m=t.split("-")[1];return u+(m?"-"+m:"")}function I(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=r?j(e):g(e,l(n));return S(n,o,r)}function O(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),r=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+r,height:t.offsetHeight+n}}function L(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,(function(t){return e[t]}))}function D(t,e,n){n=n.split("-")[0];var r=O(t),o={width:r.width,height:r.height},i=-1!==["right","left"].indexOf(n),s=i?"top":"left",a=i?"left":"top",c=i?"height":"width",l=i?"width":"height";return o[s]=e[s]+e[c]/2-r[c]/2,o[a]=n===a?e[a]-r[l]:e[L(a)],o}function F(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function U(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex((function(t){return t[e]===n}));var r=F(t,(function(t){return t[e]===n}));return t.indexOf(r)}(t,"name",n))).forEach((function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&i(n)&&(e.offsets.popper=k(e.offsets.popper),e.offsets.reference=k(e.offsets.reference),e=n(e,t))})),e}function R(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=I(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=N(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=D(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=U(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function z(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function G(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),r=0;r<e.length;r++){var o=e[r],i=o?""+o+n:t;if(void 0!==document.body.style[i])return i}return null}function $(){return this.state.isDestroyed=!0,z(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[G("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function Q(t){var e=t.ownerDocument;return e?e.defaultView:window}function H(t,e,n,r){n.updateBound=r,Q(t).addEventListener("resize",n.updateBound,{passive:!0});var o=c(t);return function t(e,n,r,o){var i="BODY"===e.nodeName,s=i?e.ownerDocument.defaultView:e;s.addEventListener(n,r,{passive:!0}),i||t(c(s.parentNode),n,r,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function Y(){this.state.eventsEnabled||(this.state=H(this.reference,this.options,this.state,this.scheduleUpdate))}function V(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,Q(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach((function(t){t.removeEventListener("scroll",e.updateBound)})),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function W(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function Z(t,e){Object.keys(e).forEach((function(n){var r="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&W(e[n])&&(r="px"),t.style[n]=e[n]+r}))}var J=n&&/Firefox/i.test(navigator.userAgent);function q(t,e,n){var r=F(t,(function(t){return t.name===e})),o=!!r&&t.some((function(t){return t.name===n&&t.enabled&&t.order<r.order}));if(!o){var i="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+i+" modifier in order to work, be sure to include it before "+i+"!")}return o}var X=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],K=X.slice(3);function tt(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=K.indexOf(t),r=K.slice(n+1).concat(K.slice(0,n));return e?r.reverse():r}var et="flip",nt="clockwise",rt="counterclockwise";function ot(t,e,n,r){var o=[0,0],i=-1!==["right","left"].indexOf(r),s=t.split(/(\+|\-)/).map((function(t){return t.trim()})),a=s.indexOf(F(s,(function(t){return-1!==t.search(/,|\s/)})));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,l=-1!==a?[s.slice(0,a).concat([s[a].split(c)[0]]),[s[a].split(c)[1]].concat(s.slice(a+1))]:[s];return(l=l.map((function(t,r){var o=(1===r?!i:i)?"height":"width",s=!1;return t.reduce((function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)}),[]).map((function(t){return function(t,e,n,r){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),i=+o[1],s=o[2];if(!i)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=r}return k(a)[e]/100*i}if("vh"===s||"vw"===s){return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*i}return i}(t,o,e,n)}))}))).forEach((function(t,e){t.forEach((function(n,r){W(n)&&(o[e]+=n*("-"===t[r-1]?-1:1))}))})),o}var it={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],r=e.split("-")[1];if(r){var o=t.offsets,i=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),c=a?"left":"top",l=a?"width":"height",u={start:w({},c,i[c]),end:w({},c,i[c]+i[l]-s[l])};t.offsets.popper=E({},s,u[r])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,r=t.placement,o=t.offsets,i=o.popper,s=o.reference,a=r.split("-")[0],c=void 0;return c=W(+n)?[+n,0]:ot(n,i,s,a),"left"===a?(i.top+=c[0],i.left-=c[1]):"right"===a?(i.top+=c[0],i.left+=c[1]):"top"===a?(i.left+=c[0],i.top-=c[1]):"bottom"===a&&(i.left+=c[0],i.top+=c[1]),t.popper=i,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||d(t.instance.popper);t.instance.reference===n&&(n=d(n));var r=G("transform"),o=t.instance.popper.style,i=o.top,s=o.left,a=o[r];o.top="",o.left="",o[r]="";var c=P(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=i,o.left=s,o[r]=a,e.boundaries=c;var l=e.priority,u=t.offsets.popper,m={primary:function(t){var n=u[t];return u[t]<c[t]&&!e.escapeWithReference&&(n=Math.max(u[t],c[t])),w({},t,n)},secondary:function(t){var n="right"===t?"left":"top",r=u[n];return u[t]>c[t]&&!e.escapeWithReference&&(r=Math.min(u[n],c[t]-("right"===t?u.width:u.height))),w({},n,r)}};return l.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=E({},u,m[e](t))})),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,r=e.reference,o=t.placement.split("-")[0],i=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",c=s?"left":"top",l=s?"width":"height";return n[a]<i(r[c])&&(t.offsets.popper[c]=i(r[c])-n[l]),n[c]>i(r[a])&&(t.offsets.popper[c]=i(r[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!q(t.instance.modifiers,"arrow","keepTogether"))return t;var r=e.element;if("string"==typeof r){if(!(r=t.instance.popper.querySelector(r)))return t}else if(!t.instance.popper.contains(r))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],i=t.offsets,a=i.popper,c=i.reference,l=-1!==["left","right"].indexOf(o),u=l?"height":"width",m=l?"Top":"Left",p=m.toLowerCase(),d=l?"left":"top",f=l?"bottom":"right",g=O(r)[u];c[f]-g<a[p]&&(t.offsets.popper[p]-=a[p]-(c[f]-g)),c[p]+g>a[f]&&(t.offsets.popper[p]+=c[p]+g-a[f]),t.offsets.popper=k(t.offsets.popper);var A=c[p]+c[u]/2-g/2,h=s(t.instance.popper),v=parseFloat(h["margin"+m]),b=parseFloat(h["border"+m+"Width"]),y=A-t.offsets.popper[p]-v-b;return y=Math.max(Math.min(a[u]-g,y),0),t.arrowElement=r,t.offsets.arrow=(w(n={},p,Math.round(y)),w(n,d,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(z(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=P(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),r=t.placement.split("-")[0],o=L(r),i=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case et:s=[r,o];break;case nt:s=tt(r);break;case rt:s=tt(r,!0);break;default:s=e.behavior}return s.forEach((function(a,c){if(r!==a||s.length===c+1)return t;r=t.placement.split("-")[0],o=L(r);var l=t.offsets.popper,u=t.offsets.reference,m=Math.floor,p="left"===r&&m(l.right)>m(u.left)||"right"===r&&m(l.left)<m(u.right)||"top"===r&&m(l.bottom)>m(u.top)||"bottom"===r&&m(l.top)<m(u.bottom),d=m(l.left)<m(n.left),f=m(l.right)>m(n.right),g=m(l.top)<m(n.top),A=m(l.bottom)>m(n.bottom),h="left"===r&&d||"right"===r&&f||"top"===r&&g||"bottom"===r&&A,v=-1!==["top","bottom"].indexOf(r),b=!!e.flipVariations&&(v&&"start"===i&&d||v&&"end"===i&&f||!v&&"start"===i&&g||!v&&"end"===i&&A),y=!!e.flipVariationsByContent&&(v&&"start"===i&&f||v&&"end"===i&&d||!v&&"start"===i&&A||!v&&"end"===i&&g),x=b||y;(p||h||x)&&(t.flipped=!0,(p||h)&&(r=s[c+1]),x&&(i=function(t){return"end"===t?"start":"start"===t?"end":t}(i)),t.placement=r+(i?"-"+i:""),t.offsets.popper=E({},t.offsets.popper,D(t.instance.popper,t.offsets.reference,t.placement)),t=U(t.instance.modifiers,t,"flip"))})),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],r=t.offsets,o=r.popper,i=r.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=i[n]-(a?o[s?"width":"height"]:0),t.placement=L(e),t.offsets.popper=k(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!q(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=F(t.instance.modifiers,(function(t){return"preventOverflow"===t.name})).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,r=e.y,o=t.offsets.popper,i=F(t.instance.modifiers,(function(t){return"applyStyle"===t.name})).gpuAcceleration;void 0!==i&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==i?i:e.gpuAcceleration,a=d(t.instance.popper),c=T(a),l={position:o.position},u=function(t,e){var n=t.offsets,r=n.popper,o=n.reference,i=Math.round,s=Math.floor,a=function(t){return t},c=i(o.width),l=i(r.width),u=-1!==["left","right"].indexOf(t.placement),m=-1!==t.placement.indexOf("-"),p=e?u||m||c%2==l%2?i:s:a,d=e?i:a;return{left:p(c%2==1&&l%2==1&&!m&&e?r.left-1:r.left),top:d(r.top),bottom:d(r.bottom),right:p(r.right)}}(t,window.devicePixelRatio<2||!J),m="bottom"===n?"top":"bottom",p="right"===r?"left":"right",f=G("transform"),g=void 0,A=void 0;if(A="bottom"===m?"HTML"===a.nodeName?-a.clientHeight+u.bottom:-c.height+u.bottom:u.top,g="right"===p?"HTML"===a.nodeName?-a.clientWidth+u.right:-c.width+u.right:u.left,s&&f)l[f]="translate3d("+g+"px, "+A+"px, 0)",l[m]=0,l[p]=0,l.willChange="transform";else{var h="bottom"===m?-1:1,v="right"===p?-1:1;l[m]=A*h,l[p]=g*v,l.willChange=m+", "+p}var b={"x-placement":t.placement};return t.attributes=E({},b,t.attributes),t.styles=E({},l,t.styles),t.arrowStyles=E({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return Z(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach((function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)})),t.arrowElement&&Object.keys(t.arrowStyles).length&&Z(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,r,o){var i=I(o,e,t,n.positionFixed),s=N(n.placement,i,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),Z(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},st=function(){function t(e,n){var r=this,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};x(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=o(this.update.bind(this)),this.options=E({},t.Defaults,s),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(E({},t.Defaults.modifiers,s.modifiers)).forEach((function(e){r.options.modifiers[e]=E({},t.Defaults.modifiers[e]||{},s.modifiers?s.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return E({name:t},r.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&i(t.onLoad)&&t.onLoad(r.reference,r.popper,r.options,t,r.state)})),this.update();var a=this.options.eventsEnabled;a&&this.enableEventListeners(),this.state.eventsEnabled=a}return C(t,[{key:"update",value:function(){return R.call(this)}},{key:"destroy",value:function(){return $.call(this)}},{key:"enableEventListeners",value:function(){return Y.call(this)}},{key:"disableEventListeners",value:function(){return V.call(this)}}]),t}();st.Utils=("undefined"!=typeof window?window:t).PopperUtils,st.placements=X,st.Defaults=it,e.a=st}).call(this,n(17))},function(t,e,n){"use strict";var r=n(70),o=n.n(r),i=n(71),s=n.n(i)()(o.a);s.push([t.i,"#updatenotification[data-v-b45d9efe]{margin-top:-25px;margin-bottom:200px}#updatenotification div.update[data-v-b45d9efe],#updatenotification p[data-v-b45d9efe]:not(.inlineblock){margin-bottom:25px}#updatenotification h2.inlineblock[data-v-b45d9efe]{margin-top:25px}#updatenotification h3[data-v-b45d9efe]{cursor:pointer}#updatenotification h3 .icon[data-v-b45d9efe]{cursor:pointer}#updatenotification h3[data-v-b45d9efe]:first-of-type{margin-top:0}#updatenotification h3.update-channel-selector[data-v-b45d9efe]{display:inline-block;cursor:inherit}#updatenotification .icon[data-v-b45d9efe]{display:inline-block;margin-bottom:-3px}#updatenotification .icon-triangle-s[data-v-b45d9efe],#updatenotification .icon-triangle-n[data-v-b45d9efe]{opacity:0.5}#updatenotification .whatsNew[data-v-b45d9efe]{display:inline-block}#updatenotification .toggleWhatsNew[data-v-b45d9efe]{position:relative}#updatenotification .popovermenu[data-v-b45d9efe]{margin-top:5px;width:300px}#updatenotification .popovermenu p[data-v-b45d9efe]{margin-bottom:0;width:100%}#updatenotification .applist[data-v-b45d9efe]{margin-bottom:25px}#updatenotification .update-menu[data-v-b45d9efe]{position:relative;cursor:pointer;margin-left:3px;display:inline-block}#updatenotification .update-menu .icon-update-menu[data-v-b45d9efe]{cursor:inherit}#updatenotification .update-menu .icon-update-menu .icon-triangle-s[data-v-b45d9efe]{display:inline-block;vertical-align:middle;cursor:inherit;opacity:1}#updatenotification .update-menu .popovermenu[data-v-b45d9efe]{display:none;top:28px}#updatenotification .update-menu .popovermenu.show-menu[data-v-b45d9efe]{display:block}\n","",{"version":3,"sources":["webpack://./apps/updatenotification/src/components/UpdateNotification.vue"],"names":[],"mappings":"AAsbA,qCACC,gBAAiB,CACjB,mBAAoB,CAFrB,yGAKE,kBAAmB,CALrB,oDAQE,eAAgB,CARlB,wCAWE,cAAe,CAXjB,8CAaG,cAAe,CAblB,sDAgBG,YAAa,CAhBhB,gEAmBG,oBAAqB,CACrB,cAAe,CApBlB,2CAwBE,oBAAqB,CACrB,kBAAmB,CAzBrB,4GA4BE,WAAY,CA5Bd,+CA+BE,oBAAqB,CA/BvB,qDAkCE,iBAAkB,CAlCpB,kDAyCE,cAAe,CACf,WAAY,CA1Cd,oDAsCG,eAAgB,CAChB,UAAW,CAvCd,8CA6CE,kBAAmB,CA7CrB,kDAiDE,iBAAkB,CAClB,cAAe,CACf,eAAgB,CAChB,oBAAqB,CApDvB,oEAsDG,cAAe,CAtDlB,qFAwDI,oBAAqB,CACrB,qBAAsB,CACtB,cAAe,CACf,SAAU,CA3Dd,+DA+DG,YAAa,CACb,QAAS,CAhEZ,yEAkEI,aAAc","sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n#updatenotification {\n\tmargin-top: -25px;\n\tmargin-bottom: 200px;\n\tdiv.update,\n\tp:not(.inlineblock) {\n\t\tmargin-bottom: 25px;\n\t}\n\th2.inlineblock {\n\t\tmargin-top: 25px;\n\t}\n\th3 {\n\t\tcursor: pointer;\n\t\t.icon {\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&:first-of-type {\n\t\t\tmargin-top: 0;\n\t\t}\n\t\t&.update-channel-selector {\n\t\t\tdisplay: inline-block;\n\t\t\tcursor: inherit;\n\t\t}\n\t}\n\t.icon {\n\t\tdisplay: inline-block;\n\t\tmargin-bottom: -3px;\n\t}\n\t.icon-triangle-s, .icon-triangle-n {\n\t\topacity: 0.5;\n\t}\n\t.whatsNew {\n\t\tdisplay: inline-block;\n\t}\n\t.toggleWhatsNew {\n\t\tposition: relative;\n\t}\n\t.popovermenu {\n\t\tp {\n\t\t\tmargin-bottom: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t\tmargin-top: 5px;\n\t\twidth: 300px;\n\t}\n\t.applist {\n\t\tmargin-bottom: 25px;\n\t}\n\n\t.update-menu {\n\t\tposition: relative;\n\t\tcursor: pointer;\n\t\tmargin-left: 3px;\n\t\tdisplay: inline-block;\n\t\t.icon-update-menu {\n\t\t\tcursor: inherit;\n\t\t\t.icon-triangle-s {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tvertical-align: middle;\n\t\t\t\tcursor: inherit;\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t\t.popovermenu {\n\t\t\tdisplay: none;\n\t\t\ttop: 28px;\n\t\t\t&.show-menu {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n}\n"],"sourceRoot":""}]),e.a=s},function(t,e,n){"use strict";var r=n(70),o=n.n(r),i=n(71),s=n.n(i)()(o.a);s.push([t.i,"#updatenotification .popovermenu{margin-top:5px;width:300px}#updatenotification .popovermenu p{margin-top:5px;width:100%}#updatenotification .update-menu .icon-star:hover,#updatenotification .update-menu .icon-star:focus{background-image:var(--icon-star-000)}#updatenotification .topMargin{margin-top:15px}\n","",{"version":3,"sources":["webpack://./apps/updatenotification/src/components/UpdateNotification.vue"],"names":[],"mappings":"AAggBA,iCAKC,cAAe,CACf,WAAY,CANb,mCAEE,cAAe,CACf,UAAW,CACX,oGAOD,qCAAsC,CACtC,+BAEA,eAAgB","sourcesContent":["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* override needed to make menu wider */\n#updatenotification .popovermenu {\n\tp {\n\t\tmargin-top: 5px;\n\t\twidth: 100%;\n\t}\n\tmargin-top: 5px;\n\twidth: 300px;\n}\n/* override needed to replace yellow hover state with a dark one */\n#updatenotification .update-menu .icon-star:hover,\n#updatenotification .update-menu .icon-star:focus {\n\tbackground-image: var(--icon-star-000);\n}\n#updatenotification .topMargin {\n\tmargin-top: 15px;\n}\n"],"sourceRoot":""}]),e.a=s},function(t,e,n){var r=n(5),o=n(2),i=n(74);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(t,e,n){var r=n(7),o=n(118),i=n(20),s=n(8);t.exports=function(t,e){for(var n=o(e),a=s.f,c=i.f,l=0;l<n.length;l++){var u=n[l];r(t,u)||a(t,u,c(e,u))}}},function(t,e,n){var r=n(23),o=n(35),i=n(82),s=n(4);t.exports=r("Reflect","ownKeys")||function(t){var e=o.f(s(t)),n=i.f;return n?e.concat(n(t)):e}},function(t,e,n){var r=n(1);t.exports=r},function(t,e,n){var r=n(7),o=n(13),i=n(79).indexOf,s=n(34);t.exports=function(t,e){var n,a=o(t),c=0,l=[];for(n in a)!r(s,n)&&r(a,n)&&l.push(n);for(;e.length>c;)r(a,n=e[c++])&&(~i(l,n)||l.push(n));return l}},function(t,e,n){var r=n(0),o=n(122);r({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},function(t,e,n){"use strict";var r=n(5),o=n(2),i=n(50),s=n(82),a=n(73),c=n(15),l=n(32),u=Object.assign,m=Object.defineProperty;t.exports=!u||o((function(){if(r&&1!==u({b:1},u(m({},"a",{enumerable:!0,get:function(){m(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(t){e[t]=t})),7!=u({},t)[n]||"abcdefghijklmnopqrst"!=i(u({},e)).join("")}))?function(t,e){for(var n=c(t),o=arguments.length,u=1,m=s.f,p=a.f;o>u;)for(var d,f=l(arguments[u++]),g=m?i(f).concat(m(f)):i(f),A=g.length,h=0;A>h;)d=g[h++],r&&!p.call(f,d)||(n[d]=f[d]);return n}:u},function(t,e,n){var r=n(84);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){"use strict";var r=n(2);function o(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=r((function(){var t=o("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=r((function(){var t=o("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},function(t,e,n){var r=n(5),o=n(8),i=n(4),s=n(50);t.exports=r?Object.defineProperties:function(t,e){i(t);for(var n,r=s(e),a=r.length,c=0;a>c;)o.f(t,n=r[c++],e[n]);return t}},function(t,e,n){var r=n(23);t.exports=r("document","documentElement")},function(t,e,n){"use strict";var r=n(128).IteratorPrototype,o=n(30),i=n(29),s=n(25),a=n(41),c=function(){return this};t.exports=function(t,e,n){var l=e+" Iterator";return t.prototype=o(r,{next:i(1,n)}),s(t,l,!1,!0),a[l]=c,t}},function(t,e,n){"use strict";var r,o,i,s=n(2),a=n(129),c=n(14),l=n(7),u=n(3),m=n(22),p=u("iterator"),d=!1;[].keys&&("next"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):d=!0);var f=null==r||s((function(){var t={};return r[p].call(t)!==t}));f&&(r={}),m&&!f||l(r,p)||c(r,p,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:d}},function(t,e,n){var r=n(7),o=n(15),i=n(47),s=n(191),a=i("IE_PROTO"),c=Object.prototype;t.exports=s?Object.getPrototypeOf:function(t){return t=o(t),r(t,a)?t[a]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?c:null}},function(t,e,n){var r=n(4),o=n(192);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(t){}return function(n,i){return r(n),o(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(t,e,n){"use strict";n(57);var r,o=n(0),i=n(5),s=n(133),a=n(1),c=n(125),l=n(9),u=n(42),m=n(7),p=n(122),d=n(134),f=n(55).codeAt,g=n(194),A=n(25),h=n(195),v=n(19),b=a.URL,y=h.URLSearchParams,x=h.getState,C=v.set,w=v.getterFor("URL"),E=Math.floor,k=Math.pow,T=/[A-Za-z]/,S=/[\d+-.A-Za-z]/,_=/\d/,M=/^(0x|0X)/,j=/^[0-7]+$/,P=/^\d+$/,B=/^[\dA-Fa-f]+$/,N=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,I=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,O=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,L=/[\u0009\u000A\u000D]/g,D=function(t,e){var n,r,o;if("["==e.charAt(0)){if("]"!=e.charAt(e.length-1))return"Invalid host";if(!(n=U(e.slice(1,-1))))return"Invalid host";t.host=n}else if(V(t)){if(e=g(e),N.test(e))return"Invalid host";if(null===(n=F(e)))return"Invalid host";t.host=n}else{if(I.test(e))return"Invalid host";for(n="",r=d(e),o=0;o<r.length;o++)n+=H(r[o],z);t.host=n}},F=function(t){var e,n,r,o,i,s,a,c=t.split(".");if(c.length&&""==c[c.length-1]&&c.pop(),(e=c.length)>4)return t;for(n=[],r=0;r<e;r++){if(""==(o=c[r]))return t;if(i=10,o.length>1&&"0"==o.charAt(0)&&(i=M.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)s=0;else{if(!(10==i?P:8==i?j:B).test(o))return t;s=parseInt(o,i)}n.push(s)}for(r=0;r<e;r++)if(s=n[r],r==e-1){if(s>=k(256,5-e))return null}else if(s>255)return null;for(a=n.pop(),r=0;r<n.length;r++)a+=n[r]*k(256,3-r);return a},U=function(t){var e,n,r,o,i,s,a,c=[0,0,0,0,0,0,0,0],l=0,u=null,m=0,p=function(){return t.charAt(m)};if(":"==p()){if(":"!=t.charAt(1))return;m+=2,u=++l}for(;p();){if(8==l)return;if(":"!=p()){for(e=n=0;n<4&&B.test(p());)e=16*e+parseInt(p(),16),m++,n++;if("."==p()){if(0==n)return;if(m-=n,l>6)return;for(r=0;p();){if(o=null,r>0){if(!("."==p()&&r<4))return;m++}if(!_.test(p()))return;for(;_.test(p());){if(i=parseInt(p(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;m++}c[l]=256*c[l]+o,2!=++r&&4!=r||l++}if(4!=r)return;break}if(":"==p()){if(m++,!p())return}else if(p())return;c[l++]=e}else{if(null!==u)return;m++,u=++l}}if(null!==u)for(s=l-u,l=7;0!=l&&s>0;)a=c[l],c[l--]=c[u+s-1],c[u+--s]=a;else if(8!=l)return;return c},R=function(t){var e,n,r,o;if("number"==typeof t){for(e=[],n=0;n<4;n++)e.unshift(t%256),t=E(t/256);return e.join(".")}if("object"==typeof t){for(e="",r=function(t){for(var e=null,n=1,r=null,o=0,i=0;i<8;i++)0!==t[i]?(o>n&&(e=r,n=o),r=null,o=0):(null===r&&(r=i),++o);return o>n&&(e=r,n=o),e}(t),n=0;n<8;n++)o&&0===t[n]||(o&&(o=!1),r===n?(e+=n?":":"::",o=!0):(e+=t[n].toString(16),n<7&&(e+=":")));return"["+e+"]"}return t},z={},G=p({},z,{" ":1,'"':1,"<":1,">":1,"`":1}),$=p({},G,{"#":1,"?":1,"{":1,"}":1}),Q=p({},$,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),H=function(t,e){var n=f(t,0);return n>32&&n<127&&!m(e,t)?t:encodeURIComponent(t)},Y={ftp:21,file:null,http:80,https:443,ws:80,wss:443},V=function(t){return m(Y,t.scheme)},W=function(t){return""!=t.username||""!=t.password},Z=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},J=function(t,e){var n;return 2==t.length&&T.test(t.charAt(0))&&(":"==(n=t.charAt(1))||!e&&"|"==n)},q=function(t){var e;return t.length>1&&J(t.slice(0,2))&&(2==t.length||"/"===(e=t.charAt(2))||"\\"===e||"?"===e||"#"===e)},X=function(t){var e=t.path,n=e.length;!n||"file"==t.scheme&&1==n&&J(e[0],!0)||e.pop()},K=function(t){return"."===t||"%2e"===t.toLowerCase()},tt={},et={},nt={},rt={},ot={},it={},st={},at={},ct={},lt={},ut={},mt={},pt={},dt={},ft={},gt={},At={},ht={},vt={},bt={},yt={},xt=function(t,e,n,o){var i,s,a,c,l,u=n||tt,p=0,f="",g=!1,A=!1,h=!1;for(n||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(O,"")),e=e.replace(L,""),i=d(e);p<=i.length;){switch(s=i[p],u){case tt:if(!s||!T.test(s)){if(n)return"Invalid scheme";u=nt;continue}f+=s.toLowerCase(),u=et;break;case et:if(s&&(S.test(s)||"+"==s||"-"==s||"."==s))f+=s.toLowerCase();else{if(":"!=s){if(n)return"Invalid scheme";f="",u=nt,p=0;continue}if(n&&(V(t)!=m(Y,f)||"file"==f&&(W(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=f,n)return void(V(t)&&Y[t.scheme]==t.port&&(t.port=null));f="","file"==t.scheme?u=dt:V(t)&&o&&o.scheme==t.scheme?u=rt:V(t)?u=at:"/"==i[p+1]?(u=ot,p++):(t.cannotBeABaseURL=!0,t.path.push(""),u=vt)}break;case nt:if(!o||o.cannotBeABaseURL&&"#"!=s)return"Invalid scheme";if(o.cannotBeABaseURL&&"#"==s){t.scheme=o.scheme,t.path=o.path.slice(),t.query=o.query,t.fragment="",t.cannotBeABaseURL=!0,u=yt;break}u="file"==o.scheme?dt:it;continue;case rt:if("/"!=s||"/"!=i[p+1]){u=it;continue}u=ct,p++;break;case ot:if("/"==s){u=lt;break}u=ht;continue;case it:if(t.scheme=o.scheme,s==r)t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query=o.query;else if("/"==s||"\\"==s&&V(t))u=st;else if("?"==s)t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query="",u=bt;else{if("#"!=s){t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.path.pop(),u=ht;continue}t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,t.path=o.path.slice(),t.query=o.query,t.fragment="",u=yt}break;case st:if(!V(t)||"/"!=s&&"\\"!=s){if("/"!=s){t.username=o.username,t.password=o.password,t.host=o.host,t.port=o.port,u=ht;continue}u=lt}else u=ct;break;case at:if(u=ct,"/"!=s||"/"!=f.charAt(p+1))continue;p++;break;case ct:if("/"!=s&&"\\"!=s){u=lt;continue}break;case lt:if("@"==s){g&&(f="%40"+f),g=!0,a=d(f);for(var v=0;v<a.length;v++){var b=a[v];if(":"!=b||h){var y=H(b,Q);h?t.password+=y:t.username+=y}else h=!0}f=""}else if(s==r||"/"==s||"?"==s||"#"==s||"\\"==s&&V(t)){if(g&&""==f)return"Invalid authority";p-=d(f).length+1,f="",u=ut}else f+=s;break;case ut:case mt:if(n&&"file"==t.scheme){u=gt;continue}if(":"!=s||A){if(s==r||"/"==s||"?"==s||"#"==s||"\\"==s&&V(t)){if(V(t)&&""==f)return"Invalid host";if(n&&""==f&&(W(t)||null!==t.port))return;if(c=D(t,f))return c;if(f="",u=At,n)return;continue}"["==s?A=!0:"]"==s&&(A=!1),f+=s}else{if(""==f)return"Invalid host";if(c=D(t,f))return c;if(f="",u=pt,n==mt)return}break;case pt:if(!_.test(s)){if(s==r||"/"==s||"?"==s||"#"==s||"\\"==s&&V(t)||n){if(""!=f){var x=parseInt(f,10);if(x>65535)return"Invalid port";t.port=V(t)&&x===Y[t.scheme]?null:x,f=""}if(n)return;u=At;continue}return"Invalid port"}f+=s;break;case dt:if(t.scheme="file","/"==s||"\\"==s)u=ft;else{if(!o||"file"!=o.scheme){u=ht;continue}if(s==r)t.host=o.host,t.path=o.path.slice(),t.query=o.query;else if("?"==s)t.host=o.host,t.path=o.path.slice(),t.query="",u=bt;else{if("#"!=s){q(i.slice(p).join(""))||(t.host=o.host,t.path=o.path.slice(),X(t)),u=ht;continue}t.host=o.host,t.path=o.path.slice(),t.query=o.query,t.fragment="",u=yt}}break;case ft:if("/"==s||"\\"==s){u=gt;break}o&&"file"==o.scheme&&!q(i.slice(p).join(""))&&(J(o.path[0],!0)?t.path.push(o.path[0]):t.host=o.host),u=ht;continue;case gt:if(s==r||"/"==s||"\\"==s||"?"==s||"#"==s){if(!n&&J(f))u=ht;else if(""==f){if(t.host="",n)return;u=At}else{if(c=D(t,f))return c;if("localhost"==t.host&&(t.host=""),n)return;f="",u=At}continue}f+=s;break;case At:if(V(t)){if(u=ht,"/"!=s&&"\\"!=s)continue}else if(n||"?"!=s)if(n||"#"!=s){if(s!=r&&(u=ht,"/"!=s))continue}else t.fragment="",u=yt;else t.query="",u=bt;break;case ht:if(s==r||"/"==s||"\\"==s&&V(t)||!n&&("?"==s||"#"==s)){if(".."===(l=(l=f).toLowerCase())||"%2e."===l||".%2e"===l||"%2e%2e"===l?(X(t),"/"==s||"\\"==s&&V(t)||t.path.push("")):K(f)?"/"==s||"\\"==s&&V(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&J(f)&&(t.host&&(t.host=""),f=f.charAt(0)+":"),t.path.push(f)),f="","file"==t.scheme&&(s==r||"?"==s||"#"==s))for(;t.path.length>1&&""===t.path[0];)t.path.shift();"?"==s?(t.query="",u=bt):"#"==s&&(t.fragment="",u=yt)}else f+=H(s,$);break;case vt:"?"==s?(t.query="",u=bt):"#"==s?(t.fragment="",u=yt):s!=r&&(t.path[0]+=H(s,z));break;case bt:n||"#"!=s?s!=r&&("'"==s&&V(t)?t.query+="%27":t.query+="#"==s?"%23":H(s,z)):(t.fragment="",u=yt);break;case yt:s!=r&&(t.fragment+=H(s,G))}p++}},Ct=function(t){var e,n,r=u(this,Ct,"URL"),o=arguments.length>1?arguments[1]:void 0,s=String(t),a=C(r,{type:"URL"});if(void 0!==o)if(o instanceof Ct)e=w(o);else if(n=xt(e={},String(o)))throw TypeError(n);if(n=xt(a,s,null,e))throw TypeError(n);var c=a.searchParams=new y,l=x(c);l.updateSearchParams(a.query),l.updateURL=function(){a.query=String(c)||null},i||(r.href=Et.call(r),r.origin=kt.call(r),r.protocol=Tt.call(r),r.username=St.call(r),r.password=_t.call(r),r.host=Mt.call(r),r.hostname=jt.call(r),r.port=Pt.call(r),r.pathname=Bt.call(r),r.search=Nt.call(r),r.searchParams=It.call(r),r.hash=Ot.call(r))},wt=Ct.prototype,Et=function(){var t=w(this),e=t.scheme,n=t.username,r=t.password,o=t.host,i=t.port,s=t.path,a=t.query,c=t.fragment,l=e+":";return null!==o?(l+="//",W(t)&&(l+=n+(r?":"+r:"")+"@"),l+=R(o),null!==i&&(l+=":"+i)):"file"==e&&(l+="//"),l+=t.cannotBeABaseURL?s[0]:s.length?"/"+s.join("/"):"",null!==a&&(l+="?"+a),null!==c&&(l+="#"+c),l},kt=function(){var t=w(this),e=t.scheme,n=t.port;if("blob"==e)try{return new URL(e.path[0]).origin}catch(t){return"null"}return"file"!=e&&V(t)?e+"://"+R(t.host)+(null!==n?":"+n:""):"null"},Tt=function(){return w(this).scheme+":"},St=function(){return w(this).username},_t=function(){return w(this).password},Mt=function(){var t=w(this),e=t.host,n=t.port;return null===e?"":null===n?R(e):R(e)+":"+n},jt=function(){var t=w(this).host;return null===t?"":R(t)},Pt=function(){var t=w(this).port;return null===t?"":String(t)},Bt=function(){var t=w(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?"/"+e.join("/"):""},Nt=function(){var t=w(this).query;return t?"?"+t:""},It=function(){return w(this).searchParams},Ot=function(){var t=w(this).fragment;return t?"#"+t:""},Lt=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(i&&c(wt,{href:Lt(Et,(function(t){var e=w(this),n=String(t),r=xt(e,n);if(r)throw TypeError(r);x(e.searchParams).updateSearchParams(e.query)})),origin:Lt(kt),protocol:Lt(Tt,(function(t){var e=w(this);xt(e,String(t)+":",tt)})),username:Lt(St,(function(t){var e=w(this),n=d(String(t));if(!Z(e)){e.username="";for(var r=0;r<n.length;r++)e.username+=H(n[r],Q)}})),password:Lt(_t,(function(t){var e=w(this),n=d(String(t));if(!Z(e)){e.password="";for(var r=0;r<n.length;r++)e.password+=H(n[r],Q)}})),host:Lt(Mt,(function(t){var e=w(this);e.cannotBeABaseURL||xt(e,String(t),ut)})),hostname:Lt(jt,(function(t){var e=w(this);e.cannotBeABaseURL||xt(e,String(t),mt)})),port:Lt(Pt,(function(t){var e=w(this);Z(e)||(""==(t=String(t))?e.port=null:xt(e,t,pt))})),pathname:Lt(Bt,(function(t){var e=w(this);e.cannotBeABaseURL||(e.path=[],xt(e,t+"",At))})),search:Lt(Nt,(function(t){var e=w(this);""==(t=String(t))?e.query=null:("?"==t.charAt(0)&&(t=t.slice(1)),e.query="",xt(e,t,bt)),x(e.searchParams).updateSearchParams(e.query)})),searchParams:Lt(It),hash:Lt(Ot,(function(t){var e=w(this);""!=(t=String(t))?("#"==t.charAt(0)&&(t=t.slice(1)),e.fragment="",xt(e,t,yt)):e.fragment=null}))}),l(wt,"toJSON",(function(){return Et.call(this)}),{enumerable:!0}),l(wt,"toString",(function(){return Et.call(this)}),{enumerable:!0}),b){var Dt=b.createObjectURL,Ft=b.revokeObjectURL;Dt&&l(Ct,"createObjectURL",(function(t){return Dt.apply(b,arguments)})),Ft&&l(Ct,"revokeObjectURL",(function(t){return Ft.apply(b,arguments)}))}A(Ct,"URL"),o({global:!0,forced:!s,sham:!i},{URL:Ct})},function(t,e,n){var r=n(2),o=n(3),i=n(22),s=o("iterator");t.exports=!r((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,n="";return t.pathname="c%20d",e.forEach((function(t,r){e.delete("b"),n+=r+t})),i&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))},function(t,e,n){"use strict";var r=n(26),o=n(15),i=n(193),s=n(136),a=n(10),c=n(58),l=n(59);t.exports=function(t){var e,n,u,m,p,d,f=o(t),g="function"==typeof this?this:Array,A=arguments.length,h=A>1?arguments[1]:void 0,v=void 0!==h,b=l(f),y=0;if(v&&(h=r(h,A>2?arguments[2]:void 0,2)),null==b||g==Array&&s(b))for(n=new g(e=a(f.length));e>y;y++)d=v?h(f[y],y):f[y],c(n,y,d);else for(p=(m=b.call(f)).next,n=new g;!(u=p.call(m)).done;y++)d=v?i(m,h,[u.value,y],!0):u.value,c(n,y,d);return n.length=y,n}},function(t,e,n){var r=n(4);t.exports=function(t){var e=t.return;if(void 0!==e)return r(e.call(t)).value}},function(t,e,n){var r=n(3),o=n(41),i=r("iterator"),s=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||s[i]===t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.subscribe=function(t,e){i.subscribe(t,e)},e.unsubscribe=function(t,e){i.unsubscribe(t,e)},e.emit=function(t,e){i.emit(t,e)};var r=n(201),o=n(206);var i=(void 0!==window.OC&&window.OC._eventBus&&void 0===window._nc_event_bus&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),void 0!==window._nc_event_bus?new r.ProxyBus(window._nc_event_bus):window._nc_event_bus=new o.SimpleBus)},function(t,e,n){var r=n(96).MAX_SAFE_COMPONENT_LENGTH,o=n(139),i=(e=t.exports={}).re=[],s=e.src=[],a=e.t={},c=0,l=function(t,e,n){var r=c++;o(r,e),a[t]=r,s[r]=e,i[r]=new RegExp(e,n?"g":void 0)};l("NUMERICIDENTIFIER","0|[1-9]\\d*"),l("NUMERICIDENTIFIERLOOSE","[0-9]+"),l("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),l("MAINVERSION","(".concat(s[a.NUMERICIDENTIFIER],")\\.")+"(".concat(s[a.NUMERICIDENTIFIER],")\\.")+"(".concat(s[a.NUMERICIDENTIFIER],")")),l("MAINVERSIONLOOSE","(".concat(s[a.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(s[a.NUMERICIDENTIFIERLOOSE],")\\.")+"(".concat(s[a.NUMERICIDENTIFIERLOOSE],")")),l("PRERELEASEIDENTIFIER","(?:".concat(s[a.NUMERICIDENTIFIER],"|").concat(s[a.NONNUMERICIDENTIFIER],")")),l("PRERELEASEIDENTIFIERLOOSE","(?:".concat(s[a.NUMERICIDENTIFIERLOOSE],"|").concat(s[a.NONNUMERICIDENTIFIER],")")),l("PRERELEASE","(?:-(".concat(s[a.PRERELEASEIDENTIFIER],"(?:\\.").concat(s[a.PRERELEASEIDENTIFIER],")*))")),l("PRERELEASELOOSE","(?:-?(".concat(s[a.PRERELEASEIDENTIFIERLOOSE],"(?:\\.").concat(s[a.PRERELEASEIDENTIFIERLOOSE],")*))")),l("BUILDIDENTIFIER","[0-9A-Za-z-]+"),l("BUILD","(?:\\+(".concat(s[a.BUILDIDENTIFIER],"(?:\\.").concat(s[a.BUILDIDENTIFIER],")*))")),l("FULLPLAIN","v?".concat(s[a.MAINVERSION]).concat(s[a.PRERELEASE],"?").concat(s[a.BUILD],"?")),l("FULL","^".concat(s[a.FULLPLAIN],"$")),l("LOOSEPLAIN","[v=\\s]*".concat(s[a.MAINVERSIONLOOSE]).concat(s[a.PRERELEASELOOSE],"?").concat(s[a.BUILD],"?")),l("LOOSE","^".concat(s[a.LOOSEPLAIN],"$")),l("GTLT","((?:<|>)?=?)"),l("XRANGEIDENTIFIERLOOSE","".concat(s[a.NUMERICIDENTIFIERLOOSE],"|x|X|\\*")),l("XRANGEIDENTIFIER","".concat(s[a.NUMERICIDENTIFIER],"|x|X|\\*")),l("XRANGEPLAIN","[v=\\s]*(".concat(s[a.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(s[a.XRANGEIDENTIFIER],")")+"(?:\\.(".concat(s[a.XRANGEIDENTIFIER],")")+"(?:".concat(s[a.PRERELEASE],")?").concat(s[a.BUILD],"?")+")?)?"),l("XRANGEPLAINLOOSE","[v=\\s]*(".concat(s[a.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(s[a.XRANGEIDENTIFIERLOOSE],")")+"(?:\\.(".concat(s[a.XRANGEIDENTIFIERLOOSE],")")+"(?:".concat(s[a.PRERELEASELOOSE],")?").concat(s[a.BUILD],"?")+")?)?"),l("XRANGE","^".concat(s[a.GTLT],"\\s*").concat(s[a.XRANGEPLAIN],"$")),l("XRANGELOOSE","^".concat(s[a.GTLT],"\\s*").concat(s[a.XRANGEPLAINLOOSE],"$")),l("COERCE","".concat("(^|[^\\d])(\\d{1,").concat(r,"})")+"(?:\\.(\\d{1,".concat(r,"}))?")+"(?:\\.(\\d{1,".concat(r,"}))?")+"(?:$|[^\\d])"),l("COERCERTL",s[a.COERCE],!0),l("LONETILDE","(?:~>?)"),l("TILDETRIM","(\\s*)".concat(s[a.LONETILDE],"\\s+"),!0),e.tildeTrimReplace="$1~",l("TILDE","^".concat(s[a.LONETILDE]).concat(s[a.XRANGEPLAIN],"$")),l("TILDELOOSE","^".concat(s[a.LONETILDE]).concat(s[a.XRANGEPLAINLOOSE],"$")),l("LONECARET","(?:\\^)"),l("CARETTRIM","(\\s*)".concat(s[a.LONECARET],"\\s+"),!0),e.caretTrimReplace="$1^",l("CARET","^".concat(s[a.LONECARET]).concat(s[a.XRANGEPLAIN],"$")),l("CARETLOOSE","^".concat(s[a.LONECARET]).concat(s[a.XRANGEPLAINLOOSE],"$")),l("COMPARATORLOOSE","^".concat(s[a.GTLT],"\\s*(").concat(s[a.LOOSEPLAIN],")$|^$")),l("COMPARATOR","^".concat(s[a.GTLT],"\\s*(").concat(s[a.FULLPLAIN],")$|^$")),l("COMPARATORTRIM","(\\s*)".concat(s[a.GTLT],"\\s*(").concat(s[a.LOOSEPLAIN],"|").concat(s[a.XRANGEPLAIN],")"),!0),e.comparatorTrimReplace="$1$2$3",l("HYPHENRANGE","^\\s*(".concat(s[a.XRANGEPLAIN],")")+"\\s+-\\s+"+"(".concat(s[a.XRANGEPLAIN],")")+"\\s*$"),l("HYPHENRANGELOOSE","^\\s*(".concat(s[a.XRANGEPLAINLOOSE],")")+"\\s+-\\s+"+"(".concat(s[a.XRANGEPLAINLOOSE],")")+"\\s*$"),l("STAR","(<|>)?=?\\s*\\*"),l("GTE0","^\\s*>=\\s*0.0.0\\s*$"),l("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},function(t,e,n){(function(e){function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var r="object"===(void 0===e?"undefined":n(e))&&e.env&&e.env.NODE_DEBUG&&/\bsemver\b/i.test(e.env.NODE_DEBUG)?function(){for(var t,e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return(t=console).error.apply(t,["SEMVER"].concat(n))}:function(){};t.exports=r}).call(this,n(92))},function(t,e,n){function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var i=n(139),s=n(96),a=s.MAX_LENGTH,c=s.MAX_SAFE_INTEGER,l=n(138),u=l.re,m=l.t,p=n(204).compareIdentifiers,d=function(){function t(e,n){if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),n&&"object"===r(n)||(n={loose:!!n,includePrerelease:!1}),e instanceof t){if(e.loose===!!n.loose&&e.includePrerelease===!!n.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: ".concat(e));if(e.length>a)throw new TypeError("version is longer than ".concat(a," characters"));i("SemVer",e,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;var o=e.trim().match(n.loose?u[m.LOOSE]:u[m.FULL]);if(!o)throw new TypeError("Invalid Version: ".concat(e));if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>c||this.major<0)throw new TypeError("Invalid major version");if(this.minor>c||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>c||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map((function(t){if(/^[0-9]+$/.test(t)){var e=+t;if(e>=0&&e<c)return e}return t})):this.prerelease=[],this.build=o[5]?o[5].split("."):[],this.format()}var e,n,s;return e=t,(n=[{key:"format",value:function(){return this.version="".concat(this.major,".").concat(this.minor,".").concat(this.patch),this.prerelease.length&&(this.version+="-".concat(this.prerelease.join("."))),this.version}},{key:"toString",value:function(){return this.version}},{key:"compare",value:function(e){if(i("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if("string"==typeof e&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}},{key:"compareMain",value:function(e){return e instanceof t||(e=new t(e,this.options)),p(this.major,e.major)||p(this.minor,e.minor)||p(this.patch,e.patch)}},{key:"comparePre",value:function(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var n=0;do{var r=this.prerelease[n],o=e.prerelease[n];if(i("prerelease compare",n,r,o),void 0===r&&void 0===o)return 0;if(void 0===o)return 1;if(void 0===r)return-1;if(r!==o)return p(r,o)}while(++n)}},{key:"compareBuild",value:function(e){e instanceof t||(e=new t(e,this.options));var n=0;do{var r=this.build[n],o=e.build[n];if(i("prerelease compare",n,r,o),void 0===r&&void 0===o)return 0;if(void 0===o)return 1;if(void 0===r)return-1;if(r!==o)return p(r,o)}while(++n)}},{key:"inc",value:function(t,e){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",e);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",e);break;case"prepatch":this.prerelease.length=0,this.inc("patch",e),this.inc("pre",e);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",e),this.inc("pre",e);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var n=this.prerelease.length;--n>=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);-1===n&&this.prerelease.push(0)}e&&(this.prerelease[0]===e?isNaN(this.prerelease[1])&&(this.prerelease=[e,0]):this.prerelease=[e,0]);break;default:throw new Error("invalid increment argument: ".concat(t))}return this.format(),this.raw=this.version,this}}])&&o(e.prototype,n),s&&o(e,s),t}();t.exports=d},function(t,e,n){"use strict";var r=n(0),o=n(60).filter,i=n(61),s=n(24),a=i("filter"),c=s("filter");r({target:"Array",proto:!0,forced:!a||!c},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r=n(60).forEach,o=n(49),i=n(24),s=o("forEach"),a=i("forEach");t.exports=s&&a?[].forEach:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}},function(t,e,n){var r=n(34),o=n(6),i=n(7),s=n(8).f,a=n(48),c=n(209),l=a("meta"),u=0,m=Object.isExtensible||function(){return!0},p=function(t){s(t,l,{value:{objectID:"O"+ ++u,weakData:{}}})},d=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,l)){if(!m(t))return"F";if(!e)return"E";p(t)}return t[l].objectID},getWeakData:function(t,e){if(!i(t,l)){if(!m(t))return!0;if(!e)return!1;p(t)}return t[l].weakData},onFreeze:function(t){return c&&d.REQUIRED&&m(t)&&!i(t,l)&&p(t),t}};r[l]=!0},function(t,e,n){var r=n(1),o=n(131),i=n(142),s=n(14);for(var a in o){var c=r[a],l=c&&c.prototype;if(l&&l.forEach!==i)try{s(l,"forEach",i)}catch(t){l.forEach=i}}},function(t,e,n){var r=n(3);e.f=r},function(t,e,n){var r=n(119),o=n(7),i=n(145),s=n(8).f;t.exports=function(t){var e=r.Symbol||(r.Symbol={});o(e,t)||s(e,t,{value:i.f(t)})}},function(t,e,n){"use strict";t.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return t.apply(e,n)}}},function(t,e,n){"use strict";var r=n(11);function o(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,n){if(!e)return t;var i;if(n)i=n(e);else if(r.isURLSearchParams(e))i=e.toString();else{var s=[];r.forEach(e,(function(t,e){null!=t&&(r.isArray(t)?e+="[]":t=[t],r.forEach(t,(function(t){r.isDate(t)?t=t.toISOString():r.isObject(t)&&(t=JSON.stringify(t)),s.push(o(e)+"="+o(t))})))})),i=s.join("&")}if(i){var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}},function(t,e,n){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},function(t,e,n){"use strict";(function(e){var r=n(11),o=n(230),i={"Content-Type":"application/x-www-form-urlencoded"};function s(t,e){!r.isUndefined(t)&&r.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var a,c={adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==e&&"[object process]"===Object.prototype.toString.call(e))&&(a=n(151)),a),transformRequest:[function(t,e){return o(e,"Accept"),o(e,"Content-Type"),r.isFormData(t)||r.isArrayBuffer(t)||r.isBuffer(t)||r.isStream(t)||r.isFile(t)||r.isBlob(t)?t:r.isArrayBufferView(t)?t.buffer:r.isURLSearchParams(t)?(s(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):r.isObject(t)?(s(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};c.headers={common:{"Accept":"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],(function(t){c.headers[t]={}})),r.forEach(["post","put","patch"],(function(t){c.headers[t]=r.merge(i)})),t.exports=c}).call(this,n(92))},function(t,e,n){"use strict";var r=n(11),o=n(231),i=n(233),s=n(148),a=n(234),c=n(237),l=n(238),u=n(152);t.exports=function(t){return new Promise((function(e,n){var m=t.data,p=t.headers;r.isFormData(m)&&delete p["Content-Type"];var d=new XMLHttpRequest;if(t.auth){var f=t.auth.username||"",g=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";p.Authorization="Basic "+btoa(f+":"+g)}var A=a(t.baseURL,t.url);if(d.open(t.method.toUpperCase(),s(A,t.params,t.paramsSerializer),!0),d.timeout=t.timeout,d.onreadystatechange=function(){if(d&&4===d.readyState&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in d?c(d.getAllResponseHeaders()):null,i={data:t.responseType&&"text"!==t.responseType?d.response:d.responseText,status:d.status,statusText:d.statusText,headers:r,config:t,request:d};o(e,n,i),d=null}},d.onabort=function(){d&&(n(u("Request aborted",t,"ECONNABORTED",d)),d=null)},d.onerror=function(){n(u("Network Error",t,null,d)),d=null},d.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(u(e,t,"ECONNABORTED",d)),d=null},r.isStandardBrowserEnv()){var h=(t.withCredentials||l(A))&&t.xsrfCookieName?i.read(t.xsrfCookieName):void 0;h&&(p[t.xsrfHeaderName]=h)}if("setRequestHeader"in d&&r.forEach(p,(function(t,e){void 0===m&&"content-type"===e.toLowerCase()?delete p[e]:d.setRequestHeader(e,t)})),r.isUndefined(t.withCredentials)||(d.withCredentials=!!t.withCredentials),t.responseType)try{d.responseType=t.responseType}catch(e){if("json"!==t.responseType)throw e}"function"==typeof t.onDownloadProgress&&d.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then((function(t){d&&(d.abort(),n(t),d=null)})),m||(m=null),d.send(m)}))}},function(t,e,n){"use strict";var r=n(232);t.exports=function(t,e,n,o,i){var s=new Error(t);return r(s,e,n,o,i)}},function(t,e,n){"use strict";var r=n(11);t.exports=function(t,e){e=e||{};var n={},o=["url","method","data"],i=["headers","auth","proxy","params"],s=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],a=["validateStatus"];function c(t,e){return r.isPlainObject(t)&&r.isPlainObject(e)?r.merge(t,e):r.isPlainObject(e)?r.merge({},e):r.isArray(e)?e.slice():e}function l(o){r.isUndefined(e[o])?r.isUndefined(t[o])||(n[o]=c(void 0,t[o])):n[o]=c(t[o],e[o])}r.forEach(o,(function(t){r.isUndefined(e[t])||(n[t]=c(void 0,e[t]))})),r.forEach(i,l),r.forEach(s,(function(o){r.isUndefined(e[o])?r.isUndefined(t[o])||(n[o]=c(void 0,t[o])):n[o]=c(void 0,e[o])})),r.forEach(a,(function(r){r in e?n[r]=c(t[r],e[r]):r in t&&(n[r]=c(void 0,t[r]))}));var u=o.concat(i).concat(s).concat(a),m=Object.keys(t).concat(Object.keys(e)).filter((function(t){return-1===u.indexOf(t)}));return r.forEach(m,l),n}},function(t,e,n){"use strict";function r(t){this.message=t}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,t.exports=r},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"getRequestToken",{enumerable:!0,get:function(){return r.getRequestToken}}),Object.defineProperty(e,"onRequestTokenUpdate",{enumerable:!0,get:function(){return r.onRequestTokenUpdate}}),Object.defineProperty(e,"getCurrentUser",{enumerable:!0,get:function(){return o.getCurrentUser}});var r=n(242),o=n(243)},function(t,e,n){var r=n(4),o=n(43),i=n(3)("species");t.exports=function(t,e){var n,s=r(t).constructor;return void 0===s||null==(n=r(s)[i])?e:o(n)}},function(t,e,n){var r,o,i,s=n(1),a=n(2),c=n(26),l=n(126),u=n(74),m=n(158),p=n(63),d=s.location,f=s.setImmediate,g=s.clearImmediate,A=s.process,h=s.MessageChannel,v=s.Dispatch,b=0,y={},x=function(t){if(y.hasOwnProperty(t)){var e=y[t];delete y[t],e()}},C=function(t){return function(){x(t)}},w=function(t){x(t.data)},E=function(t){s.postMessage(t+"",d.protocol+"//"+d.host)};f&&g||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return y[++b]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},r(b),b},g=function(t){delete y[t]},p?r=function(t){A.nextTick(C(t))}:v&&v.now?r=function(t){v.now(C(t))}:h&&!m?(i=(o=new h).port2,o.port1.onmessage=w,r=c(i.postMessage,i,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts&&d&&"file:"!==d.protocol&&!a(E)?(r=E,s.addEventListener("message",w,!1)):r="onreadystatechange"in u("script")?function(t){l.appendChild(u("script")).onreadystatechange=function(){l.removeChild(this),x(t)}}:function(t){setTimeout(C(t),0)}),t.exports={set:f,clear:g}},function(t,e,n){var r=n(94);t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},function(t,e,n){"use strict";var r=n(43),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},function(t,e){var n={utf8:{stringToBytes:function(t){return n.bin.stringToBytes(unescape(encodeURIComponent(t)))},bytesToString:function(t){return decodeURIComponent(escape(n.bin.bytesToString(t)))}},bin:{stringToBytes:function(t){for(var e=[],n=0;n<t.length;n++)e.push(255&t.charCodeAt(n));return e},bytesToString:function(t){for(var e=[],n=0;n<t.length;n++)e.push(String.fromCharCode(t[n]));return e.join("")}}};t.exports=n},function(t,e,n){"use strict";var r=n(45),o=n(175).filter,i=n(16),s=n(112)("filter"),a=s&&!i((function(){[].filter.call({length:-1,0:1},(function(t){throw t}))}));r({target:"Array",proto:!0,forced:!s||!a},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(16),o=n(106),i="".split;t.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,e,n){var r=n(64),o=n(16),i=n(274);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(t,e,n){var r=n(27);t.exports=function(t){if(!r(t))throw TypeError(String(t)+" is not an object");return t}},function(t,e,n){var r=n(166),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(t){return o.call(t)}),t.exports=r.inspectSource},function(t,e,n){var r=n(12),o=n(110),i=r["__core-js_shared__"]||o("__core-js_shared__",{});t.exports=i},function(t,e,n){var r=n(168),o=n(166);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.1",mode:r?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports=!1},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+r).toString(36)}},function(t,e){t.exports={}},function(t,e,n){var r=n(281),o=n(12),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t])||i(o[t]):r[t]&&r[t][e]||o[t]&&o[t][e]}},function(t,e,n){var r=n(31),o=n(105),i=n(283).indexOf,s=n(170);t.exports=function(t,e){var n,a=o(t),c=0,l=[];for(n in a)!r(s,n)&&r(a,n)&&l.push(n);for(;e.length>c;)r(a,n=e[c++])&&(~i(l,n)||l.push(n));return l}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e,n){var r=n(287),o=n(162),i=n(111),s=n(66),a=n(176),c=[].push,l=function(t){var e=1==t,n=2==t,l=3==t,u=4==t,m=6==t,p=5==t||m;return function(d,f,g,A){for(var h,v,b=i(d),y=o(b),x=r(f,g,3),C=s(y.length),w=0,E=A||a,k=e?E(d,C):n?E(d,0):void 0;C>w;w++)if((p||w in y)&&(v=x(h=y[w],w,b),t))if(e)k[w]=v;else if(v)switch(t){case 3:return!0;case 5:return h;case 6:return w;case 2:c.call(k,h)}else if(u)return!1;return m?-1:l||u?u:k}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6)}},function(t,e,n){var r=n(27),o=n(177),i=n(46)("species");t.exports=function(t,e){var n;return o(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},function(t,e,n){var r=n(106);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(16);t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},function(t,e,n){var r,o,i=n(12),s=n(290),a=i.process,c=a&&a.versions,l=c&&c.v8;l?o=(r=l.split("."))[0]+r[1]:s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(o=r[1]),t.exports=o&&+o},function(t,e,n){"use strict";var r=n(45),o=n(175).map,i=n(16),s=n(112)("map"),a=s&&!i((function(){[].map.call({length:-1,0:1},(function(t){throw t}))}));r({target:"Array",proto:!0,forced:!s||!a},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(45),o=n(111),i=n(291);r({target:"Object",stat:!0,forced:n(16)((function(){i(1)}))},{keys:function(t){return i(o(t))}})},function(t,e,n){"use strict";var r,o=n(45),i=n(103).f,s=n(66),a=n(292),c=n(107),l=n(294),u=n(168),m="".startsWith,p=Math.min,d=l("startsWith");o({target:"String",proto:!0,forced:!!(u||d||(r=i(String.prototype,"startsWith"),!r||r.writable))&&!d},{startsWith:function(t){var e=String(c(this));a(t);var n=s(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return m?m.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){"use strict";function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n(296),n(161),n(180),n(181),n(182),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=function(){function t(e,n,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),o(this,"scope",void 0),o(this,"wrapped",void 0),this.scope="".concat(r?t.GLOBAL_SCOPE_PERSISTENT:t.GLOBAL_SCOPE_VOLATILE,"_").concat(btoa(e),"_"),this.wrapped=n}var e,n,i;return e=t,(n=[{key:"scopeKey",value:function(t){return"".concat(this.scope).concat(t)}},{key:"setItem",value:function(t,e){this.wrapped.setItem(this.scopeKey(t),e)}},{key:"getItem",value:function(t){return this.wrapped.getItem(this.scopeKey(t))}},{key:"removeItem",value:function(t){this.wrapped.removeItem(this.scopeKey(t))}},{key:"clear",value:function(){var t=this;Object.keys(this.wrapped).filter((function(e){return e.startsWith(t.scope)})).map(this.wrapped.removeItem.bind(this.wrapped))}}])&&r(e.prototype,n),i&&r(e,i),t}();e.default=i,o(i,"GLOBAL_SCOPE_VOLATILE","nextcloud_vol"),o(i,"GLOBAL_SCOPE_PERSISTENT","nextcloud_per")},function(t,e,n){window,t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=74)}({0:function(t,e,n){"use strict";function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=t[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}(t,e)||function(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}t.exports=function(t){var e=r(t,4),n=e[1],o=e[3];if("function"==typeof btoa){var i=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),a="/*# ".concat(s," */"),c=o.sources.map((function(t){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(t," */")}));return[n].concat(c).concat([a]).join("\n")}return[n].join("\n")}},1:function(t,e,n){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,r){"string"==typeof t&&(t=[[null,t,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(o[s]=!0)}for(var a=0;a<t.length;a++){var c=[].concat(t[a]);r&&o[c[0]]||(n&&(c[2]?c[2]="".concat(n," and ").concat(c[2]):c[2]=n),e.push(c))}},e}},13:function(t,e){t.exports=n(72)},16:function(t,e){t.exports=n(52)},19:function(t,e){t.exports=n(40)},2:function(t,e,n){"use strict";var r,o=function(){var t={};return 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(t){n=null}t[e]=n}return t[e]}}(),i=[];function s(t){for(var e=-1,n=0;n<i.length;n++)if(i[n].identifier===t){e=n;break}return e}function a(t,e){for(var n={},r=[],o=0;o<t.length;o++){var a=t[o],c=e.base?a[0]+e.base:a[0],l=n[c]||0,u="".concat(c," ").concat(l);n[c]=l+1;var m=s(u),p={css:a[1],media:a[2],sourceMap:a[3]};-1!==m?(i[m].references++,i[m].updater(p)):i.push({identifier:u,updater:g(p,e),references:1}),r.push(u)}return r}function c(t){var e=document.createElement("style"),r=t.attributes||{};if(void 0===r.nonce){var i=n.nc;i&&(r.nonce=i)}if(Object.keys(r).forEach((function(t){e.setAttribute(t,r[t])})),"function"==typeof t.insert)t.insert(e);else{var s=o(t.insert||"head");if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(e)}return e}var l,u=(l=[],function(t,e){return l[t]=e,l.filter(Boolean).join("\n")});function m(t,e,n,r){var o=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(t.styleSheet)t.styleSheet.cssText=u(e,o);else{var i=document.createTextNode(o),s=t.childNodes;s[e]&&t.removeChild(s[e]),s.length?t.insertBefore(i,s[e]):t.appendChild(i)}}function p(t,e,n){var r=n.css,o=n.media,i=n.sourceMap;if(o?t.setAttribute("media",o):t.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var d=null,f=0;function g(t,e){var n,r,o;if(e.singleton){var i=f++;n=d||(d=c(e)),r=m.bind(null,n,i,!1),o=m.bind(null,n,i,!0)}else n=c(e),r=p.bind(null,n,e),o=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)};return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=(void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r));var n=a(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var r=0;r<n.length;r++){var o=s(n[r]);i[o].references--}for(var c=a(t,e),l=0;l<n.length;l++){var u=s(n[l]);0===i[u].references&&(i[u].updater(),i.splice(u,1))}n=c}}}},20:function(t,e){t.exports=n(57)},21:function(t,e){t.exports=n(90)},3:function(t,e,n){"use strict";function r(t,e,n,r,o,i,s,a){var c,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),i&&(l._scopeId="data-v-"+i),s?(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__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):o&&(c=a?function(){o.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var m=l.beforeCreate;l.beforeCreate=m?[].concat(m,c):[c]}return{exports:t,options:l}}n.d(e,"a",(function(){return r}))},35:function(t,e){t.exports=n(132)},6:function(t,e){t.exports=n(38)},60:function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,"\nbutton.menuitem[data-v-3ad7b73b] {\n\ttext-align: left;\n}\nbutton.menuitem *[data-v-3ad7b73b] {\n\tcursor: pointer;\n}\nbutton.menuitem[data-v-3ad7b73b]:disabled {\n\topacity: 0.5 !important;\n\tcursor: default;\n}\nbutton.menuitem:disabled *[data-v-3ad7b73b] {\n\tcursor: default;\n}\n.menuitem.active[data-v-3ad7b73b] {\n\tbox-shadow: inset 2px 0 var(--color-primary);\n\tborder-radius: 0;\n}\n","",{version:3,sources:["webpack://./PopoverMenuItem.vue"],names:[],mappings:";AA4HA;CACA,gBAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,uBAAA;CACA,eAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,4CAAA;CACA,gBAAA;AACA",sourcesContent:['\x3c!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<li>\n\t\t\x3c!-- If item.href is set, a link will be directly used --\x3e\n\t\t<a v-if="item.href"\n\t\t\t:href="(item.href) ? item.href : \'#\' "\n\t\t\t:target="(item.target) ? item.target : \'\' "\n\t\t\t:download="item.download"\n\t\t\tclass="focusable"\n\t\t\trel="noreferrer noopener"\n\t\t\t@click="action">\n\t\t\t<span v-if="!iconIsUrl" :class="item.icon" />\n\t\t\t<img v-else :src="item.icon">\n\t\t\t<p v-if="item.text && item.longtext">\n\t\t\t\t<strong class="menuitem-text">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class="menuitem-text-detail">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if="item.text">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if="item.longtext">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</a>\n\n\t\t\x3c!-- If item.input is set instead, an put will be used --\x3e\n\t\t<span v-else-if="item.input" class="menuitem" :class="{active: item.active}">\n\t\t\t\x3c!-- does not show if input is checkbox --\x3e\n\t\t\t<span v-if="item.input !== \'checkbox\'" :class="item.icon" />\n\n\t\t\t\x3c!-- only shows if input is text --\x3e\n\t\t\t<form v-if="item.input === \'text\'"\n\t\t\t\t:class="item.input"\n\t\t\t\t@submit.prevent="item.action">\n\t\t\t\t<input :type="item.input"\n\t\t\t\t\t:value="item.value"\n\t\t\t\t\t:placeholder="item.text"\n\t\t\t\t\trequired>\n\t\t\t\t<input type="submit" value="" class="icon-confirm">\n\t\t\t</form>\n\n\t\t\t\x3c!-- checkbox --\x3e\n\t\t\t<template v-else>\n\t\t\t\t<input :id="key"\n\t\t\t\t\tv-model="item.model"\n\t\t\t\t\t:type="item.input"\n\t\t\t\t\t:class="item.input"\n\t\t\t\t\t@change="item.action">\n\t\t\t\t<label :for="key" @click.stop.prevent="item.action">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</label>\n\t\t\t</template>\n\t\t</span>\n\n\t\t\x3c!-- If item.action is set instead, a button will be used --\x3e\n\t\t<button v-else-if="item.action"\n\t\t\tclass="menuitem focusable"\n\t\t\t:class="{active: item.active}"\n\t\t\t:disabled="item.disabled"\n\t\t\t@click.stop.prevent="item.action">\n\t\t\t<span :class="item.icon" />\n\t\t\t<p v-if="item.text && item.longtext">\n\t\t\t\t<strong class="menuitem-text">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class="menuitem-text-detail">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if="item.text">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if="item.longtext">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</button>\n\n\t\t\x3c!-- If item.longtext is set AND the item does not have an action --\x3e\n\t\t<span v-else class="menuitem" :class="{active: item.active}">\n\t\t\t<span :class="item.icon" />\n\t\t\t<p v-if="item.text && item.longtext">\n\t\t\t\t<strong class="menuitem-text">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class="menuitem-text-detail">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if="item.text">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if="item.longtext">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</span>\n\t</li>\n</template>\n\n<style scoped>\n\tbutton.menuitem {\n\t\ttext-align: left;\n\t}\n\n\tbutton.menuitem * {\n\t\tcursor: pointer;\n\t}\n\n\tbutton.menuitem:disabled {\n\t\topacity: 0.5 !important;\n\t\tcursor: default;\n\t}\n\n\tbutton.menuitem:disabled * {\n\t\tcursor: default;\n\t}\n\n\t.menuitem.active {\n\t\tbox-shadow: inset 2px 0 var(--color-primary);\n\t\tborder-radius: 0;\n\t}\n</style>\n\n<script>\nexport default {\n\tname: \'PopoverMenuItem\',\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: () => {\n\t\t\t\treturn {\n\t\t\t\t\tkey: \'nextcloud-link\',\n\t\t\t\t\thref: \'https://nextcloud.com\',\n\t\t\t\t\ticon: \'icon-links\',\n\t\t\t\t\ttext: \'Nextcloud\',\n\t\t\t\t}\n\t\t\t},\n\t\t\t// check the input types\n\t\t\t// TODO: add more validation of types\n\t\t\tvalidator: item => {\n\t\t\t\t// TODO: support radio\n\t\t\t\tif (item.input) {\n\t\t\t\t\treturn [\'text\', \'checkbox\'].indexOf(item.input) !== -1\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t},\n\t\t},\n\t},\n\tcomputed: {\n\t\t// random key for inputs binding if not provided\n\t\tkey() {\n\t\t\treturn this.item.key\n\t\t\t\t? this.item.key\n\t\t\t\t: Math.round(Math.random() * 16 * 1000000).toString(16)\n\t\t},\n\t\ticonIsUrl() {\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-new\n\t\t\t\tnew URL(this.item.icon)\n\t\t\t\treturn true\n\t\t\t} catch (_) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\t// allow us to use both link and an action on `a`\n\t\t// we still need to make sure item.action exists\n\t\taction(event) {\n\t\t\tif (this.item.action) {\n\t\t\t\tthis.item.action(event)\n\t\t\t}\n\t\t},\n\t},\n}\n<\/script>\n<style lang="scss" scoped>\nli {\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n\n\t> button,\n\t> a,\n\t> .menuitem {\n\t\tcursor: pointer;\n\t\tline-height: $clickable-area;\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-weight: normal;\n\t\tbox-shadow: none;\n\t\twidth: 100%;\n\t\tcolor: var(--color-main-text);\n\t\twhite-space: nowrap;\n\t\topacity: $opacity_normal;\n\n\t\t// TODO split into individual components for readability\n\t\tspan[class^=\'icon-\'],\n\t\tspan[class*=\' icon-\'],\n\t\t&[class^=\'icon-\'],\n\t\t&[class*=\' icon-\'] {\n\t\t\tmin-width: 0; /* Overwrite icons*/\n\t\t\tmin-height: 0;\n\t\t\tbackground-position: #{$icon-margin} center;\n\t\t\tbackground-size: $icon-size;\n\t\t}\n\n\t\tspan[class^=\'icon-\'],\n\t\tspan[class*=\' icon-\'] {\n\t\t\t/* Keep padding to define the width to\n\t\t\t\tassure correct position of a possible text */\n\t\t\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\n\t\t}\n\n\t\t// If no icons set, force left margin to align\n\t\t&:not([class^=\'icon-\']):not([class*=\'icon-\']) {\n\t\t\t> span,\n\t\t\t> input,\n\t\t\t> form {\n\t\t\t\t&:not([class^=\'icon-\']):not([class*=\'icon-\']):first-child {\n\t\t\t\t\tmargin-left: $clickable-area;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&[class^=\'icon-\'],\n\t\t&[class*=\' icon-\'] {\n\t\t\tpadding: 0 $icon-margin 0 $clickable-area;\n\t\t}\n\n\t\t&:not(:disabled):hover,\n\t\t&:not(:disabled):focus,\n\t\t&:not(:disabled).active {\n\t\t\topacity: $opacity_full !important;\n\t\t}\n\n\t\t/* prevent .action class to break the design */\n\t\t&.action {\n\t\t\tpadding: inherit !important;\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// long text area\n\t\t> p {\n\t\t\twidth: 150px;\n\t\t\tline-height: 1.6em;\n\t\t\tpadding: 8px 0;\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t// TODO: do we really supports it?\n\t\t> select {\n\t\t\tmargin: 0;\n\t\t\tmargin-left: 6px;\n\t\t}\n\n\t\t/* Add padding if contains icon+text */\n\t\t&:not(:empty) {\n\t\t\tpadding-right: $icon-margin !important;\n\t\t}\n\n\t\t/* DEPRECATED! old img in popover fallback\n\t\t\t* TODO: to remove */\n\t\t> img {\n\t\t\twidth: $clickable-area;\n\t\t\tpadding: $icon-margin;\n\t\t}\n\n\t\t/* checkbox/radio fixes */\n\t\t> input.radio + label,\n\t\t> input.checkbox + label {\n\t\t\tpadding: 0 !important;\n\t\t\twidth: 100%;\n\t\t}\n\t\t> input.checkbox + label::before {\n\t\t\tmargin: -2px 13px 0;\n\t\t}\n\t\t> input.radio + label::before {\n\t\t\tmargin: -2px 12px 0;\n\t\t}\n\t\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\n\t\t\twidth: 150px;\n\t\t}\n\n\t\t// Forms & text inputs\n\t\tform {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\t/* put a small space between text and form\n\t\t\t\tif there is an element before */\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t\t/* no margin if hidden span before */\n\t\t> span.hidden + form,\n\t\t> span[style*=\'display:none\'] + form {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t/* Inputs inside popover supports text, submit & reset */\n\t\tinput {\n\t\t\tmin-width: $clickable-area;\n\t\t\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\n\t\t\tmargin: 2px 0;\n\t\t\tflex: 1 1 auto;\n\t\t\t// space between inline inputs\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: do that in js, should be cleaner\n\t/* css hack, only first not hidden */\n\t&:not(.hidden):not([style*=\'display:none\']) {\n\t\t&:first-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-top: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:last-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-bottom: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t> button {\n\t\tpadding: 0;\n\t\tspan {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n</style>\n'],sourceRoot:""}]),e.a=s},61:function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,"li[data-v-3ad7b73b]{display:flex;flex:0 0 auto}li.hidden[data-v-3ad7b73b]{display:none}li>button[data-v-3ad7b73b],li>a[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{padding:0 14px 0 44px}li>button[data-v-3ad7b73b]:not(:disabled):hover,li>button[data-v-3ad7b73b]:not(:disabled):focus,li>button:not(:disabled).active[data-v-3ad7b73b],li>a[data-v-3ad7b73b]:not(:disabled):hover,li>a[data-v-3ad7b73b]:not(:disabled):focus,li>a:not(:disabled).active[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]:not(:disabled):hover,li>.menuitem[data-v-3ad7b73b]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-3ad7b73b]{opacity:1 !important}li>button.action[data-v-3ad7b73b],li>a.action[data-v-3ad7b73b],li>.menuitem.action[data-v-3ad7b73b]{padding:inherit !important}li>button>span[data-v-3ad7b73b],li>a>span[data-v-3ad7b73b],li>.menuitem>span[data-v-3ad7b73b]{cursor:pointer;white-space:nowrap}li>button>p[data-v-3ad7b73b],li>a>p[data-v-3ad7b73b],li>.menuitem>p[data-v-3ad7b73b]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-3ad7b73b],li>a>select[data-v-3ad7b73b],li>.menuitem>select[data-v-3ad7b73b]{margin:0;margin-left:6px}li>button[data-v-3ad7b73b]:not(:empty),li>a[data-v-3ad7b73b]:not(:empty),li>.menuitem[data-v-3ad7b73b]:not(:empty){padding-right:14px !important}li>button>img[data-v-3ad7b73b],li>a>img[data-v-3ad7b73b],li>.menuitem>img[data-v-3ad7b73b]{width:44px;padding:14px}li>button>input.radio+label[data-v-3ad7b73b],li>button>input.checkbox+label[data-v-3ad7b73b],li>a>input.radio+label[data-v-3ad7b73b],li>a>input.checkbox+label[data-v-3ad7b73b],li>.menuitem>input.radio+label[data-v-3ad7b73b],li>.menuitem>input.checkbox+label[data-v-3ad7b73b]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-3ad7b73b]::before,li>a>input.checkbox+label[data-v-3ad7b73b]::before,li>.menuitem>input.checkbox+label[data-v-3ad7b73b]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-3ad7b73b]::before,li>a>input.radio+label[data-v-3ad7b73b]::before,li>.menuitem>input.radio+label[data-v-3ad7b73b]::before{margin:-2px 12px 0}li>button>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-3ad7b73b],li>a form[data-v-3ad7b73b],li>.menuitem form[data-v-3ad7b73b]{display:flex;flex:1 1 auto}li>button form[data-v-3ad7b73b]:not(:first-child),li>a form[data-v-3ad7b73b]:not(:first-child),li>.menuitem form[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-3ad7b73b],li>button>span[style*='display:none']+form[data-v-3ad7b73b],li>a>span.hidden+form[data-v-3ad7b73b],li>a>span[style*='display:none']+form[data-v-3ad7b73b],li>.menuitem>span.hidden+form[data-v-3ad7b73b],li>.menuitem>span[style*='display:none']+form[data-v-3ad7b73b]{margin-left:0}li>button input[data-v-3ad7b73b],li>a input[data-v-3ad7b73b],li>.menuitem input[data-v-3ad7b73b]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-3ad7b73b]:not(:first-child),li>a input[data-v-3ad7b73b]:not(:first-child),li>.menuitem input[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-3ad7b73b]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-3ad7b73b]{margin-bottom:12px}li>button[data-v-3ad7b73b]{padding:0}li>button span[data-v-3ad7b73b]{opacity:1}\n","",{version:3,sources:["webpack://./PopoverMenuItem.vue","webpack://./../../assets/variables.scss"],names:[],mappings:"AA2MA,oBACC,YAAa,CACb,aAAc,CAFf,2BAKE,YAAa,CALf,+EAWE,cAAe,CACf,gBC9LmB,CD+LnB,QAAS,CACT,eAAgB,CAChB,4BAA6B,CAC7B,YAAa,CACb,sBAAuB,CACvB,WAAY,CACZ,QAAS,CACT,SAAU,CACV,kBAAmB,CACnB,eAAgB,CAChB,UAAW,CACX,4BAA6B,CAC7B,kBAAmB,CACnB,UC1LiB,CDgKnB,giBAiCG,WAAY,CACZ,YAAa,CACb,+BAA2C,CAC3C,oBClNa,CD8KhB,+RA2CG,wBC7NkB,CDkLrB,iqCAoDK,gBCtOgB,CDkLrB,iQA2DG,qBC7OkB,CDkLrB,6aAiEG,oBAAiC,CAjEpC,oGAsEG,0BAA2B,CAtE9B,8FA0EG,cAAe,CACf,kBAAmB,CA3EtB,qFAgFG,WAAY,CACZ,iBAAkB,CAClB,aAAc,CACd,kBAAmB,CAnFtB,oGAwFG,QAAS,CACT,eAAgB,CAzFnB,mHA8FG,6BAAsC,CA9FzC,2FAoGG,UCtRkB,CDuRlB,YC/Q6C,CD0KhD,mRA2GG,oBAAqB,CACrB,UAAW,CA5Gd,sKA+GG,kBAAmB,CA/GtB,6JAkHG,kBAAmB,CAlHtB,4QAqHG,WAAY,CArHf,8FA0HG,YAAa,CACb,aAAc,CA3HjB,oJA+HI,eAAgB,CA/HpB,oTAqIG,aAAc,CArIjB,iGAyIG,cC3TkB,CD4TlB,eAAY,CACZ,YAAa,CACb,aAAc,CA5IjB,uJA+II,eAAgB,CA/IpB,+gBA0JK,eAA8B,CA1JnC,ygBAiKK,kBAAiC,CAjKtC,2BAuKE,SAAU,CAvKZ,gCAyKG,SCxUa",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nli {\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n\n\t> button,\n\t> a,\n\t> .menuitem {\n\t\tcursor: pointer;\n\t\tline-height: $clickable-area;\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-weight: normal;\n\t\tbox-shadow: none;\n\t\twidth: 100%;\n\t\tcolor: var(--color-main-text);\n\t\twhite-space: nowrap;\n\t\topacity: $opacity_normal;\n\n\t\t// TODO split into individual components for readability\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'],\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tmin-width: 0; /* Overwrite icons*/\n\t\t\tmin-height: 0;\n\t\t\tbackground-position: #{$icon-margin} center;\n\t\t\tbackground-size: $icon-size;\n\t\t}\n\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'] {\n\t\t\t/* Keep padding to define the width to\n\t\t\t\tassure correct position of a possible text */\n\t\t\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\n\t\t}\n\n\t\t// If no icons set, force left margin to align\n\t\t&:not([class^='icon-']):not([class*='icon-']) {\n\t\t\t> span,\n\t\t\t> input,\n\t\t\t> form {\n\t\t\t\t&:not([class^='icon-']):not([class*='icon-']):first-child {\n\t\t\t\t\tmargin-left: $clickable-area;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tpadding: 0 $icon-margin 0 $clickable-area;\n\t\t}\n\n\t\t&:not(:disabled):hover,\n\t\t&:not(:disabled):focus,\n\t\t&:not(:disabled).active {\n\t\t\topacity: $opacity_full !important;\n\t\t}\n\n\t\t/* prevent .action class to break the design */\n\t\t&.action {\n\t\t\tpadding: inherit !important;\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// long text area\n\t\t> p {\n\t\t\twidth: 150px;\n\t\t\tline-height: 1.6em;\n\t\t\tpadding: 8px 0;\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t// TODO: do we really supports it?\n\t\t> select {\n\t\t\tmargin: 0;\n\t\t\tmargin-left: 6px;\n\t\t}\n\n\t\t/* Add padding if contains icon+text */\n\t\t&:not(:empty) {\n\t\t\tpadding-right: $icon-margin !important;\n\t\t}\n\n\t\t/* DEPRECATED! old img in popover fallback\n\t\t\t* TODO: to remove */\n\t\t> img {\n\t\t\twidth: $clickable-area;\n\t\t\tpadding: $icon-margin;\n\t\t}\n\n\t\t/* checkbox/radio fixes */\n\t\t> input.radio + label,\n\t\t> input.checkbox + label {\n\t\t\tpadding: 0 !important;\n\t\t\twidth: 100%;\n\t\t}\n\t\t> input.checkbox + label::before {\n\t\t\tmargin: -2px 13px 0;\n\t\t}\n\t\t> input.radio + label::before {\n\t\t\tmargin: -2px 12px 0;\n\t\t}\n\t\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\n\t\t\twidth: 150px;\n\t\t}\n\n\t\t// Forms & text inputs\n\t\tform {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\t/* put a small space between text and form\n\t\t\t\tif there is an element before */\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t\t/* no margin if hidden span before */\n\t\t> span.hidden + form,\n\t\t> span[style*='display:none'] + form {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t/* Inputs inside popover supports text, submit & reset */\n\t\tinput {\n\t\t\tmin-width: $clickable-area;\n\t\t\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\n\t\t\tmargin: 2px 0;\n\t\t\tflex: 1 1 auto;\n\t\t\t// space between inline inputs\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: do that in js, should be cleaner\n\t/* css hack, only first not hidden */\n\t&:not(.hidden):not([style*='display:none']) {\n\t\t&:first-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-top: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:last-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-bottom: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t> button {\n\t\tpadding: 0;\n\t\tspan {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: ($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"],sourceRoot:""}]),e.a=s},62:function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,"ul[data-v-81c2afc0]{display:flex;flex-direction:column}\n","",{version:3,sources:["webpack://./PopoverMenu.vue"],names:[],mappings:"AA0DA,oBACC,YAAa,CACb,qBAAsB",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nul {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n"],sourceRoot:""}]),e.a=s},63:function(t,e){},74:function(t,e,n){"use strict";n.r(e),n(13),n(19),n(6),n(16),n(20),n(21),n(35);var r={name:"PopoverMenuItem",props:{item:{type:Object,required:!0,default:function(){return{key:"nextcloud-link",href:"https://nextcloud.com",icon:"icon-links",text:"Nextcloud"}},validator:function(t){return!t.input||-1!==["text","checkbox"].indexOf(t.input)}}},computed:{key:function(){return this.item.key?this.item.key:Math.round(16*Math.random()*1e6).toString(16)},iconIsUrl:function(){try{return new URL(this.item.icon),!0}catch(t){return!1}}},methods:{action:function(t){this.item.action&&this.item.action(t)}}},o=n(2),i=n.n(o),s=n(60),a=(i()(s.a,{insert:"head",singleton:!1}),s.a.locals,n(61)),c=(i()(a.a,{insert:"head",singleton:!1}),a.a.locals,n(3)),l={name:"PopoverMenu",components:{PopoverMenuItem:Object(c.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("li",[t.item.href?n("a",{staticClass:"focusable",attrs:{href:t.item.href?t.item.href:"#",target:t.item.target?t.item.target:"",download:t.item.download,rel:"noreferrer noopener"},on:{click:t.action}},[t.iconIsUrl?n("img",{attrs:{src:t.item.icon}}):n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()]):t.item.input?n("span",{staticClass:"menuitem",class:{active:t.item.active}},["checkbox"!==t.item.input?n("span",{class:t.item.icon}):t._e(),t._v(" "),"text"===t.item.input?n("form",{class:t.item.input,on:{submit:function(e){return e.preventDefault(),t.item.action(e)}}},[n("input",{attrs:{type:t.item.input,placeholder:t.item.text,required:""},domProps:{value:t.item.value}}),t._v(" "),n("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]):["checkbox"===t.item.input?n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:"checkbox"},domProps:{checked:Array.isArray(t.item.model)?t._i(t.item.model,null)>-1:t.item.model},on:{change:[function(e){var n=t.item.model,r=e.target,o=!!r.checked;if(Array.isArray(n)){var i=t._i(n,null);r.checked?i<0&&t.$set(t.item,"model",n.concat([null])):i>-1&&t.$set(t.item,"model",n.slice(0,i).concat(n.slice(i+1)))}else t.$set(t.item,"model",o)},t.item.action]}}):"radio"===t.item.input?n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:"radio"},domProps:{checked:t._q(t.item.model,null)},on:{change:[function(e){return t.$set(t.item,"model",null)},t.item.action]}}):n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:t.item.input},domProps:{value:t.item.model},on:{change:t.item.action,input:function(e){e.target.composing||t.$set(t.item,"model",e.target.value)}}}),t._v(" "),n("label",{attrs:{for:t.key},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action(e)}}},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")])]],2):t.item.action?n("button",{staticClass:"menuitem focusable",class:{active:t.item.active},attrs:{disabled:t.item.disabled},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action(e)}}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()]):n("span",{staticClass:"menuitem",class:{active:t.item.active}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()])])}),[],!1,null,"3ad7b73b",null).exports},props:{menu:{type:Array,default:function(){return[{href:"https://nextcloud.com",icon:"icon-links",text:"Nextcloud"}]},required:!0}}},u=n(62),m=(i()(u.a,{insert:"head",singleton:!1}),u.a.locals,n(63)),p=n.n(m),d=Object(c.a)(l,(function(){var t=this.$createElement,e=this._self._c||t;return e("ul",this._l(this.menu,(function(t,n){return e("PopoverMenuItem",{key:n,attrs:{item:t}})})),1)}),[],!1,null,"81c2afc0",null);"function"==typeof p.a&&p()(d);var f=d.exports;e.default=f}})},function(t,e,n){window,t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=130)}([function(t,e,n){"use strict";function r(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,o=!1,i=void 0;try{for(var s,a=t[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{r||null==a.return||a.return()}finally{if(o)throw i}}return n}}(t,e)||function(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}t.exports=function(t){var e=r(t,4),n=e[1],o=e[3];if("function"==typeof btoa){var i=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),a="/*# ".concat(s," */"),c=o.sources.map((function(t){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(t," */")}));return[n].concat(c).concat([a]).join("\n")}return[n].join("\n")}},function(t,e,n){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,r){"string"==typeof t&&(t=[[null,t,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(o[s]=!0)}for(var a=0;a<t.length;a++){var c=[].concat(t[a]);r&&o[c[0]]||(n&&(c[2]?c[2]="".concat(n," and ").concat(c[2]):c[2]=n),e.push(c))}},e}},function(t,e,n){"use strict";var r,o=function(){var t={};return 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(t){n=null}t[e]=n}return t[e]}}(),i=[];function s(t){for(var e=-1,n=0;n<i.length;n++)if(i[n].identifier===t){e=n;break}return e}function a(t,e){for(var n={},r=[],o=0;o<t.length;o++){var a=t[o],c=e.base?a[0]+e.base:a[0],l=n[c]||0,u="".concat(c," ").concat(l);n[c]=l+1;var m=s(u),p={css:a[1],media:a[2],sourceMap:a[3]};-1!==m?(i[m].references++,i[m].updater(p)):i.push({identifier:u,updater:g(p,e),references:1}),r.push(u)}return r}function c(t){var e=document.createElement("style"),r=t.attributes||{};if(void 0===r.nonce){var i=n.nc;i&&(r.nonce=i)}if(Object.keys(r).forEach((function(t){e.setAttribute(t,r[t])})),"function"==typeof t.insert)t.insert(e);else{var s=o(t.insert||"head");if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(e)}return e}var l,u=(l=[],function(t,e){return l[t]=e,l.filter(Boolean).join("\n")});function m(t,e,n,r){var o=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(t.styleSheet)t.styleSheet.cssText=u(e,o);else{var i=document.createTextNode(o),s=t.childNodes;s[e]&&t.removeChild(s[e]),s.length?t.insertBefore(i,s[e]):t.appendChild(i)}}function p(t,e,n){var r=n.css,o=n.media,i=n.sourceMap;if(o?t.setAttribute("media",o):t.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var d=null,f=0;function g(t,e){var n,r,o;if(e.singleton){var i=f++;n=d||(d=c(e)),r=m.bind(null,n,i,!1),o=m.bind(null,n,i,!0)}else n=c(e),r=p.bind(null,n,e),o=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(n)};return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=(void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r));var n=a(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var r=0;r<n.length;r++){var o=s(n[r]);i[o].references--}for(var c=a(t,e),l=0;l<n.length;l++){var u=s(n[l]);0===i[u].references&&(i[u].updater(),i.splice(u,1))}n=c}}}},function(t,e,n){"use strict";function r(t,e,n,r,o,i,s,a){var c,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),i&&(l._scopeId="data-v-"+i),s?(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__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):o&&(c=a?function(){o.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var m=l.beforeCreate;l.beforeCreate=m?[].concat(m,c):[c]}return{exports:t,options:l}}n.d(e,"a",(function(){return r}))},function(t,e,n){"use strict";t.exports=function(t,e){return e||(e={}),"string"!=typeof(t=t&&t.__esModule?t.default:t)?t:(/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),e.hash&&(t+=e.hash),/["'() \t\n]/.test(t)||e.needQuotes?'"'.concat(t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t)}},function(t,e){t.exports=n(67)},function(t,e){t.exports=n(38)},function(t,e,n){"use strict";e.a="data:application/vnd.ms-fontobject;base64,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"},function(t,e,n){"use strict";e.a="data:font/woff;base64,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PAE55eh8gAAAAQAAAAEAAP1OmNVfDzz1AAsTiAAAAADbzucYAAAAANt+Cxn/4AAAE5MTiAAAAAgAAgAAAAAAAAABAAATiAAAAAATiP/g//UTkwABAAAAAAAAAAAAAAAAAAAABwAAAAATiAAAE4gAABOIAAATiAAABjYAABOIAAAAAP//AAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAACIANgBYAGwAgACUALQBDgF8AZoCEAImAjQCQgKoAyIDpgP+AAEAAAATAEsAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAAAQAMYAAQAAAAAAAQAUAAAAAQAAAAAAAgAHABQAAQAAAAAAAwAUABsAAQAAAAAABAAUAC8AAQAAAAAABQALAEMAAQAAAAAABgAUAE4AAQAAAAAACgArAGIAAQAAAAAACwATAI0AAwABBAkAAQAoAKAAAwABBAkAAgAOAMgAAwABBAkAAwAoANYAAwABBAkABAAoAP4AAwABBAkABQAWASYAAwABBAkABgAoATwAAwABBAkACgBWAWQAAwABBAkACwAmAbppY29uZm9udC12dWUtNTlmMTIxNFJlZ3VsYXJpY29uZm9udC12dWUtNTlmMTIxNGljb25mb250LXZ1ZS01OWYxMjE0VmVyc2lvbiAxLjBpY29uZm9udC12dWUtNTlmMTIxNEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtADUAOQBmADEAMgAxADQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAACAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAATABMAAAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBExFhcnJvdy1sZWZ0LWRvdWJsZQphcnJvdy1sZWZ0EmFycm93LXJpZ2h0LWRvdWJsZQthcnJvdy1yaWdodApicmVhZGNydW1iCWNoZWNrbWFyawVjbG9zZQdjb25maXJtBGluZm8EbWVudQRtb3JlBXBhdXNlBHBsYXkKdHJpYW5nbGUtcxB1c2VyLXN0YXR1cy1hd2F5D3VzZXItc3RhdHVzLWRuZBV1c2VyLXN0YXR1cy1pbnZpc2libGUSdXNlci1zdGF0dXMtb25saW5lAAA="},function(t,e,n){"use strict";e.a="data:font/ttf;base64,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AAATiP/g//UTkwABAAAAAAAAAAAAAAAAAAAABwAAAAATiAAAE4gAABOIAAATiAAABjYAABOIAAAAAP//AAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAACIANgBYAGwAgACUALQBDgF8AZoCEAImAjQCQgKoAyIDpgP+AAEAAAATAEsAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAAAQAMYAAQAAAAAAAQAUAAAAAQAAAAAAAgAHABQAAQAAAAAAAwAUABsAAQAAAAAABAAUAC8AAQAAAAAABQALAEMAAQAAAAAABgAUAE4AAQAAAAAACgArAGIAAQAAAAAACwATAI0AAwABBAkAAQAoAKAAAwABBAkAAgAOAMgAAwABBAkAAwAoANYAAwABBAkABAAoAP4AAwABBAkABQAWASYAAwABBAkABgAoATwAAwABBAkACgBWAWQAAwABBAkACwAmAbppY29uZm9udC12dWUtNTlmMTIxNFJlZ3VsYXJpY29uZm9udC12dWUtNTlmMTIxNGljb25mb250LXZ1ZS01OWYxMjE0VmVyc2lvbiAxLjBpY29uZm9udC12dWUtNTlmMTIxNEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtADUAOQBmADEAMgAxADQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAACAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAATABMAAAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBExFhcnJvdy1sZWZ0LWRvdWJsZQphcnJvdy1sZWZ0EmFycm93LXJpZ2h0LWRvdWJsZQthcnJvdy1yaWdodApicmVhZGNydW1iCWNoZWNrbWFyawVjbG9zZQdjb25maXJtBGluZm8EbWVudQRtb3JlBXBhdXNlBHBsYXkKdHJpYW5nbGUtcxB1c2VyLXN0YXR1cy1hd2F5D3VzZXItc3RhdHVzLWRuZBV1c2VyLXN0YXR1cy1pbnZpc2libGUSdXNlci1zdGF0dXMtb25saW5lAAA="},function(t,e,n){"use strict";e.a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48bWV0YWRhdGE+PC9tZXRhZGF0YT48ZGVmcz48Zm9udCBpZD0iaWNvbmZvbnQtdnVlLTU5ZjEyMTQiIGhvcml6LWFkdi14PSI1MDAwIj48Zm9udC1mYWNlIGZvbnQtZmFtaWx5PSJpY29uZm9udC12dWUtNTlmMTIxNCIgZm9udC13ZWlnaHQ9IjQwMCIgZm9udC1zdHJldGNoPSJub3JtYWwiIHVuaXRzLXBlci1lbT0iNTAwMCIgcGFub3NlLTE9IjIgMCA1IDMgMCAwIDAgMCAwIDAiIGFzY2VudD0iNTAwMCIgZGVzY2VudD0iMCIgeC1oZWlnaHQ9IjAiIGJib3g9Ii0zMiAwIDUwMTEgNTAwMCIgdW5kZXJsaW5lLXRoaWNrbmVzcz0iMCIgdW5kZXJsaW5lLXBvc2l0aW9uPSI1MCIgdW5pY29kZS1yYW5nZT0iVStlYTAxLWVhMTIiIC8+PG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjAiICAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1sZWZ0LWRvdWJsZSIgdW5pY29kZT0iJiN4ZWEwMTsiIGQ9Ik0zNzUwIDM5MDYgbC0xNDA2IC0xNDA2IGwxNDA2IC0xNDA2IGwwIDMxMiBsLTEwOTQgMTA5NCBsMTA5NCAxMDk0IGwwIDMxMiBaTTIzNDQgMzkwNiBsLTE0MDYgLTE0MDYgbDE0MDYgLTE0MDYgbDAgMzEyIGwtMTA5NCAxMDk0IGwxMDk0IDEwOTQgbDAgMzEyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LWxlZnQiIHVuaWNvZGU9IiYjeGVhMDI7IiBkPSJNMTU2MyAyNTAwIGwxODc1IC0xODc1IGwwIC0zMTIgbC0yMTg4IDIxODcgbDIxODggMjE4OCBsMCAtMzEzIGwtMTg3NSAtMTg3NSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1yaWdodC1kb3VibGUiIHVuaWNvZGU9IiYjeGVhMDM7IiBkPSJNMTI1MCAxMDk0IGwxNDA2IDE0MDYgbC0xNDA2IDE0MDYgbDAgLTMxMiBsMTA5NCAtMTA5NCBsLTEwOTQgLTEwOTQgbDAgLTMxMiBaTTI2NTYgMTA5NCBsMTQwNyAxNDA2IGwtMTQwNyAxNDA2IGwwIC0zMTIgbDEwOTQgLTEwOTQgbC0xMDk0IC0xMDk0IGwwIC0zMTIgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctcmlnaHQiIHVuaWNvZGU9IiYjeGVhMDQ7IiBkPSJNMzQzOCAyNTAwIGwtMTg3NSAxODc1IGwwIDMxMyBsMjE4NyAtMjE4OCBsLTIxODcgLTIxODcgbDAgMzEyIGwxODc1IDE4NzUgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYnJlYWRjcnVtYiIgdW5pY29kZT0iJiN4ZWEwNTsiIGQ9Ik0xNDggNTAwMCBsLTE0OCAtODUgbDEzOTQgLTI0MTUgbC0xMzk0IC0yNDE1IGwxNDggLTg1IGwxNDQzIDI1MDAgbC0xNDQzIDI1MDAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2ttYXJrIiB1bmljb2RlPSImI3hlYTA2OyIgZD0iTTQwNDUgMzk3MSBsLTIwNjEgLTIwNjEgbC0xMDI5IDEwMjkgbC00NDIgLTQ0MSBsMTQ3MSAtMTQ3MSBsMjUwMyAyNTAyIGwtNDQyIDQ0MiBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJjbG9zZSIgdW5pY29kZT0iJiN4ZWEwNzsiIGQ9Ik00Mzc1IDExNTYgbC01MzEgLTUzMSBsLTEzNDQgMTM0NCBsLTEzNDQgLTEzNDQgbC01MzEgNTMxIGwxMzQ0IDEzNDQgbC0xMzQ0IDEzNDQgbDUzMSA1MzEgbDEzNDQgLTEzNDQgbDEzNDQgMTM0NCBsNTMxIC01MzEgbC0xMzQ0IC0xMzQ0IGwxMzQ0IC0xMzQ0IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImNvbmZpcm0iIHVuaWNvZGU9IiYjeGVhMDg7IiBkPSJNMjY1NiA0ODQ0IHEtMTAxIDAgLTE4MCAtNTcgcS03NCAtNTIgLTEwOSAtMTM4IHEtMzUgLTg2IC0xOSAtMTc1IHExOCAtOTYgOTAgLTE2NyBsMTQ5NSAtMTQ5NCBsLTM2MTYgMCBxLTc3IDEgLTEzOSAtMjYgcS01OCAtMjQgLTk5IC03MCBxLTM5IC00NCAtNTkgLTEwMSBxLTIwIC01NiAtMjAgLTExNiBxMCAtNjAgMjAgLTExNiBxMjAgLTU3IDU5IC0xMDEgcTQxIC00NiA5OSAtNzAgcTYyIC0yNyAxMzkgLTI1IGwzNjE2IDAgbC0xNDk1IC0xNDk1IHEtNTUgLTUzIC04MSAtMTE2IHEtMjQgLTU5IC0yMSAtMTIxIHEzIC01OCAzMCAtMTEzIHEyNSAtNTQgNjggLTk3IHE0MyAtNDMgOTYgLTY4IHE1NSAtMjYgMTE0IC0yOSBxNjIgLTMgMTIwIDIxIHE2MyAyNSAxMTYgODEgbDIwMjkgMjAyOCBxNTkgNjAgODAgMTQxIHEyMSA4MCAxIDE1OSBxLTIxIDgyIC04MSAxNDIgbC0yMDI5IDIwMjggcS00NCA0NSAtMTAyIDcwIHEtNTggMjUgLTEyMiAyNSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJpbmZvIiB1bmljb2RlPSImI3hlYTA5OyIgZD0iTTI0MjIgNDY4OCBxLTExMSAwIC0yMTMgLTQzIHEtOTggLTQyIC0xNzQgLTExNy41IHEtNzYgLTc1LjUgLTExNyAtMTc0LjUgcS00MyAtMTAxIC00MyAtMjEyLjUgcTAgLTExMS41IDQzIC0yMTIuNSBxNDEgLTk4IDExNyAtMTc0IHE3NiAtNzYgMTc0IC0xMTcgcTEwMiAtNDMgMjEzIC00MyBxMTExIDAgMjEzIDQzIHE5OCA0MSAxNzMuNSAxMTcgcTc1LjUgNzYgMTE3LjUgMTc0IHE0MyAxMDEgNDMgMjEyLjUgcTAgMTExLjUgLTQzIDIxMi41IHEtNDIgOTkgLTExNy41IDE3NC41IHEtNzUuNSA3NS41IC0xNzMuNSAxMTcuNSBxLTEwMiA0MyAtMjEzIDQzIFpNMTU2MyAzMTI1IHEtODYgMCAtMTU4IC00MyBxLTcxIC00MSAtMTEyIC0xMTIgcS00MyAtNzIgLTQzIC0xNTcuNSBxMCAtODUuNSA0MyAtMTU3LjUgcTQxIC03MSAxMTIgLTExMiBxNzIgLTQzIDE1OCAtNDMgbDYyNSAwIGwwIC0xNTYyIGwtNjI1IDAgcS04NiAwIC0xNTggLTQzIHEtNzEgLTQxIC0xMTIgLTExMiBxLTQzIC03MyAtNDMgLTE1OCBxMCAtODUgNDMgLTE1OCBxNDEgLTcxIDExMiAtMTEyIHE3MiAtNDMgMTU4IC00MiBsMTg3NSAwIHE4NSAwIDE1NyA0MiBxNzEgNDEgMTEyIDExMiBxNDMgNzMgNDMgMTU4IHEwIDg1IC00MyAxNTggcS00MSA3MSAtMTEyIDExMiBxLTcyIDQzIC0xNTcgNDMgbC02MjUgMCBsMCAxODc1IHEwIDg1IC00MyAxNTcgcS00MSA3MSAtMTEyIDExMiBxLTczIDQzIC0xNTggNDMgbC05MzcgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJtZW51IiB1bmljb2RlPSImI3hlYTBhOyIgZD0iTTYyNSA0Mzc1IGwwIC02MjUgbDM3NTAgMCBsMCA2MjUgbC0zNzUwIDAgWk02MjUgMjgxMyBsMCAtNjI1IGwzNzUwIDAgbDAgNjI1IGwtMzc1MCAwIFpNNjI1IDEyNTAgbDAgLTYyNSBsMzc1MCAwIGwwIDYyNSBsLTM3NTAgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJtb3JlIiB1bmljb2RlPSImI3hlYTBiOyIgZD0iTTc4MSAzMDQ3IHExMTIgMCAyMTMgLTQzIHE5OCAtNDIgMTc0IC0xMTcuNSBxNzYgLTc1LjUgMTE3IC0xNzMuNSBxNDMgLTEwMiA0MyAtMjEzIHEwIC0xMTEgLTQzIC0yMTMgcS00MSAtOTggLTExNyAtMTczLjUgcS03NiAtNzUuNSAtMTc0IC0xMTcuNSBxLTEwMSAtNDMgLTIxMi41IC00MyBxLTExMS41IDAgLTIxMy41IDQzIHEtOTggNDIgLTE3My41IDExNy41IHEtNzUuNSA3NS41IC0xMTcuNSAxNzMuNSBxLTQzIDEwMiAtNDMgMjEzIHEwIDExMSA0MyAyMTMgcTQyIDk4IDExNy41IDE3My41IHE3NS41IDc1LjUgMTczLjUgMTE3LjUgcTEwMiA0MyAyMTMgNDMgWk0yNTAwIDMwNDcgcTExMSAwIDIxMyAtNDMgcTk4IC00MiAxNzMuNSAtMTE3LjUgcTc1LjUgLTc1LjUgMTE3LjUgLTE3My41IHE0MyAtMTAyIDQzIC0yMTMgcTAgLTExMSAtNDMgLTIxMyBxLTQyIC05OCAtMTE3LjUgLTE3My41IHEtNzUuNSAtNzUuNSAtMTczLjUgLTExNy41IHEtMTAyIC00MyAtMjEzIC00MyBxLTExMSAwIC0yMTMgNDMgcS05OCA0MiAtMTczLjUgMTE3LjUgcS03NS41IDc1LjUgLTExNy41IDE3My41IHEtNDMgMTAyIC00MyAyMTMgcTAgMTExIDQzIDIxMyBxNDIgOTggMTE3LjUgMTczLjUgcTc1LjUgNzUuNSAxNzMuNSAxMTcuNSBxMTAyIDQzIDIxMyA0MyBaTTQyMTkgMzA0NyBxMTExIDAgMjEzIC00MyBxOTggLTQyIDE3My41IC0xMTcuNSBxNzUuNSAtNzUuNSAxMTcuNSAtMTczLjUgcTQzIC0xMDIgNDMgLTIxMyBxMCAtMTExIC00MyAtMjEzIHEtNDIgLTk4IC0xMTcuNSAtMTczLjUgcS03NS41IC03NS41IC0xNzMuNSAtMTE3LjUgcS0xMDIgLTQzIC0yMTMuNSAtNDMgcS0xMTEuNSAwIC0yMTIuNSA0MyBxLTk4IDQyIC0xNzQgMTE3LjUgcS03NiA3NS41IC0xMTcgMTczLjUgcS00MyAxMDIgLTQzIDIxMyBxMCAxMTEgNDMgMjEzIHE0MSA5OCAxMTcgMTczLjUgcTc2IDc1LjUgMTc0IDExNy41IHExMDEgNDMgMjEzIDQzIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InBhdXNlIiB1bmljb2RlPSImI3hlYTBjOyIgZD0iTTkzOCA0MDYzIGwwIC0zMTI1IGwxMjUwIDAgbDAgMzEyNSBsLTEyNTAgMCBaTTI4MTMgNDA2MyBsMCAtMzEyNSBsMTI1MCAwIGwwIDMxMjUgbC0xMjUwIDAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0icGxheSIgdW5pY29kZT0iJiN4ZWEwZDsiIGQ9Ik02MjUgNDM3NSBsMzc1MCAtMTg3NSBsLTM3NTAgLTE4NzUgbDAgMzc1MCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJ0cmlhbmdsZS1zIiB1bmljb2RlPSImI3hlYTBlOyIgZD0iTTEyNTAgMzEyNSBsMTI1MCAtMTI1MCBsMTI1MCAxMjQ4IGwtMjUwMCAyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InVzZXItc3RhdHVzLWF3YXkiIHVuaWNvZGU9IiYjeGVhMGY7IiBkPSJNMjE1NiA0OTY5IHEtMzYwIC00NiAtNjk1IC0xOTcgcS0zMjYgLTE0NyAtNjAxIC0zODAgcS0yNzQgLTIzMSAtNDcyIC01MjggcS0yMDIgLTMwMSAtMzA5IC02NDIgcS0xMTAgLTM1MyAtMTEwIC03MjIgcTAgLTQwNiAxMjggLTc4OCBxMTIzIC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTM2OSAwIDcyMiAxMDcgcTM0MiAxMDQgNjQ0IDMwMSBxMjk4IDE5NCA1MzMgNDYzIHEyMzYgMjcwIDM4OSA1OTMgcTE1NiAzMzEgMjEyIDY5MiBxLTE4OCAtMjA0IC00MjMuNSAtMzUxIHEtMjM1LjUgLTE0NyAtNDk4LjUgLTIyNSBxLTI2OSAtODAgLTU0NyAtODAgcS0zMjIgMCAtNjI4IDEwMyBxLTI5NSA5OSAtNTQ4IDI4NiBxLTI1MSAxODQgLTQzNSA0MzUgcS0xODcgMjUzIC0yODYgNTQ4IHEtMTAzIDMwNiAtMTAzIDYyOCBxMCAyOTMgODAgNTY4IHE3OCAyNjkgMjI1LjUgNDk4LjUgcTE0Ny41IDIyOS41IDM1MC41IDQwMi41IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InVzZXItc3RhdHVzLWRuZCIgdW5pY29kZT0iJiN4ZWExMDsiIGQ9Ik0yNTAwIDUwMDAgcS00MDYgMCAtNzg4IC0xMjggcS0zNzAgLTEyNCAtNjg2IC0zNTYgcS0zMTMgLTIyOSAtNTQyIC01NDIgcS0yMzIgLTMxNiAtMzU2IC02ODYgcS0xMjggLTM4MiAtMTI4IC03ODggcTAgLTQwNiAxMjggLTc4OCBxMTI0IC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTQwNiAwIDc4OCAxMjggcTM3MCAxMjQgNjg2IDM1NiBxMzEzIDIyOSA1NDIgNTQyIHEyMzIgMzE2IDM1NiA2ODYgcTEyOCAzODIgMTI4IDc4OCBxMCA0MDYgLTEyOCA3ODggcS0xMjQgMzcwIC0zNTYgNjg2IHEtMjI5IDMxMyAtNTQyIDU0MiBxLTMxNiAyMzIgLTY4NiAzNTYgcS0zODIgMTI4IC03ODggMTI4IFpNMTU2MyAyOTY5IGwxODc1IDAgcTkxIDAgMTc4IC0zOCBxODQgLTM3IDE1MCAtMTAzIHE2NiAtNjYgMTAyIC0xNDkgcTM4IC04NyAzOCAtMTc5IHEwIC05MiAtMzggLTE3OSBxLTM2IC04MyAtMTAyIC0xNDkgcS02NiAtNjYgLTE1MCAtMTAzIHEtODcgLTM4IC0xNzggLTM4IGwtMTg3NSAwIHEtOTIgMCAtMTc5IDM4IHEtODQgMzcgLTE1MCAxMDMgcS02NiA2NiAtMTAyIDE0OSBxLTM4IDg3IC0zOCAxNzkgcTAgOTIgMzggMTc5IHEzNiA4MyAxMDIgMTQ5IHE2NiA2NiAxNTAgMTAzIHE4NyAzOCAxNzkgMzggWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0idXNlci1zdGF0dXMtaW52aXNpYmxlIiB1bmljb2RlPSImI3hlYTExOyIgZD0iTTI1MDAgNTAwMCBxLTQwNiAwIC03ODggLTEyOCBxLTM3MCAtMTI0IC02ODYgLTM1NiBxLTMxMyAtMjI5IC01NDIgLTU0MiBxLTIzMiAtMzE2IC0zNTYgLTY4NiBxLTEyOCAtMzgyIC0xMjggLTc4OCBxMCAtNDA2IDEyOCAtNzg4IHExMjQgLTM3MCAzNTYgLTY4NiBxMjI5IC0zMTMgNTQyIC01NDIgcTMxNiAtMjMyIDY4NiAtMzU2IHEzODIgLTEyOCA3ODggLTEyOCBxNDA2IDAgNzg4IDEyOCBxMzcwIDEyNCA2ODYgMzU2IHEzMTMgMjI5IDU0MiA1NDIgcTIzMiAzMTYgMzU2IDY4NiBxMTI4IDM4MiAxMjggNzg4IHEwIDQwNiAtMTI4IDc4OCBxLTEyNCAzNzAgLTM1NiA2ODYgcS0yMjkgMzEzIC01NDIgNTQyIHEtMzE2IDIzMiAtNjg2IDM1NiBxLTM4MiAxMjggLTc4OCAxMjggWk0yNTAwIDQwMDAgcTMxMSAwIDU5MCAtMTE2IHEyNzEgLTExMiA0NzYuNSAtMzE3LjUgcTIwNS41IC0yMDUuNSAzMTcuNSAtNDc2LjUgcTExNiAtMjc5IDExNiAtNTkwIHEwIC0zMTEgLTExNiAtNTkwIHEtMTEyIC0yNzEgLTMxNy41IC00NzYuNSBxLTIwNS41IC0yMDUuNSAtNDc2LjUgLTMxNy41IHEtMjc5IC0xMTYgLTU5MCAtMTE2IHEtMzExIDAgLTU5MCAxMTYgcS0yNzEgMTEyIC00NzYuNSAzMTcuNSBxLTIwNS41IDIwNS41IC0zMTcuNSA0NzYuNSBxLTExNiAyNzkgLTExNiA1OTAgcTAgMzExIDExNiA1OTAgcTExMiAyNzEgMzE3LjUgNDc2LjUgcTIwNS41IDIwNS41IDQ3Ni41IDMxNy41IHEyNzkgMTE2IDU5MCAxMTYgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0idXNlci1zdGF0dXMtb25saW5lIiB1bmljb2RlPSImI3hlYTEyOyIgZD0iTTE1MDAgMTUwMCBsMjAwMCAwIGwwIDIwMDAgbC0yMDAwIDAgbDAgLTIwMDAgWk0yNTAwIDUwMDAgcS00MDYgMCAtNzg4IC0xMjggcS0zNzAgLTEyNCAtNjg2IC0zNTYgcS0zMTMgLTIyOSAtNTQyIC01NDIgcS0yMzIgLTMxNiAtMzU2IC02ODYgcS0xMjggLTM4MiAtMTI4IC03ODggcTAgLTQwNiAxMjggLTc4OCBxMTI0IC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTQwNiAwIDc4OCAxMjggcTM3MCAxMjQgNjg2IDM1NiBxMzEzIDIyOSA1NDIgNTQyIHEyMzIgMzE2IDM1NiA2ODYgcTEyOCAzODIgMTI4IDc4OCBxMCA0MDYgLTEyOCA3ODggcS0xMjQgMzcwIC0zNTYgNjg2IHEtMjI5IDMxMyAtNTQyIDU0MiBxLTMxNiAyMzIgLTY4NiAzNTYgcS0zODIgMTI4IC03ODggMTI4IFoiIC8+PC9mb250PjwvZGVmcz48L3N2Zz4="},function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"a",(function(){return s})),n(15);var r=n(28),o=Object(r.getGettextBuilder)().detectLocale();[{locale:"br",json:{charset:"utf-8",headers:{"Last-Translator":"Kervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020","Language-Team":"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)","Content-Type":"text/plain; charset=UTF-8",Language:"br","Plural-Forms":"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nKervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020\n"},msgstr:["Last-Translator: Kervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (diwelus)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (bevennet)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:249"},msgstr:["Oberioù"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Oberiantizoù"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Loened & Natur"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Dibab"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Serriñ"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Personelañ"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Bannieloù"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Boued & Evajoù"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Implijet alies"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Da heul"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Emoji ebet kavet"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Disoc'h ebet"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Traoù"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Arsav an diaporama"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Tud & Korf"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Choaz un emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["A-raok"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Klask"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Disoc'hoù an enklask"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Choaz ur c'hlav"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Arventennoù"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Smileyioù & Fromoù"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Kregiñ an diaporama"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Arouezioù"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Beaj & Lec'hioù"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Dibosupl eo klask ar strollad"]}}}}},{locale:"ca",json:{charset:"utf-8",headers:{"Last-Translator":"David Jacovkis <david@freeknowledge.eu>, 2020","Language-Team":"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)","Content-Type":"text/plain; charset=UTF-8",Language:"ca","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nCarles Ferrando Garcia <carles.ferrando@gnuescultura.eu>, 2020\nMarc Riera <marcriera@softcatala.org>, 2020\nToni Hermoso Pulido <toniher@softcatala.cat>, 2020\nDavid Jacovkis <david@freeknowledge.eu>, 2020\n"},msgstr:["Last-Translator: David Jacovkis <david@freeknowledge.eu>, 2020\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (invisible)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (restringit)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Accions"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Activitats"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Animals i natura"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Tria"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Tanca"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Personalitzat"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Marques"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Menjar i begudes"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Utilitzats recentment"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:255"},msgstr:["S'ha arribat al límit de {count} caràcters per missatge"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Següent"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["No s'ha trobat cap emoji"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Sense resultats"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Objectes"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Atura la presentació"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Persones i cos"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Trieu un emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Anterior"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Cerca"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Resultats de cerca"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Selecciona una etiqueta"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Paràmetres"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Navegació d'opcions"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Cares i emocions"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Inicia la presentació"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Símbols"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Viatges i llocs"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["No es pot cercar el grup"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:152"},msgstr:["Escriu un missatge, @ per mencionar algú..."]}}}}},{locale:"cs_CZ",json:{charset:"utf-8",headers:{"Last-Translator":"Pavel Borecki <pavel.borecki@gmail.com>, 2020","Language-Team":"Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs_CZ","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPavel Borecki <pavel.borecki@gmail.com>, 2020\n"},msgstr:["Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2020\nLanguage-Team: Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (neviditelný)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (omezený)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Akce"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Aktivity"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Zvířata a příroda"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Zvolit"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Zavřít"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Uživatelsky určené"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Příznaky"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Jídlo a pití"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Často používané"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["Dosaženo limitu počtu znaků {count}"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Následující"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Nenalezeno žádné emoji"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Žádné výsledky"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Objekty"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pozastavit prezentaci"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Lidé a tělo"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Vyberte emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Předchozí"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Hledat"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Výsledky hledání"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Vybrat štítek"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Nastavení"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Pohyb po nastavení"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Úsměvy a emoce"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Spustit prezentaci"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Symboly"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Cestování a místa"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Nedaří se hledat skupinu"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["Pište zprávu, pokud chcete někoho zmínit, použijte @ …"]}}}}},{locale:"da",json:{charset:"utf-8",headers:{"Last-Translator":"Thomas Nielsen <thsnielsen@gmail.com>, 2020","Language-Team":"Danish (https://www.transifex.com/nextcloud/teams/64236/da/)","Content-Type":"text/plain; charset=UTF-8",Language:"da","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nThomas Nielsen <thsnielsen@gmail.com>, 2020\n"},msgstr:["Last-Translator: Thomas Nielsen <thsnielsen@gmail.com>, 2020\nLanguage-Team: Danish (https://www.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (usynlig)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (begrænset)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:247"},msgstr:["Handlinger"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Vælg"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Luk"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Videre"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:172\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:["Ingen resultater"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Suspender fremvisning"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Forrige"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Vælg et mærke"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Indstillinger"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Start fremvisning"]}}}}},{locale:"de",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2020","Language-Team":"German (https://www.transifex.com/nextcloud/teams/64236/de/)","Content-Type":"text/plain; charset=UTF-8",Language:"de","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPhilipp Fischbeck <pfischbeck@googlemail.com>, 2020\nAndreas Eitel <github-aneitel@online.de>, 2020\nJoachim Sokolowski, 2020\nMark Ziegler <mark.ziegler@rakekniven.de>, 2020\nMario Siegmann <mario_siegmann@web.de>, 2020\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2020\nLanguage-Team: German (https://www.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (unsichtbar)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (eingeschränkt)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Aktionen"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Aktivitäten"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Tiere & Natur"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Auswählen"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Schließen"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Benutzerdefiniert"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Flaggen"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Essen & Trinken"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Häufig verwendet"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Weiter"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Kein Emoji gefunden"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Keine Ergebnisse"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Gegenstände"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Diashow pausieren"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Menschen & Körper"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Ein Emoji auswählen"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Vorherige"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Suche"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Suchergebnisse"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Schlagwort auswählen"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Einstellungen"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Einstellungen-Navigation"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Smileys & Emotionen"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Diashow starten"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Symbole"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Reisen & Orte"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Die Gruppe konnte nicht durchsucht werden"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:126"},msgstr:["Nachricht schreiben, @ um jemanden zu erwähnen ..."]}}}}},{locale:"de_DE",json:{charset:"utf-8",headers:{"Last-Translator":"Mario Siegmann <mario_siegmann@web.de>, 2020","Language-Team":"German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)","Content-Type":"text/plain; charset=UTF-8",Language:"de_DE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPhilipp Fischbeck <pfischbeck@googlemail.com>, 2020\nProfDrJones <jones@fs.cs.hm.edu>, 2020\nMark Ziegler <mark.ziegler@rakekniven.de>, 2020\nMario Siegmann <mario_siegmann@web.de>, 2020\n"},msgstr:["Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2020\nLanguage-Team: German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (unsichtbar)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (eingeschränkt)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Aktionen"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Aktivitäten"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Tiere & Natur"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Auswählen"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Schließen"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Benutzerdefiniert"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Flaggen"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Essen & Trinken"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Häufig verwendet"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["Nachrichtenlimit von {count} Zeichen erreicht"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Weiter"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Kein Emoji gefunden"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Keine Ergebnisse"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Gegenstände"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Diashow pausieren"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Menschen & Körper"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Ein Emoji auswählen"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Vorherige"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Suche"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Suchergebnisse"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Schlagwort auswählen"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Einstellungen"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Einstellungen-Navigation"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Smileys & Emotionen"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Diashow starten"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Symbole"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Reisen & Orte"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Die Gruppe kann nicht durchsucht werden"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["Nachricht schreiben, @ um jemanden zu erwähnen ..."]}}}}},{locale:"el",json:{charset:"utf-8",headers:{"Last-Translator":"Efstathios Iosifidis <iefstathios@gmail.com>, 2020","Language-Team":"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)","Content-Type":"text/plain; charset=UTF-8",Language:"el","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\ngeorge k <norhorn@gmail.com>, 2020\nEfstathios Iosifidis <iefstathios@gmail.com>, 2020\n"},msgstr:["Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>, 2020\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (αόρατο)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (περιορισμένο)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:249"},msgstr:["Ενέργειες"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Δραστηριότητες"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Ζώα & Φύση"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Επιλογή"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Κλείσιμο"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Προσαρμογή"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Σημαίες"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Φαγητό & Ποτό"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Συχνά χρησιμοποιούμενο"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Επόμενο"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Δεν βρέθηκε emoji"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Κανένα αποτέλεσμα"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Αντικείμενα"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Παύση προβολής διαφανειών"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Άνθρωποι & Σώμα"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Επιλέξτε ένα emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Προηγούμενο"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Αναζήτηση"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Αποτελέσματα αναζήτησης"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Επιλογή ετικέτας"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Ρυθμίσεις"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Φατσούλες & Συναίσθημα"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Έναρξη προβολής διαφανειών"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Σύμβολα"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Ταξίδια & Τοποθεσίες"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Δεν είναι δυνατή η αναζήτηση της ομάδας"]}}}}},{locale:"es",json:{charset:"utf-8",headers:{"Last-Translator":"asd fgh <c1@cgps.xyz>, 2020","Language-Team":"Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)","Content-Type":"text/plain; charset=UTF-8",Language:"es","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\njavier san felipe <jsanfe@gmail.com>, 2020\nasd fgh <c1@cgps.xyz>, 2020\n"},msgstr:["Last-Translator: asd fgh <c1@cgps.xyz>, 2020\nLanguage-Team: Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{etiqueta} (invisible)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{etiqueta} (restringido)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:247"},msgstr:["acciones"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Elige"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Cierra"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Siguiente"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:172\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:[" Ningún resultado"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pausa la presentación "]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Anterior"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Selecciona una etiqueta"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Ajustes"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Comienza la presentación "]}}}}},{locale:"eu",json:{charset:"utf-8",headers:{"Last-Translator":"Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020","Language-Team":"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)","Content-Type":"text/plain; charset=UTF-8",Language:"eu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"Translators:\nAsier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020\n"},msgstr:["Last-Translator: Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:169"},msgstr:["{tag} (ikusezina)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:172"},msgstr:["{tag} (mugatua)"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Aukeratu"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:109"},msgstr:["Itxi"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:154"},msgstr:["Hurrengoa"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:169\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:["Emaitzarik ez"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:290"},msgstr:["Pausatu diaporama"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:134"},msgstr:["Aurrekoa"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Hautatu etiketa bat"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Ezarpenak"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:290"},msgstr:["Hasi diaporama"]}}}}},{locale:"fi_FI",json:{charset:"utf-8",headers:{"Last-Translator":"teemue, 2020","Language-Team":"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)","Content-Type":"text/plain; charset=UTF-8",Language:"fi_FI","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRobin Lahtinen <robin.lahtinen@gmail.com>, 2020\nteemue, 2020\n"},msgstr:["Last-Translator: teemue, 2020\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (näkymätön)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (rajoitettu)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Toiminnot"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Aktiviteetit"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Eläimet & luonto"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Valitse"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Sulje"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Mukautettu"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Liput"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Ruoka & juoma"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Usein käytetyt"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:255"},msgstr:["Viestin maksimimerkkimäärä {count} täynnä "]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Seuraava"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Emojia ei löytynyt"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Ei tuloksia"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Esineet & asiat"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Keskeytä diaesitys"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Ihmiset & keho"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Valitse emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Edellinen"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Etsi"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Hakutulokset"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Valitse tagi"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Asetukset"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Asetusnavigaatio"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Hymiöt ja & tunteet"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Aloita diaesitys"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Symbolit"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Matkustus & kohteet"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Ryhmää ei voi hakea"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:152"},msgstr:["Kirjoita viesti, @ mainitaksesi jonkun..."]}}}}},{locale:"fr",json:{charset:"utf-8",headers:{"Last-Translator":"Julien Veyssier <eneiluj@gmx.fr>, 2020","Language-Team":"French (https://www.transifex.com/nextcloud/teams/64236/fr/)","Content-Type":"text/plain; charset=UTF-8",Language:"fr","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBrendan Abolivier <transifex@brendanabolivier.com>, 2020\ngud bes <gudbes@protonmail.com>, 2020\nGreg Greg <grena@grenabox.fr>, 2020\nLuclu7 <theluc7andcompagnie@gmail.com>, 2020\nJulien Veyssier <eneiluj@gmx.fr>, 2020\n"},msgstr:["Last-Translator: Julien Veyssier <eneiluj@gmx.fr>, 2020\nLanguage-Team: French (https://www.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (invisible)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (restreint)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:249"},msgstr:["Actions"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Activités"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Animaux & Nature"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Choisir"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Fermer"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Personnalisé"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Drapeaux"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Nourriture & Boissons"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Utilisés fréquemment"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Suivant"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Pas d’émoji trouvé"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Aucun résultat"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Objets"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Mettre le diaporama en pause"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Personnes & Corps"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Choisissez un émoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Précédent"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Chercher"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Résultats de recherche"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Sélectionnez une balise"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Paramètres"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Smileys & Émotions"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Démarrer le diaporama"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Symboles"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Voyage & Lieux"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Impossible de chercher le groupe"]}}}}},{locale:"gl",json:{charset:"utf-8",headers:{"Last-Translator":"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2020","Language-Team":"Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)","Content-Type":"text/plain; charset=UTF-8",Language:"gl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2020\n"},msgstr:["Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2020\nLanguage-Team: Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (invisíbel)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (restrinxido)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Accións"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Actividades"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Animais e natureza"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Escoller"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Pechar"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Personalizado"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Bandeiras"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Comida e bebida"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Usado con frecuencia"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["Acadouse o límite de {count} caracteres por mensaxe"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Seguinte"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Non se atopou ningún «emoji»"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Sen resultados"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Obxectos"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pausar o diaporama"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Persoas e corpo"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Escolla un «emoji»"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Anterir"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Buscar"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Resultados da busca"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Seleccione unha etiqueta"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Axustes"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Navegación de axustes"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Sorrisos e emocións"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Iniciar o diaporama"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Símbolos"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Viaxes e lugares"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Non foi posíbel buscar o grupo"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["Escriba a mensaxe, @ para mencionar a alguén…"]}}}}},{locale:"he",json:{charset:"utf-8",headers:{"Last-Translator":"Yaron Shahrabani <sh.yaron@gmail.com>, 2020","Language-Team":"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)","Content-Type":"text/plain; charset=UTF-8",Language:"he","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nYaron Shahrabani <sh.yaron@gmail.com>, 2020\n"},msgstr:["Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>, 2020\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (נסתר)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (מוגבל)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:249"},msgstr:["פעולות"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["פעילויות"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["חיות וטבע"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["בחירה"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["סגירה"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["בהתאמה אישית"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["דגלים"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["מזון ומשקאות"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["בשימוש תדיר"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["הבא"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["לא נמצא אמוג׳י"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["אין תוצאות"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["חפצים"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["השהיית מצגת"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["אנשים וגוף"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["נא לבחור אמוג׳י"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["הקודם"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["חיפוש"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["תוצאות חיפוש"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["בחירת תגית"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["הגדרות"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["חייכנים ורגשונים"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["התחלת המצגת"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["סמלים"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["טיולים ומקומות"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["לא ניתן לחפש בקבוצה"]}}}}},{locale:"hu_HU",json:{charset:"utf-8",headers:{"Last-Translator":"asbot10 <asbot000@gmail.com>, 2020","Language-Team":"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu_HU","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"Translators:\nBalázs Meskó <mesko.balazs@fsf.hu>, 2020\nasbot10 <asbot000@gmail.com>, 2020\n"},msgstr:["Last-Translator: asbot10 <asbot000@gmail.com>, 2020\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (láthatatlan)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (korlátozott)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:197"},msgstr:["Műveletek"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Válassszon"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Bezárás"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Következő"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:172\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:["Nincs találat"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Diavetítés szüneteltetése"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Előző"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Válasszon címkét"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Beállítások"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Diavetítés indítása"]}}}}},{locale:"is",json:{charset:"utf-8",headers:{"Last-Translator":"Sveinn í Felli <sv1@fellsnet.is>, 2020","Language-Team":"Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)","Content-Type":"text/plain; charset=UTF-8",Language:"is","Plural-Forms":"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nSveinn í Felli <sv1@fellsnet.is>, 2020\n"},msgstr:["Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2020\nLanguage-Team: Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (ósýnilegt)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (takmarkað)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Aðgerðir"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Aðgerðir"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Dýr og náttúra"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Velja"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Loka"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Sérsniðið"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Flögg"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Matur og drykkur"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Oftast notað"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Næsta"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Ekkert tjáningartákn fannst"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Engar niðurstöður"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Hlutir"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Gera hlé á skyggnusýningu"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Fólk og líkami"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Veldu tjáningartákn"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Fyrri"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Leita"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Leitarniðurstöður"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Veldu merki"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Stillingar"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Broskallar og tilfinningar"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Byrja skyggnusýningu"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Tákn"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Staðir og ferðalög"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Get ekki leitað í hópnum"]}}}}},{locale:"it",json:{charset:"utf-8",headers:{"Last-Translator":"Vincenzo Reale <vinx.reale@gmail.com>, 2020","Language-Team":"Italian (https://www.transifex.com/nextcloud/teams/64236/it/)","Content-Type":"text/plain; charset=UTF-8",Language:"it","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRandom_R, 2020\nVincenzo Reale <vinx.reale@gmail.com>, 2020\n"},msgstr:["Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>, 2020\nLanguage-Team: Italian (https://www.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (invisibile)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (limitato)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Azioni"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Attività"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Animali e natura"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Scegli"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Chiudi"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Personalizzato"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Bandiere"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Cibo e bevande"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Usati di frequente"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["Limite dei messaggi di {count} caratteri raggiunto"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Successivo"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Nessun emoji trovato"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Nessun risultato"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Oggetti"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Presentazione in pausa"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Persone e corpo"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Scegli un emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Precedente"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Cerca"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Risultati di ricerca"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Seleziona un'etichetta"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Impostazioni"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Navigazione delle impostazioni"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Faccine ed emozioni"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Avvia presentazione"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Simboli"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Viaggi e luoghi"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Impossibile cercare il gruppo"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["Scrivi messaggio, @ per menzionare qualcuno…"]}}}}},{locale:"ja_JP",json:{charset:"utf-8",headers:{"Last-Translator":"YANO Tetsu <tetuyano+transi@gmail.com>, 2020","Language-Team":"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)","Content-Type":"text/plain; charset=UTF-8",Language:"ja_JP","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nYANO Tetsu <tetuyano+transi@gmail.com>, 2020\n"},msgstr:["Last-Translator: YANO Tetsu <tetuyano+transi@gmail.com>, 2020\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{タグ} (不可視)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{タグ} (制限付)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:249"},msgstr:["操作"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["アクティビティ"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["動物と自然"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["選択"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["閉じる"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["カスタム"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["国旗"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["食べ物と飲み物"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["よく使うもの"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["次"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["絵文字が見つかりません"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["なし"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["物"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["スライドショーを一時停止"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["様々な人と体の部位"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["絵文字を選択"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["前"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["検索"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["検索結果"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["タグを選択"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["設定"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["笑顔と気持ち"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["スライドショーを開始"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["記号"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["旅行と場所"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["グループを検索できません"]}}}}},{locale:"lt_LT",json:{charset:"utf-8",headers:{"Last-Translator":"Moo, 2020","Language-Team":"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)","Content-Type":"text/plain; charset=UTF-8",Language:"lt_LT","Plural-Forms":"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMoo, 2020\n"},msgstr:["Last-Translator: Moo, 2020\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (nematoma)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (apribota)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Veiksmai"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Veiklos"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Gyvūnai ir gamta"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Pasirinkti"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Užverti"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Tinkinti"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Vėliavos"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Maistas ir gėrimai"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Dažniausiai naudoti"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Kitas"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Nerasta jaustukų"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Nėra rezultatų"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Objektai"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pristabdyti skaidrių rodymą"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Žmonės ir kūnas"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Pasirinkti jaustuką"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Ankstesnis"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Ieškoti"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Paieškos rezultatai"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Pasirinkti žymę"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Nustatymai"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Šypsenos ir emocijos"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pradėti skaidrių rodymą"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Simboliai"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Kelionės ir vietos"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Nepavyko atlikti paiešką grupėje"]}}}}},{locale:"lv",json:{charset:"utf-8",headers:{"Last-Translator":"stendec <stendec@inbox.lv>, 2020","Language-Team":"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)","Content-Type":"text/plain; charset=UTF-8",Language:"lv","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"Translators:\nstendec <stendec@inbox.lv>, 2020\n"},msgstr:["Last-Translator: stendec <stendec@inbox.lv>, 2020\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:169"},msgstr:["{tag} (neredzams)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:172"},msgstr:["{tag} (ierobežots)"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Izvēlēties"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:109"},msgstr:["Aizvērt"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:154"},msgstr:["Nākamais"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:169\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:["Nav rezultātu"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:290"},msgstr:["Pauzēt slaidrādi"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:134"},msgstr:["Iepriekšējais"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Izvēlēties birku"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Iestatījumi"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:290"},msgstr:["Sākt slaidrādi"]}}}}},{locale:"mk",json:{charset:"utf-8",headers:{"Last-Translator":"Сашко Тодоров, 2020","Language-Team":"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)","Content-Type":"text/plain; charset=UTF-8",Language:"mk","Plural-Forms":"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nСашко Тодоров, 2020\n"},msgstr:["Last-Translator: Сашко Тодоров, 2020\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (невидливо)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (ограничено)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Акции"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Активности"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Животни & Природа"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Избери"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Затвори"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Прилагодени"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Знамиња"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Храна & Пијалоци"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Најчесто користени"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["Ограничувањето на должината на пораката од {count} карактери е надминато"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Следно"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Не се пронајдени емотикони"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Нема резултати"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Објекти"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Пузирај слајдшоу"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Луѓе & Тело"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Избери емотикон"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Предходно"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Барај"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Резултати од барувањето"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Избери ознака"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Параметри"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Параметри за навигација"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Смешковци & Емотикони"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Стартувај слајдшоу"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Симболи"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Патувања & Места"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Неможе да се принајде групата"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["Напиши порака, @ за да спомнеш некој …"]}}}}},{locale:"nb_NO",json:{charset:"utf-8",headers:{"Last-Translator":"sverre.vikan <sverre.vikan@gmail.com>, 2020","Language-Team":"Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nb_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nOle Jakob Brustad <ole.jakob@brustadbuss.no>, 2020\nsverre.vikan <sverre.vikan@gmail.com>, 2020\n"},msgstr:["Last-Translator: sverre.vikan <sverre.vikan@gmail.com>, 2020\nLanguage-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (usynlig)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (beskyttet)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Handlinger"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Aktiviteter"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Dyr og natur"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Velg"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Lukk"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Selvvalgt"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Flagg"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Mat og drikke"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Ofte brukt"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Neste"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Fant ingen emoji"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Ingen resultater"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Objekter"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pause lysbildefremvisning"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Mennesker og kropp"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Velg en emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Forrige"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Søk"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Søkeresultater"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Velg en merkelapp"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Innstillinger"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Smilefjes og følelser"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Start lysbildefremvisning"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Symboler"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Reise og steder"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Kunne ikke søke i gruppen"]}}}}},{locale:"nl",json:{charset:"utf-8",headers:{"Last-Translator":"Arjan van S, 2020","Language-Team":"Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)","Content-Type":"text/plain; charset=UTF-8",Language:"nl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"Translators:\nRoeland Jago Douma <roeland@famdouma.nl>, 2020\nArjan van S, 2020\n"},msgstr:["Last-Translator: Arjan van S, 2020\nLanguage-Team: Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (onzichtbaar)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (beperkt)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:196"},msgstr:["Acties"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Kies"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Sluiten"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Volgende"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:172\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:["Geen resultaten"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pauzeer diavoorstelling"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Vorige"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Selecteer een label"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Instellingen"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Start diavoorstelling"]}}}}},{locale:"oc",json:{charset:"utf-8",headers:{"Last-Translator":"Quentin PAGÈS, 2020","Language-Team":"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)","Content-Type":"text/plain; charset=UTF-8",Language:"oc","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"Translators:\nQuentin PAGÈS, 2020\n"},msgstr:["Last-Translator: Quentin PAGÈS, 2020\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (invisible)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (limit)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:194"},msgstr:["Accions"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Causir"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Tampar"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Seguent"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:172\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:["Cap de resultat"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Metre en pausa lo diaporama"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Precedent"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Seleccionar una etiqueta"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Paramètres"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Lançar lo diaporama"]}}}}},{locale:"pl",json:{charset:"utf-8",headers:{"Last-Translator":"Valdnet, 2020","Language-Team":"Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)","Content-Type":"text/plain; charset=UTF-8",Language:"pl","Plural-Forms":"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nArtur Skoczylas <art.skoczylas@gmail.com>, 2020\nValdnet, 2020\n"},msgstr:["Last-Translator: Valdnet, 2020\nLanguage-Team: Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (niewidoczna)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (ograniczona)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Działania"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Aktywność"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Zwierzęta i natura"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Wybierz"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Zamknij"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Zwyczajne"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Flagi"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Jedzenie i picie"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Często używane"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["Przekroczono limit wiadomości wynoszący {count} znaków"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Następny"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Nie znaleziono emotikonów"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Brak wyników"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Obiekty"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Wstrzymaj pokaz slajdów"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Ludzie i ciało"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Wybierz emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Poprzedni"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Szukaj"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Wyniki wyszukiwania"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Wybierz etykietę"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Ustawienia"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Nawigacja ustawień"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Buźki i emotikony"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Rozpocznij pokaz slajdów"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Symbole"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Podróże i miejsca"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Nie można przeszukać grupy"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["Napisz wiadomość, aby wspomnieć o kimś użyj @…"]}}}}},{locale:"pt_BR",json:{charset:"utf-8",headers:{"Last-Translator":"Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatica@protonmail.com>, 2020","Language-Team":"Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_BR","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMaurício Gardini <accounts@mauriciogardini.com>, 2020\nPaulo Schopf, 2020\nRodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatica@protonmail.com>, 2020\n"},msgstr:["Last-Translator: Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatica@protonmail.com>, 2020\nLanguage-Team: Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (invisível)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (restrito) "]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Ações"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Atividades"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Animais & Natureza"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Escolher"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Fechar"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Personalizado"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Bandeiras"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Comida & Bebida"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Mais usados"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["Limite de mensagem de {count} caracteres atingido"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Próximo"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Nenhum emoji encontrado"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Sem resultados"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Objetos"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pausar apresentação de slides"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Pessoas & Corpo"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Escolha um emoji"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Anterior"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Pesquisar"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Resultados da pesquisa"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Selecionar uma tag"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Configurações"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Navegação nas configurações"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Smiles & Emoções"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Iniciar apresentação de slides"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Símbolo"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Viagem & Lugares"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Não foi possível pesquisar o grupo"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["Escreva mensagem, @ para mencionar alguém ..."]}}}}},{locale:"pt_PT",json:{charset:"utf-8",headers:{"Last-Translator":"Manuela Silva <manuelarodsilva@gmail.com>, 2020","Language-Team":"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_PT","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nfpapoila <fpapoila@gmail.com>, 2020\nManuela Silva <manuelarodsilva@gmail.com>, 2020\n"},msgstr:["Last-Translator: Manuela Silva <manuelarodsilva@gmail.com>, 2020\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (invisivel)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (restrito)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:249"},msgstr:["Ações"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Escolher"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Fechar"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Seguinte"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Sem resultados"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pausar diaporama"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Anterior"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Selecionar uma etiqueta"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Definições"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Iniciar diaporama"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Não é possível pesquisar o grupo"]}}}}},{locale:"ru",json:{charset:"utf-8",headers:{"Last-Translator":"Alex <kekcuha@gmail.com>, 2020","Language-Team":"Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"Translators:\nAlex <kekcuha@gmail.com>, 2020\n"},msgstr:["Last-Translator: Alex <kekcuha@gmail.com>, 2020\nLanguage-Team: Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:169"},msgstr:["{tag} (невидимое)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:172"},msgstr:["{tag} (ограниченное)"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Выберите"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:109"},msgstr:["Закрыть"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:154"},msgstr:["Следующее"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:169\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:["Результаты отсуствуют"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:290"},msgstr:["Приостановить показ слйдов"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:134"},msgstr:["Предыдущее"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Выберите метку"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Параметры"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:290"},msgstr:["Начать показ слайдов"]}}}}},{locale:"sk_SK",json:{charset:"utf-8",headers:{"Last-Translator":"Anton Kuchár <tonokuc@pobox.sk>, 2020","Language-Team":"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)","Content-Type":"text/plain; charset=UTF-8",Language:"sk_SK","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nAnton Kuchár <tonokuc@pobox.sk>, 2020\n"},msgstr:["Last-Translator: Anton Kuchár <tonokuc@pobox.sk>, 2020\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (neviditeľný)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (obmedzený)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:249"},msgstr:["Akcie"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Aktivity"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Zvieratá a príroda"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Vybrať"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Zatvoriť"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Zvyk"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Vlajky"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Jedlo a nápoje"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Často používané"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Ďalší"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Nenašli sa žiadne emodži"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Žiadne výsledky"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Objekty"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pozastaviť prezentáciu"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Ľudia a telo"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Vyberte si emodži"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Predchádzajúci"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Hľadať"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Výsledky vyhľadávania"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Vybrať štítok"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Nastavenia"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Smajlíky a emócie"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Začať prezentáciu"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Symboly"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Cestovanie a miesta"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Skupinu sa nepodarilo nájsť"]}}}}},{locale:"sl",json:{charset:"utf-8",headers:{"Last-Translator":"Matej Urbančič <>, 2020","Language-Team":"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMatej Urbančič <>, 2020\n"},msgstr:["Last-Translator: Matej Urbančič <>, 2020\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (nevidno)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (omejeno)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["Dejanja"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Dejavnosti"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Živali in Narava"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Izbor"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Zapri"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Po meri"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Zastavice"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Hrana in Pijača"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Pogostost uporabe"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Naslednji"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Ni najdenih izraznih ikon"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Ni zadetkov"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Predmeti"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Ustavi predstavitev"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Ljudje in Telo"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Izbor izrazne ikone"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Predhodni"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Iskanje"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Zadetki iskanja"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Izbor oznake"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Nastavitve"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Krmarjenje nastavitev"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Izrazne ikone"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Začni predstavitev"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Simboli"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Potovanja in Kraji"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Ni mogoče iskati po skuspini"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:126"},msgstr:["Napišite sporočilo, z @ omenite osebo ..."]}}}}},{locale:"sv",json:{charset:"utf-8",headers:{"Last-Translator":"Jonatan Nyberg, 2020","Language-Team":"Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)","Content-Type":"text/plain; charset=UTF-8",Language:"sv","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"Translators:\nGabriel Ekström <gabriel.ekstrom06@gmail.com>, 2020\nErik Lennartsson, 2020\nJonatan Nyberg, 2020\n"},msgstr:["Last-Translator: Jonatan Nyberg, 2020\nLanguage-Team: Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (osynlig)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (begränsad)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:194"},msgstr:["Åtgärder"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Välj"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Stäng"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Nästa"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:172\nsrc/components/MultiselectTags/MultiselectTags.vue:78"},msgstr:["Inga resultat"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Pausa bildspel"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Föregående"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Välj en tag"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Inställningar"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Starta bildspel"]}}}}},{locale:"tr",json:{charset:"utf-8",headers:{"Last-Translator":"Kaya Zeren <kayazeren@gmail.com>, 2020","Language-Team":"Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)","Content-Type":"text/plain; charset=UTF-8",Language:"tr","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nKemal Oktay Aktoğan <oktayaktogan@gmail.com>, 2020\nabc Def <hdogan1974@gmail.com>, 2020\nKaya Zeren <kayazeren@gmail.com>, 2020\n"},msgstr:["Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2020\nLanguage-Team: Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (görünmez)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (kısıtlı)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["İşlemler"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Etkinlikler"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Hayvanlar ve Doğa"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Seçin"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Kapat"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Özel"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Bayraklar"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Yeme ve İçme"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Sık kullanılanlar"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["{count} karakter ileti sınırına ulaşıldı"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Sonraki"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Herhangi bir emoji bulunamadı"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Herhangi bir sonuç bulunamadı"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Nesneler"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Slayt sunumunu duraklat"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["İnsanlar ve Beden"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Bir emoji seçin"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Önceki"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Arama"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Arama sonuçları"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Bir etiket seçin"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["Ayarlar"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["Gezinme ayarları"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["İfadeler ve Duygular"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Slayt sunumunu başlat"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Simgeler"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Gezi ve Yerler"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Grupta arama yapılamadı"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["İletiyi yazın. Birini anmak için @ kullanın …"]}}}}},{locale:"uk",json:{charset:"utf-8",headers:{"Last-Translator":"Oleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020","Language-Team":"Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)","Content-Type":"text/plain; charset=UTF-8",Language:"uk","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nOleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\n"},msgstr:["Last-Translator: Oleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\nLanguage-Team: Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (invisible)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (restricted)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:249"},msgstr:["Дії"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["Діяльність"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["Тварини та природа"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["Виберіть"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["Закрити"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["Власне"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["Прапори"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["Їжа та напитки"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["Найчастіші"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["Вперед"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["Емоційки відсутні"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["Відсутні результати"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["Об'єкти"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Пауза у показі слайдів"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["Люди та жести"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["Виберіть емоційку"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["Назад"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["Пошук"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["Результати пошуку"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["Виберіть позначку"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:53"},msgstr:["Налаштування"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["Усміхайлики та емоційки"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["Почати показ слайдів"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["Символи"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["Поїздки та місця"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["Неможливо шукати в групі"]}}}}},{locale:"zh_CN",json:{charset:"utf-8",headers:{"Last-Translator":"tranxde, 2020","Language-Team":"Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_CN","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nSleepyJesse <Jesse_Xu@live.com>, 2020\nJianming Liang <fuufuukun@163.com>, 2020\nPascal Janus <pascal_janus@163.com>, 2020\nToms Project <tom@projectoms.com>, 2020\ntranxde, 2020\n"},msgstr:["Last-Translator: tranxde, 2020\nLanguage-Team: Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (不可见)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (受限)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["行为"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["活动"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["动物 & 自然"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["选择"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["关闭"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["自定义"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["旗帜"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["食物 & 饮品"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["经常使用"]},"Message limit of {count} characters reached":{msgid:"Message limit of {count} characters reached",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:254"},msgstr:["已达到 {count} 个字符的消息限制"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["下一个"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["表情未找到"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["无结果"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["物体"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["暂停幻灯片"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["人 & 身体"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["选择一个表情"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["上一个"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["搜索"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["搜索结果"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["选择一个标签"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["设置"]},"Settings navigation":{msgid:"Settings navigation",comments:{reference:"src/components/AppSettingsDialog/AppSettingsDialog.vue:106"},msgstr:["设置向导"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["笑脸 & 情感"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["开始幻灯片"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["符号"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["旅游 & 地点"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["无法搜索分组"]},"Write message, @ to mention someone …":{msgid:"Write message, @ to mention someone …",comments:{reference:"src/components/RichContenteditable/RichContenteditable.vue:151"},msgstr:["输入消息,输入 @ 来提醒某人"]}}}}},{locale:"zh_TW",json:{charset:"utf-8",headers:{"Last-Translator":"Natashia Maxins <railroad1987@gmail.com>, 2020","Language-Team":"Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_TW","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nbyStarTW (pan93412) <pan93412@gmail.com>, 2020\nNatashia Maxins <railroad1987@gmail.com>, 2020\n"},msgstr:["Last-Translator: Natashia Maxins <railroad1987@gmail.com>, 2020\nLanguage-Team: Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n"]},"{tag} (invisible)":{msgid:"{tag} (invisible)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:170"},msgstr:["{tag} (隱藏)"]},"{tag} (restricted)":{msgid:"{tag} (restricted)",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:173"},msgstr:["{tag} (受限)"]},Actions:{msgid:"Actions",comments:{reference:"src/components/Actions/Actions.vue:254"},msgstr:["動作"]},Activities:{msgid:"Activities",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:176"},msgstr:["活動"]},"Animals & Nature":{msgid:"Animals & Nature",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:174"},msgstr:["動物與自然"]},Choose:{msgid:"Choose",comments:{reference:"src/components/ColorPicker/ColorPicker.vue:145"},msgstr:["選擇"]},Close:{msgid:"Close",comments:{reference:"src/components/Modal/Modal.vue:117"},msgstr:["關閉"]},Custom:{msgid:"Custom",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:181"},msgstr:["自定義"]},Flags:{msgid:"Flags",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:180"},msgstr:["旗幟"]},"Food & Drink":{msgid:"Food & Drink",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:175"},msgstr:["食物與飲料"]},"Frequently used":{msgid:"Frequently used",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:171"},msgstr:["最近使用"]},Next:{msgid:"Next",comments:{reference:"src/components/Modal/Modal.vue:166"},msgstr:["下一個"]},"No emoji found":{msgid:"No emoji found",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:168"},msgstr:["未找到表情符號"]},"No results":{msgid:"No results",comments:{reference:"src/components/Multiselect/Multiselect.vue:174\nsrc/components/MultiselectTags/MultiselectTags.vue:78\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38"},msgstr:["無結果"]},Objects:{msgid:"Objects",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:178"},msgstr:["物件"]},"Pause slideshow":{msgid:"Pause slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["暫停幻燈片"]},"People & Body":{msgid:"People & Body",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:173"},msgstr:["人物"]},"Pick an emoji":{msgid:"Pick an emoji",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:153"},msgstr:["選擇表情符號"]},Previous:{msgid:"Previous",comments:{reference:"src/components/Modal/Modal.vue:144"},msgstr:["上一個"]},Search:{msgid:"Search",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:167"},msgstr:["搜尋"]},"Search results":{msgid:"Search results",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:170"},msgstr:["搜尋結果"]},"Select a tag":{msgid:"Select a tag",comments:{reference:"src/components/MultiselectTags/MultiselectTags.vue:100"},msgstr:["選擇標籤"]},Settings:{msgid:"Settings",comments:{reference:"src/components/AppNavigationSettings/AppNavigationSettings.vue:57"},msgstr:["設定"]},"Smileys & Emotion":{msgid:"Smileys & Emotion",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:172"},msgstr:["表情"]},"Start slideshow":{msgid:"Start slideshow",comments:{reference:"src/components/Modal/Modal.vue:302"},msgstr:["開始幻燈片"]},Symbols:{msgid:"Symbols",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:179"},msgstr:["標誌"]},"Travel & Places":{msgid:"Travel & Places",comments:{reference:"src/components/EmojiPicker/EmojiPicker.vue:177"},msgstr:["旅遊與景點"]},"Unable to search the group":{msgid:"Unable to search the group",comments:{reference:"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143"},msgstr:["無法搜尋群組"]}}}}}].map((function(t){return o.addTranslation(t.locale,t.json)}));var i=o.build(),s=i.ngettext.bind(i),a=i.gettext.bind(i)},function(t,e){t.exports=n(68)},function(t,e){t.exports=n(72)},function(t,e){t.exports=n(199)},function(t,e){t.exports=n(200)},function(t,e){t.exports=n(52)},function(t,e){t.exports=n(39)},function(t,e){t.exports=n(28)},function(t,e){t.exports=n(40)},function(t,e){t.exports=n(57)},function(t,e){t.exports=n(90)},function(t,e,n){"use strict";n.r(e);var r=n(12),o=n(2),i=n.n(o),s=n(24);i()(s.a,{insert:"head",singleton:!1}),s.a.locals,r.VTooltip.options.defaultTemplate='<div class="vue-tooltip" role="tooltip" data-v-'.concat("59f1214",'><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'),r.VTooltip.options.defaultHtml=!1,e.default=r.VTooltip},function(t,e){t.exports=n(53)},function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,".vue-tooltip[data-v-59f1214]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 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))}.vue-tooltip[data-v-59f1214][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-59f1214][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-59f1214][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-59f1214][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-59f1214][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-59f1214][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-59f1214] .tooltip-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)}.vue-tooltip[data-v-59f1214] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\n","",{version:3,sources:["webpack://./index.scss"],names:[],mappings:"AAeA,6BACC,iBAAkB,CAClB,cAAe,CACf,UAAW,CACX,SAAU,CACV,aAAc,CACd,QAAS,CAET,eAAgB,CAChB,cAAe,CACf,eAAgB,CAChB,gBAAiB,CACjB,SAAU,CACV,eAAgB,CAEhB,eAAgB,CAChB,sDAAuD,CAhBxD,gEAqBG,QAAS,CACT,YAAa,CACb,eAAgB,CAChB,6BA1Be,CA2Bf,8BAA+B,CAC/B,+BAAgC,CAChC,6BAA8B,CA3BjC,mEAkCG,KAAM,CACN,YAAa,CACb,eAAgB,CAChB,6BAvCe,CAwCf,4BAA6B,CAC7B,8BAA+B,CAC/B,6BAA8B,CAxCjC,kEA+CG,UAAW,CACX,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,4BAA6B,CAC7B,+BAAgC,CAChC,6BAA8B,CArDjC,iEA4DG,SAAU,CACV,cAAe,CACf,aAAc,CACd,6BAjEe,CAkEf,4BAA6B,CAC7B,8BAA+B,CAC/B,+BAAgC,CAlEnC,iDAwEE,iBAAkB,CAClB,wCAAyC,CACzC,SAAU,CA1EZ,kDA6EE,kBAAmB,CACnB,uBAAwB,CACxB,SAAU,CA/EZ,4CAoFE,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,4BAA6B,CAC7B,kCAAmC,CACnC,6CAA8C,CAzFhD,4CA8FE,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,QAAS,CACT,kBAAmB,CACnB,yCAA0C",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n/**\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\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.vue-tooltip[data-v-#{$scope_version}] {\n\tposition: absolute;\n\tz-index: 100000;\n\tright: auto;\n\tleft: auto;\n\tdisplay: block;\n\tmargin: 0;\n\t/* default to top */\n\tmargin-top: -3px;\n\tpadding: 10px 0;\n\ttext-align: left;\n\ttext-align: start;\n\topacity: 0;\n\tline-height: 1.6;\n\n\tline-break: auto;\n\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t// TOP\n\t&[x-placement^='top'] {\n\t\t.tooltip-arrow {\n\t\t\tbottom: 0;\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\n\t\t\tborder-right-color: transparent;\n\t\t\tborder-bottom-color: transparent;\n\t\t\tborder-left-color: transparent;\n\t\t}\n\t}\n\n\t// BOTTOM\n\t&[x-placement^='bottom'] {\n\t\t.tooltip-arrow {\n\t\t\ttop: 0;\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent;\n\t\t\tborder-right-color: transparent;\n\t\t\tborder-left-color: transparent;\n\t\t}\n\t}\n\n\t// RIGHT\n\t&[x-placement^='right'] {\n\t\t.tooltip-arrow {\n\t\t\tright: 100%;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width $arrow-width $arrow-width 0;\n\t\t\tborder-top-color: transparent;\n\t\t\tborder-bottom-color: transparent;\n\t\t\tborder-left-color: transparent;\n\t\t}\n\t}\n\n\t// LEFT\n\t&[x-placement^='left'] {\n\t\t.tooltip-arrow {\n\t\t\tleft: 100%;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent;\n\t\t\tborder-right-color: transparent;\n\t\t\tborder-bottom-color: transparent;\n\t\t}\n\t}\n\n\t// HIDDEN / SHOWN\n\t&[aria-hidden='true'] {\n\t\tvisibility: hidden;\n\t\ttransition: opacity .15s, visibility .15s;\n\t\topacity: 0;\n\t}\n\t&[aria-hidden='false'] {\n\t\tvisibility: visible;\n\t\ttransition: opacity .15s;\n\t\topacity: 1;\n\t}\n\n\t// CONTENT\n\t.tooltip-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.tooltip-arrow {\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: var(--color-main-background);\n\t}\n}\n"],sourceRoot:""}]),e.a=s},,function(t,e){t.exports=n(95)},function(t,e){t.exports=n(137)},function(t,e){t.exports=n(211)},,,function(t,e){t.exports=n(216)},,function(t,e){t.exports=n(218)},,function(t,e){t.exports=n(132)},,function(t,e,n){"use strict";var r=n(11);e.a={methods:{n:r.a,t:r.b}}},function(t,e){t.exports=n(221)},,function(t,e){t.exports=n(222)},function(t,e){t.exports=n(223)},function(t,e){t.exports=n(155)},function(t,e,n){"use strict";n.r(e);var r=n(5),o=new(n.n(r).a)({data:function(){return{isMobile:!1}},watch:{isMobile:function(t){this.$emit("changed",t)}},created:function(){window.addEventListener("resize",this.handleWindowResize),this.handleWindowResize()},beforeDestroy:function(){window.removeEventListener("resize",this.handleWindowResize)},methods:{handleWindowResize:function(){this.isMobile=document.documentElement.clientWidth<1024}}});e.default={data:function(){return{isMobile:!1}},mounted:function(){o.$on("changed",this.onIsMobileChanged),this.isMobile=o.isMobile},beforeDestroy:function(){o.$off("changed",this.onIsMobileChanged)},methods:{onIsMobileChanged:function(t){this.isMobile=t}}}},,function(t,e){t.exports=n(244)},function(t,e){t.exports=n(245)},function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,".mention-bubble--primary .mention-bubble__content[data-v-724f9d58]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-724f9d58]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-724f9d58]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-724f9d58]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-724f9d58]{color:inherit;background-size:cover}.mention-bubble__title[data-v-724f9d58]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-724f9d58]::before{content:attr(title)}.mention-bubble__select[data-v-724f9d58]{position:absolute;z-index:-1;left:-1000px}\n","",{version:3,sources:["webpack://./MentionBubble.vue"],names:[],mappings:"AAsGC,mEACC,+BAAgC,CAChC,6CAA8C,CAC9C,0CAGA,eAXsB,CAatB,WAAwC,CACxC,0BAA2B,CAC3B,mBAAoB,CACpB,kBAAmB,CACnB,0CAGA,mBAAoB,CACpB,eAAgB,CAChB,kBAAmB,CACnB,cAAe,CACf,WAzBkB,CA0BlB,wBAAyB,CACzB,gBAAiB,CACjB,iBAAkC,CAClC,gBA3BkB,CA4BlB,kBAAiC,CACjC,6CAA8C,CAC9C,uCAGA,iBAAkB,CAClB,UAjCuD,CAkCvD,WAlCuD,CAmCvD,iBAAsC,CACtC,+CAAgD,CAChD,2BAA4B,CAC5B,0BAA2B,CAC3B,oBAA0D,CAE1D,oDACC,aAAc,CACd,qBAAsB,CACtB,wCAID,eAAgB,CAChB,eAlDkB,CAmDlB,kBAAmB,CACnB,sBAAuB,CAJvB,gDAOC,mBAAoB,CACpB,yCAKD,iBAAkB,CAClB,UAAW,CACX,YAAa",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: $bubble-height / 2;\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: $bubble-avatar-size / 2;\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put label in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n"],sourceRoot:""}]),e.a=s},function(t,e){t.exports=n(141)},function(t,e){t.exports=n(246)},function(t,e){t.exports=n(247)},function(t,e,n){"use strict";n.d(e,"a",(function(){return r.default})),n.d(e,"b",(function(){return o.default})),n.d(e,"c",(function(){return i.default})),n.d(e,"d",(function(){return s.default})),n.d(e,"e",(function(){return d}));var r=n(70),o=n(71),i=n(43),s=n(59),a=(n(6),n(57),n(58),n(41)),c=n.n(a),l=n(18),u=n(77),m=n(42);function p(t,e,n,r,o,i,s){try{var a=t[i](s),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,o)}var d={data:function(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{fetchUserStatus:function(t){var e,n=this;return(e=regeneratorRuntime.mark((function e(){var r,o,i,s,a,p,d,f,g;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=Object(u.getCapabilities)(),Object.prototype.hasOwnProperty.call(r,"user_status")&&r.user_status.enabled){e.next=3;break}return e.abrupt("return");case 3:if(Object(m.getCurrentUser)()){e.next=5;break}return e.abrupt("return");case 5:return e.prev=5,e.next=8,c.a.get(Object(l.generateOcsUrl)("apps/user_status/api/v1",2)+"statuses/".concat(encodeURIComponent(t)));case 8:o=e.sent,i=o.data,s=i.ocs.data,a=s.status,p=s.message,d=s.icon,n.userStatus.status=a,n.userStatus.message=p||"",n.userStatus.icon=d||"",n.hasStatus=!0,e.next=22;break;case 17:if(e.prev=17,e.t0=e.catch(5),404!==e.t0.response.status||0!==(null===(f=e.t0.response.data.ocs)||void 0===f||null===(g=f.data)||void 0===g?void 0:g.length)){e.next=21;break}return e.abrupt("return");case 21:console.error(e.t0);case 22:case"end":return e.stop()}}),e,null,[[5,17]])})),function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function s(t){p(i,r,o,s,a,"next",t)}function a(t){p(i,r,o,s,a,"throw",t)}s(void 0)}))})()}}}},,,,function(t,e){t.exports=n(248)},function(t,e){t.exports=n(251)},function(t,e){t.exports=n(252)},function(t,e){t.exports=n(259)},function(t,e,n){"use strict";n.r(e),n.d(e,"USERID_REGEX",(function(){return A})),n.d(e,"USERID_REGEX_WITH_SPACE",(function(){return h})),n(86),n(13),n(56),n(15),n(87),n(88),n(17),n(16),n(23),n(73),n(55);var r=n(5),o=n.n(r),i=n(46),s=n.n(i),a=n(64),c=n.n(a),l=n(18),u={name:"MentionBubble",props:{id:{type:String,required:!0},label:{type:String,required:!0},icon:{type:String,required:!0},source:{type:String,required:!0},primary:{type:Boolean,default:!1}},computed:{avatarUrl:function(){return this.id&&"users"===this.source?this.getAvatarUrl(this.id,44):null},mentionText:function(){return-1===this.id.indexOf(" ")?"@".concat(this.id):'@"'.concat(this.id,'"')}},methods:{getAvatarUrl:function(t,e){return Object(l.generateUrl)("/avatar/{user}/{size}",{user:t,size:e})}}},m=n(2),p=n.n(m),d=n(47),f=(p()(d.a,{insert:"head",singleton:!1}),d.a.locals,n(3)),g=Object(f.a)(u,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("span",{staticClass:"mention-bubble",class:{"mention-bubble--primary":t.primary},attrs:{contenteditable:"false"}},[n("span",{staticClass:"mention-bubble__wrapper"},[n("span",{staticClass:"mention-bubble__content"},[n("span",{staticClass:"mention-bubble__icon",class:[t.icon,"mention-bubble__icon--"+(t.avatarUrl?"with-avatar":"")],style:t.avatarUrl?{backgroundImage:"url("+t.avatarUrl+")"}:null}),t._v(" "),n("span",{staticClass:"mention-bubble__title",attrs:{role:"heading",title:t.label}})]),t._v(" "),n("span",{staticClass:"mention-bubble__select",attrs:{role:"none"}},[t._v(t._s(t.mentionText))])])])}),[],!1,null,"724f9d58",null).exports,A=new RegExp("".concat("(?:^|\\s)","(@[a-zA-Z0-9_.@\\-']+)(").concat("(?:[^a-z]|$)",")"),"gi"),h=new RegExp("".concat("(?:^|\\s)",'(@"[a-zA-Z0-9 _.@\\-\']+")(').concat("(?:[^a-z]|$)",")"),"gi");e.default={props:{userData:{type:Object,default:function(){return{}}}},methods:{renderContent:function(t){var e=this;return c()(t).split(A).map((function(t){return t.split(h)})).flat().map((function(t){if(!t.startsWith("@"))return t;var n=t.replace(/[@"]/gi,"");return" "+e.genSelectTemplate(n)})).join("").replace(/\n/gm,"<br>")},parseContent:function(t){var e=t.replace(/<br>/g,"\n");return e=(e=e.replace(/&nbsp;/g," ")).replace(/<\/div>/gim,"\n"),e=s()(e,"<div>"),s()(e)},genSelectTemplate:function(t){var e=this.userData[t];return e?this.renderComponentHtml(e,g).replace(/[\n\t]/g,""):-1===t.indexOf(" ")?"@".concat(t):'@"'.concat(t,'"')},renderComponentHtml:function(t,e){var n=new(o.a.extend(e))({propsData:t}),r=document.createElement("div"),i=document.createElement("div");r.style.display="none",r.appendChild(i),document.body.appendChild(r),n.$mount(i);var s=r.innerHTML;return n.$destroy(),r.remove(),s}}}},function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,"\nbutton.menuitem[data-v-3ad7b73b] {\n\ttext-align: left;\n}\nbutton.menuitem *[data-v-3ad7b73b] {\n\tcursor: pointer;\n}\nbutton.menuitem[data-v-3ad7b73b]:disabled {\n\topacity: 0.5 !important;\n\tcursor: default;\n}\nbutton.menuitem:disabled *[data-v-3ad7b73b] {\n\tcursor: default;\n}\n.menuitem.active[data-v-3ad7b73b] {\n\tbox-shadow: inset 2px 0 var(--color-primary);\n\tborder-radius: 0;\n}\n","",{version:3,sources:["webpack://./PopoverMenuItem.vue"],names:[],mappings:";AA4HA;CACA,gBAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,uBAAA;CACA,eAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,4CAAA;CACA,gBAAA;AACA",sourcesContent:['\x3c!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n --\x3e\n\n<template>\n\t<li>\n\t\t\x3c!-- If item.href is set, a link will be directly used --\x3e\n\t\t<a v-if="item.href"\n\t\t\t:href="(item.href) ? item.href : \'#\' "\n\t\t\t:target="(item.target) ? item.target : \'\' "\n\t\t\t:download="item.download"\n\t\t\tclass="focusable"\n\t\t\trel="noreferrer noopener"\n\t\t\t@click="action">\n\t\t\t<span v-if="!iconIsUrl" :class="item.icon" />\n\t\t\t<img v-else :src="item.icon">\n\t\t\t<p v-if="item.text && item.longtext">\n\t\t\t\t<strong class="menuitem-text">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class="menuitem-text-detail">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if="item.text">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if="item.longtext">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</a>\n\n\t\t\x3c!-- If item.input is set instead, an put will be used --\x3e\n\t\t<span v-else-if="item.input" class="menuitem" :class="{active: item.active}">\n\t\t\t\x3c!-- does not show if input is checkbox --\x3e\n\t\t\t<span v-if="item.input !== \'checkbox\'" :class="item.icon" />\n\n\t\t\t\x3c!-- only shows if input is text --\x3e\n\t\t\t<form v-if="item.input === \'text\'"\n\t\t\t\t:class="item.input"\n\t\t\t\t@submit.prevent="item.action">\n\t\t\t\t<input :type="item.input"\n\t\t\t\t\t:value="item.value"\n\t\t\t\t\t:placeholder="item.text"\n\t\t\t\t\trequired>\n\t\t\t\t<input type="submit" value="" class="icon-confirm">\n\t\t\t</form>\n\n\t\t\t\x3c!-- checkbox --\x3e\n\t\t\t<template v-else>\n\t\t\t\t<input :id="key"\n\t\t\t\t\tv-model="item.model"\n\t\t\t\t\t:type="item.input"\n\t\t\t\t\t:class="item.input"\n\t\t\t\t\t@change="item.action">\n\t\t\t\t<label :for="key" @click.stop.prevent="item.action">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</label>\n\t\t\t</template>\n\t\t</span>\n\n\t\t\x3c!-- If item.action is set instead, a button will be used --\x3e\n\t\t<button v-else-if="item.action"\n\t\t\tclass="menuitem focusable"\n\t\t\t:class="{active: item.active}"\n\t\t\t:disabled="item.disabled"\n\t\t\t@click.stop.prevent="item.action">\n\t\t\t<span :class="item.icon" />\n\t\t\t<p v-if="item.text && item.longtext">\n\t\t\t\t<strong class="menuitem-text">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class="menuitem-text-detail">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if="item.text">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if="item.longtext">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</button>\n\n\t\t\x3c!-- If item.longtext is set AND the item does not have an action --\x3e\n\t\t<span v-else class="menuitem" :class="{active: item.active}">\n\t\t\t<span :class="item.icon" />\n\t\t\t<p v-if="item.text && item.longtext">\n\t\t\t\t<strong class="menuitem-text">\n\t\t\t\t\t{{ item.text }}\n\t\t\t\t</strong><br>\n\t\t\t\t<span class="menuitem-text-detail">\n\t\t\t\t\t{{ item.longtext }}\n\t\t\t\t</span>\n\t\t\t</p>\n\t\t\t<span v-else-if="item.text">\n\t\t\t\t{{ item.text }}\n\t\t\t</span>\n\t\t\t<p v-else-if="item.longtext">\n\t\t\t\t{{ item.longtext }}\n\t\t\t</p>\n\t\t</span>\n\t</li>\n</template>\n\n<style scoped>\n\tbutton.menuitem {\n\t\ttext-align: left;\n\t}\n\n\tbutton.menuitem * {\n\t\tcursor: pointer;\n\t}\n\n\tbutton.menuitem:disabled {\n\t\topacity: 0.5 !important;\n\t\tcursor: default;\n\t}\n\n\tbutton.menuitem:disabled * {\n\t\tcursor: default;\n\t}\n\n\t.menuitem.active {\n\t\tbox-shadow: inset 2px 0 var(--color-primary);\n\t\tborder-radius: 0;\n\t}\n</style>\n\n<script>\nexport default {\n\tname: \'PopoverMenuItem\',\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: () => {\n\t\t\t\treturn {\n\t\t\t\t\tkey: \'nextcloud-link\',\n\t\t\t\t\thref: \'https://nextcloud.com\',\n\t\t\t\t\ticon: \'icon-links\',\n\t\t\t\t\ttext: \'Nextcloud\',\n\t\t\t\t}\n\t\t\t},\n\t\t\t// check the input types\n\t\t\t// TODO: add more validation of types\n\t\t\tvalidator: item => {\n\t\t\t\t// TODO: support radio\n\t\t\t\tif (item.input) {\n\t\t\t\t\treturn [\'text\', \'checkbox\'].indexOf(item.input) !== -1\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t},\n\t\t},\n\t},\n\tcomputed: {\n\t\t// random key for inputs binding if not provided\n\t\tkey() {\n\t\t\treturn this.item.key\n\t\t\t\t? this.item.key\n\t\t\t\t: Math.round(Math.random() * 16 * 1000000).toString(16)\n\t\t},\n\t\ticonIsUrl() {\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-new\n\t\t\t\tnew URL(this.item.icon)\n\t\t\t\treturn true\n\t\t\t} catch (_) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\t// allow us to use both link and an action on `a`\n\t\t// we still need to make sure item.action exists\n\t\taction(event) {\n\t\t\tif (this.item.action) {\n\t\t\t\tthis.item.action(event)\n\t\t\t}\n\t\t},\n\t},\n}\n<\/script>\n<style lang="scss" scoped>\nli {\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n\n\t> button,\n\t> a,\n\t> .menuitem {\n\t\tcursor: pointer;\n\t\tline-height: $clickable-area;\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-weight: normal;\n\t\tbox-shadow: none;\n\t\twidth: 100%;\n\t\tcolor: var(--color-main-text);\n\t\twhite-space: nowrap;\n\t\topacity: $opacity_normal;\n\n\t\t// TODO split into individual components for readability\n\t\tspan[class^=\'icon-\'],\n\t\tspan[class*=\' icon-\'],\n\t\t&[class^=\'icon-\'],\n\t\t&[class*=\' icon-\'] {\n\t\t\tmin-width: 0; /* Overwrite icons*/\n\t\t\tmin-height: 0;\n\t\t\tbackground-position: #{$icon-margin} center;\n\t\t\tbackground-size: $icon-size;\n\t\t}\n\n\t\tspan[class^=\'icon-\'],\n\t\tspan[class*=\' icon-\'] {\n\t\t\t/* Keep padding to define the width to\n\t\t\t\tassure correct position of a possible text */\n\t\t\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\n\t\t}\n\n\t\t// If no icons set, force left margin to align\n\t\t&:not([class^=\'icon-\']):not([class*=\'icon-\']) {\n\t\t\t> span,\n\t\t\t> input,\n\t\t\t> form {\n\t\t\t\t&:not([class^=\'icon-\']):not([class*=\'icon-\']):first-child {\n\t\t\t\t\tmargin-left: $clickable-area;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&[class^=\'icon-\'],\n\t\t&[class*=\' icon-\'] {\n\t\t\tpadding: 0 $icon-margin 0 $clickable-area;\n\t\t}\n\n\t\t&:not(:disabled):hover,\n\t\t&:not(:disabled):focus,\n\t\t&:not(:disabled).active {\n\t\t\topacity: $opacity_full !important;\n\t\t}\n\n\t\t/* prevent .action class to break the design */\n\t\t&.action {\n\t\t\tpadding: inherit !important;\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// long text area\n\t\t> p {\n\t\t\twidth: 150px;\n\t\t\tline-height: 1.6em;\n\t\t\tpadding: 8px 0;\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t// TODO: do we really supports it?\n\t\t> select {\n\t\t\tmargin: 0;\n\t\t\tmargin-left: 6px;\n\t\t}\n\n\t\t/* Add padding if contains icon+text */\n\t\t&:not(:empty) {\n\t\t\tpadding-right: $icon-margin !important;\n\t\t}\n\n\t\t/* DEPRECATED! old img in popover fallback\n\t\t\t* TODO: to remove */\n\t\t> img {\n\t\t\twidth: $clickable-area;\n\t\t\tpadding: $icon-margin;\n\t\t}\n\n\t\t/* checkbox/radio fixes */\n\t\t> input.radio + label,\n\t\t> input.checkbox + label {\n\t\t\tpadding: 0 !important;\n\t\t\twidth: 100%;\n\t\t}\n\t\t> input.checkbox + label::before {\n\t\t\tmargin: -2px 13px 0;\n\t\t}\n\t\t> input.radio + label::before {\n\t\t\tmargin: -2px 12px 0;\n\t\t}\n\t\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\n\t\t\twidth: 150px;\n\t\t}\n\n\t\t// Forms & text inputs\n\t\tform {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\t/* put a small space between text and form\n\t\t\t\tif there is an element before */\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t\t/* no margin if hidden span before */\n\t\t> span.hidden + form,\n\t\t> span[style*=\'display:none\'] + form {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t/* Inputs inside popover supports text, submit & reset */\n\t\tinput {\n\t\t\tmin-width: $clickable-area;\n\t\t\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\n\t\t\tmargin: 2px 0;\n\t\t\tflex: 1 1 auto;\n\t\t\t// space between inline inputs\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: do that in js, should be cleaner\n\t/* css hack, only first not hidden */\n\t&:not(.hidden):not([style*=\'display:none\']) {\n\t\t&:first-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-top: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:last-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-bottom: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t> button {\n\t\tpadding: 0;\n\t\tspan {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n</style>\n'],sourceRoot:""}]),e.a=s},function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,"li[data-v-3ad7b73b]{display:flex;flex:0 0 auto}li.hidden[data-v-3ad7b73b]{display:none}li>button[data-v-3ad7b73b],li>a[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{padding:0 14px 0 44px}li>button[data-v-3ad7b73b]:not(:disabled):hover,li>button[data-v-3ad7b73b]:not(:disabled):focus,li>button:not(:disabled).active[data-v-3ad7b73b],li>a[data-v-3ad7b73b]:not(:disabled):hover,li>a[data-v-3ad7b73b]:not(:disabled):focus,li>a:not(:disabled).active[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]:not(:disabled):hover,li>.menuitem[data-v-3ad7b73b]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-3ad7b73b]{opacity:1 !important}li>button.action[data-v-3ad7b73b],li>a.action[data-v-3ad7b73b],li>.menuitem.action[data-v-3ad7b73b]{padding:inherit !important}li>button>span[data-v-3ad7b73b],li>a>span[data-v-3ad7b73b],li>.menuitem>span[data-v-3ad7b73b]{cursor:pointer;white-space:nowrap}li>button>p[data-v-3ad7b73b],li>a>p[data-v-3ad7b73b],li>.menuitem>p[data-v-3ad7b73b]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-3ad7b73b],li>a>select[data-v-3ad7b73b],li>.menuitem>select[data-v-3ad7b73b]{margin:0;margin-left:6px}li>button[data-v-3ad7b73b]:not(:empty),li>a[data-v-3ad7b73b]:not(:empty),li>.menuitem[data-v-3ad7b73b]:not(:empty){padding-right:14px !important}li>button>img[data-v-3ad7b73b],li>a>img[data-v-3ad7b73b],li>.menuitem>img[data-v-3ad7b73b]{width:44px;padding:14px}li>button>input.radio+label[data-v-3ad7b73b],li>button>input.checkbox+label[data-v-3ad7b73b],li>a>input.radio+label[data-v-3ad7b73b],li>a>input.checkbox+label[data-v-3ad7b73b],li>.menuitem>input.radio+label[data-v-3ad7b73b],li>.menuitem>input.checkbox+label[data-v-3ad7b73b]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-3ad7b73b]::before,li>a>input.checkbox+label[data-v-3ad7b73b]::before,li>.menuitem>input.checkbox+label[data-v-3ad7b73b]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-3ad7b73b]::before,li>a>input.radio+label[data-v-3ad7b73b]::before,li>.menuitem>input.radio+label[data-v-3ad7b73b]::before{margin:-2px 12px 0}li>button>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-3ad7b73b],li>a form[data-v-3ad7b73b],li>.menuitem form[data-v-3ad7b73b]{display:flex;flex:1 1 auto}li>button form[data-v-3ad7b73b]:not(:first-child),li>a form[data-v-3ad7b73b]:not(:first-child),li>.menuitem form[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-3ad7b73b],li>button>span[style*='display:none']+form[data-v-3ad7b73b],li>a>span.hidden+form[data-v-3ad7b73b],li>a>span[style*='display:none']+form[data-v-3ad7b73b],li>.menuitem>span.hidden+form[data-v-3ad7b73b],li>.menuitem>span[style*='display:none']+form[data-v-3ad7b73b]{margin-left:0}li>button input[data-v-3ad7b73b],li>a input[data-v-3ad7b73b],li>.menuitem input[data-v-3ad7b73b]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-3ad7b73b]:not(:first-child),li>a input[data-v-3ad7b73b]:not(:first-child),li>.menuitem input[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-3ad7b73b]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-3ad7b73b]{margin-bottom:12px}li>button[data-v-3ad7b73b]{padding:0}li>button span[data-v-3ad7b73b]{opacity:1}\n","",{version:3,sources:["webpack://./PopoverMenuItem.vue","webpack://./../../assets/variables.scss"],names:[],mappings:"AA2MA,oBACC,YAAa,CACb,aAAc,CAFf,2BAKE,YAAa,CALf,+EAWE,cAAe,CACf,gBC9LmB,CD+LnB,QAAS,CACT,eAAgB,CAChB,4BAA6B,CAC7B,YAAa,CACb,sBAAuB,CACvB,WAAY,CACZ,QAAS,CACT,SAAU,CACV,kBAAmB,CACnB,eAAgB,CAChB,UAAW,CACX,4BAA6B,CAC7B,kBAAmB,CACnB,UC1LiB,CDgKnB,giBAiCG,WAAY,CACZ,YAAa,CACb,+BAA2C,CAC3C,oBClNa,CD8KhB,+RA2CG,wBC7NkB,CDkLrB,iqCAoDK,gBCtOgB,CDkLrB,iQA2DG,qBC7OkB,CDkLrB,6aAiEG,oBAAiC,CAjEpC,oGAsEG,0BAA2B,CAtE9B,8FA0EG,cAAe,CACf,kBAAmB,CA3EtB,qFAgFG,WAAY,CACZ,iBAAkB,CAClB,aAAc,CACd,kBAAmB,CAnFtB,oGAwFG,QAAS,CACT,eAAgB,CAzFnB,mHA8FG,6BAAsC,CA9FzC,2FAoGG,UCtRkB,CDuRlB,YC/Q6C,CD0KhD,mRA2GG,oBAAqB,CACrB,UAAW,CA5Gd,sKA+GG,kBAAmB,CA/GtB,6JAkHG,kBAAmB,CAlHtB,4QAqHG,WAAY,CArHf,8FA0HG,YAAa,CACb,aAAc,CA3HjB,oJA+HI,eAAgB,CA/HpB,oTAqIG,aAAc,CArIjB,iGAyIG,cC3TkB,CD4TlB,eAAY,CACZ,YAAa,CACb,aAAc,CA5IjB,uJA+II,eAAgB,CA/IpB,+gBA0JK,eAA8B,CA1JnC,ygBAiKK,kBAAiC,CAjKtC,2BAuKE,SAAU,CAvKZ,gCAyKG,SCxUa",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nli {\n\tdisplay: flex;\n\tflex: 0 0 auto;\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n\n\t> button,\n\t> a,\n\t> .menuitem {\n\t\tcursor: pointer;\n\t\tline-height: $clickable-area;\n\t\tborder: 0;\n\t\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\t\tbackground-color: transparent;\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\theight: auto;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tfont-weight: normal;\n\t\tbox-shadow: none;\n\t\twidth: 100%;\n\t\tcolor: var(--color-main-text);\n\t\twhite-space: nowrap;\n\t\topacity: $opacity_normal;\n\n\t\t// TODO split into individual components for readability\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'],\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tmin-width: 0; /* Overwrite icons*/\n\t\t\tmin-height: 0;\n\t\t\tbackground-position: #{$icon-margin} center;\n\t\t\tbackground-size: $icon-size;\n\t\t}\n\n\t\tspan[class^='icon-'],\n\t\tspan[class*=' icon-'] {\n\t\t\t/* Keep padding to define the width to\n\t\t\t\tassure correct position of a possible text */\n\t\t\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\n\t\t}\n\n\t\t// If no icons set, force left margin to align\n\t\t&:not([class^='icon-']):not([class*='icon-']) {\n\t\t\t> span,\n\t\t\t> input,\n\t\t\t> form {\n\t\t\t\t&:not([class^='icon-']):not([class*='icon-']):first-child {\n\t\t\t\t\tmargin-left: $clickable-area;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&[class^='icon-'],\n\t\t&[class*=' icon-'] {\n\t\t\tpadding: 0 $icon-margin 0 $clickable-area;\n\t\t}\n\n\t\t&:not(:disabled):hover,\n\t\t&:not(:disabled):focus,\n\t\t&:not(:disabled).active {\n\t\t\topacity: $opacity_full !important;\n\t\t}\n\n\t\t/* prevent .action class to break the design */\n\t\t&.action {\n\t\t\tpadding: inherit !important;\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// long text area\n\t\t> p {\n\t\t\twidth: 150px;\n\t\t\tline-height: 1.6em;\n\t\t\tpadding: 8px 0;\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t// TODO: do we really supports it?\n\t\t> select {\n\t\t\tmargin: 0;\n\t\t\tmargin-left: 6px;\n\t\t}\n\n\t\t/* Add padding if contains icon+text */\n\t\t&:not(:empty) {\n\t\t\tpadding-right: $icon-margin !important;\n\t\t}\n\n\t\t/* DEPRECATED! old img in popover fallback\n\t\t\t* TODO: to remove */\n\t\t> img {\n\t\t\twidth: $clickable-area;\n\t\t\tpadding: $icon-margin;\n\t\t}\n\n\t\t/* checkbox/radio fixes */\n\t\t> input.radio + label,\n\t\t> input.checkbox + label {\n\t\t\tpadding: 0 !important;\n\t\t\twidth: 100%;\n\t\t}\n\t\t> input.checkbox + label::before {\n\t\t\tmargin: -2px 13px 0;\n\t\t}\n\t\t> input.radio + label::before {\n\t\t\tmargin: -2px 12px 0;\n\t\t}\n\t\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\n\t\t\twidth: 150px;\n\t\t}\n\n\t\t// Forms & text inputs\n\t\tform {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 auto;\n\t\t\t/* put a small space between text and form\n\t\t\t\tif there is an element before */\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t\t/* no margin if hidden span before */\n\t\t> span.hidden + form,\n\t\t> span[style*='display:none'] + form {\n\t\t\tmargin-left: 0;\n\t\t}\n\t\t/* Inputs inside popover supports text, submit & reset */\n\t\tinput {\n\t\t\tmin-width: $clickable-area;\n\t\t\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\n\t\t\tmargin: 2px 0;\n\t\t\tflex: 1 1 auto;\n\t\t\t// space between inline inputs\n\t\t\t&:not(:first-child) {\n\t\t\t\tmargin-left: 5px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// TODO: do that in js, should be cleaner\n\t/* css hack, only first not hidden */\n\t&:not(.hidden):not([style*='display:none']) {\n\t\t&:first-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-top: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t&:last-of-type {\n\t\t\t> button, > a, > .menuitem {\n\t\t\t\t> form, > input {\n\t\t\t\t\tmargin-bottom: $icon-margin - 2px; // minus the input margin\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t> button {\n\t\tpadding: 0;\n\t\tspan {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: ($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"],sourceRoot:""}]),e.a=s},function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,"ul[data-v-81c2afc0]{display:flex;flex-direction:column}\n","",{version:3,sources:["webpack://./PopoverMenu.vue"],names:[],mappings:"AA0DA,oBACC,YAAa,CACb,qBAAsB",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nul {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n"],sourceRoot:""}]),e.a=s},function(t,e){},function(t,e){t.exports=n(260)},function(t,e,n){"use strict";function r(t,e,n){this.r=t,this.g=e,this.b=n}function o(t,e,n){var o=[];o.push(e);for(var i=function(t,e){var n=new Array(3);return n[0]=(e[1].r-e[0].r)/t,n[1]=(e[1].g-e[0].g)/t,n[2]=(e[1].b-e[0].b)/t,n}(t,[e,n]),s=1;s<t;s++){var a=parseInt(e.r+i[0]*s,10),c=parseInt(e.g+i[1]*s,10),l=parseInt(e.b+i[2]*s,10);o.push(new r(a,c,l))}return o}n(26),e.a=function(t){t||(t=6);var e=new r(182,70,157),n=new r(221,203,85),i=new r(0,130,201),s=o(t,e,n),a=o(t,n,i),c=o(t,i,e);return s.concat(a).concat(c)}},,function(t,e,n){"use strict";e.a=function(t){t.mounted?Array.isArray(t.mounted)||(t.mounted=[t.mounted]):t.mounted=[],t.mounted.push((function(){this.$el.setAttribute("data-v-".concat("59f1214"),"")}))}},function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i),a=n(4),c=n.n(a),l=n(7),u=n(8),m=n(9),p=n(10),d=s()(o.a),f=c()(l.a),g=c()(u.a),A=c()(m.a),h=c()(p.a);d.push([t.i,'@font-face{font-family:"iconfont-vue-59f1214";src:url('+f+");src:url("+f+') format("embedded-opentype"),url('+g+') format("woff"),url('+A+') format("truetype"),url('+h+') format("svg")}.icon[data-v-5adbb6fa]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.arrow-left[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.arrow-right-double[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.arrow-right[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.breadcrumb[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.checkmark[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.close[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.confirm[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.info[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.menu[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.more[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.pause[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.play[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.triangle-s[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.user-status-away[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.user-status-dnd[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.user-status-invisible[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.icon.user-status-online[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";content:""}.avatardiv[data-v-5adbb6fa]{position:relative;display:inline-block}.avatardiv--unknown[data-v-5adbb6fa]{position:relative;background-color:var(--color-text-maxcontrast)}.avatardiv[data-v-5adbb6fa]:not(.avatardiv--unknown){background-color:#fff !important;box-shadow:0 0 5px rgba(0,0,0,0.05) inset}body.theme--dark .avatardiv[data-v-5adbb6fa]:not(.avatardiv--unknown){background-color:#000 !important}.avatardiv--with-menu[data-v-5adbb6fa]{cursor:pointer}.avatardiv--with-menu .icon-more[data-v-5adbb6fa]{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:inherit;height:inherit;cursor:pointer;opacity:0;background:none;font-size:18px}.avatardiv--with-menu .icon-more[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";font-style:normal;font-weight:400;content:""}.avatardiv--with-menu .icon-more[data-v-5adbb6fa]::before{display:block}.avatardiv--with-menu:focus .icon-more[data-v-5adbb6fa],.avatardiv--with-menu:hover .icon-more[data-v-5adbb6fa]{opacity:1}.avatardiv--with-menu:focus img[data-v-5adbb6fa],.avatardiv--with-menu:hover img[data-v-5adbb6fa]{opacity:0.3}.avatardiv--with-menu .icon-more[data-v-5adbb6fa],.avatardiv--with-menu img[data-v-5adbb6fa]{transition:opacity var(--animation-quick)}.avatardiv>.unknown[data-v-5adbb6fa]{position:absolute;top:0;left:0;display:block;width:100%;text-align:center;font-weight:normal;color:var(--color-main-background)}.avatardiv img[data-v-5adbb6fa]{width:100%;height:100%;object-fit:cover}.avatardiv .avatardiv__status[data-v-5adbb6fa]{position:absolute;top:22px;left:22px;width:10px;height:10px;border:1px solid rgba(255,255,255,0.5);background-clip:content-box}.avatardiv .avatardiv__status--positive[data-v-5adbb6fa]{border-radius:50%;background-color:var(--color-success)}.avatardiv .avatardiv__status--negative[data-v-5adbb6fa]{background-color:var(--color-error)}.avatardiv .avatardiv__status--neutral[data-v-5adbb6fa]{border:none;background-color:transparent !important}.avatardiv .avatardiv__status--neutral svg[data-v-5adbb6fa]{position:absolute;top:-3px;left:-2px}.avatardiv .avatardiv__status--neutral svg path[data-v-5adbb6fa]{fill:#aaa}.avatardiv .avatardiv__user-status[data-v-5adbb6fa]{position:absolute;right:-4px;bottom:-4px;height:18px;width:18px;line-height:15px;font-size:var(--default-font-size);border:2px solid var(--color-main-background);background-color:var(--color-main-background);border-radius:50%}.acli:hover .avatardiv .avatardiv__user-status[data-v-5adbb6fa]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-5adbb6fa]{border-color:var(--color-primary-light);background-color:var(--color-primary-light)}.avatardiv .avatardiv__user-status--online[data-v-5adbb6fa]{color:#49b382}.avatardiv .avatardiv__user-status--online[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";font-style:normal;font-weight:400;content:""}.avatardiv .avatardiv__user-status--dnd[data-v-5adbb6fa]{background-color:#ffffff;color:#ed484c}.avatardiv .avatardiv__user-status--dnd[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";font-style:normal;font-weight:400;content:""}.avatardiv .avatardiv__user-status--away[data-v-5adbb6fa]{color:#f4a331}.avatardiv .avatardiv__user-status--away[data-v-5adbb6fa]:before{font-family:"iconfont-vue-59f1214";font-style:normal;font-weight:400;content:""}.avatardiv .avatardiv__user-status--icon[data-v-5adbb6fa]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-5adbb6fa]{position:relative;display:inline-block}.avatardiv .popovermenu[data-v-5adbb6fa]{display:block;margin:0;font-size:var(--default-font-size)}.avatar-class-icon[data-v-5adbb6fa]{border-radius:50%;background-color:var(--color-background-darker);height:100%}\n',"",{version:3,sources:["webpack://./../../fonts/scss/iconfont-vue.scss","webpack://./Avatar.vue"],names:[],mappings:"AA2FE,WACC,kCAAmC,CACnC,2CAAuC,CACvC,+OAGmD,CAMpD,uBACE,iBAAkB,CAClB,eAAgB,CAFlB,gDAMM,kCAAmC,CACnC,WA5Ge,CAAO,yCA0GL,kCACJ,CAAsB,WA1G3B,CAAA,iDAyGU,kCACL,CAAA,WAzGG,CAAA,0CAwGL,kCACE,CAAA,WAxGJ,CAAA,yCAuGC,kCACG,CAAA,WACN,CAxGC,wCAsGC,kCACI,CAAA,WACb,CAAO,oCAFF,kCACQ,CAAA,WACb,CAAA,sCAFO,kCACM,CAAA,WACb,CAAA,mCAFI,kCACS,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WACb,CAAA,oCAPD,kCAMc,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WAAsB,CACnC,yCAPD,kCAMc,CAAA,WAAA,CAAsB,+CANpC,kCAMc,CAAA,WAAA,CAAA,8CANd,kCAMc,CAAA,WAAA,CAAA,oDANd,kCAMc,CAAA,WAAA,CAAA,iDANd,kCAMc,CAAA,WAAA,CAAA,4BACb,iBC4cE,CACT,oBACA,CAAA,qCAEA,iBAAU,CACT,8CACkB,CAAA,qDAGZ,gCAEN,CAAA,yCAKoB,CAAA,sEAPd,gCAKL,CAAA,uCACA,cAAA,CAAA,kDAID,iBAEU,CACT,KAAA,CAAA,MAAU,CAAA,YAEV,CAAA,kBAEA,CAAA,sBACA,CAAA,aAAiB,CAAA,cACV,CAAA,cACC,CAAA,SACF,CAAE,eACD,CAAE,cACG,CAAA,yDAXb,kCD9kBD,CAAA,iBAAsB,CAkFnB,eAAY,CAAA,WACZ,CAAA,0DC2fF,aAAU,CAAA,gHAFV,SAuBC,CAAA,kGAvBD,WAAW,CAAA,6FAAX,yCAgCqB,CAAA,qCAnDvB,iBAuDG,CAAQ,KACT,CAAA,MAAU,CAAA,aAEV,CAAA,UACA,CAAA,iBACO,CAAI,kBACO,CAClB,kCACO,CAAA,gCAAA,UA/DT,CAAA,WAoEE,CAAA,gBACQ,CAAA,+CAKT,iBAAA,CAAkB,QACjB,CAAQ,SAAU,CAClB,UACA,CAAA,WACA,CAAA,sCAEkB,CAAA,2BAClB,CAAA,yDACC,iBAAA,CAAU,qCAEQ,CAAA,yDAElB,mCACgB,CAAE,wDAElB,WAAA,CAAA,uCAEkB,CAAA,4DAFlB,iBAGA,CAAG,QACF,CAAQ,SAAU,CAClB,iEALD,SAAS,CAGT,oDAWF,iBAAA,CAAuB,UACZ,CAAA,WACV,CAAA,WACA,CAAA,UACA,CAAA,gBACO,CAAA,kCAEI,CAAA,6CACO,CAAA,6CACA,CAAA,iBAAA,CAA4B,gEAT/C,0CAagB,CAAA,8CACI,CAAA,iEAdpB,uCAiBgB,CAAA,2CACI,CAAA,4DAGlB,aAAA,CAAA,mEAAA,kCDrrBF,CAAA,iBAAA,CAAsB,eAkFP,CAAA,WACZ,CAAA,yDCsmBD,wBAEA,CAAA,aAAkB,CAAA,gEAFlB,kCDzrBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DC2mBD,aAAA,CAAA,iEAAA,kCD9rBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DC+mBD,WAAA,CAAA,4BAEA,CAAA,iDA3IO,iBA+IT,CAAA,oBACW,CAAQ,yCAhJpB,aAoJC,CAAA,QACC,CAAA,kCAEW,CAAA,oCAAA,iBACX,CAAA,+CAKiB,CAAA,WAAA",sourcesContent:['$__iconfont__data: map-merge(if(global_variable_exists(\'__iconfont__data\'), $__iconfont__data, ()), (\n\t"iconfont-vue-59f1214": (\n\t\t"arrow-left-double": "\\ea01",\n\t\t"arrow-left": "\\ea02",\n\t\t"arrow-right-double": "\\ea03",\n\t\t"arrow-right": "\\ea04",\n\t\t"breadcrumb": "\\ea05",\n\t\t"checkmark": "\\ea06",\n\t\t"close": "\\ea07",\n\t\t"confirm": "\\ea08",\n\t\t"info": "\\ea09",\n\t\t"menu": "\\ea0a",\n\t\t"more": "\\ea0b",\n\t\t"pause": "\\ea0c",\n\t\t"play": "\\ea0d",\n\t\t"triangle-s": "\\ea0e",\n\t\t"user-status-away": "\\ea0f",\n\t\t"user-status-dnd": "\\ea10",\n\t\t"user-status-invisible": "\\ea11",\n\t\t"user-status-online": "\\ea12"\n\t)\n));\n\n\n$create-font-face: true !default; // should the @font-face tag get created?\n\n// should there be a custom class for each icon? will be .filename\n$create-icon-classes: true !default; \n\n// what is the common class name that icons share? in this case icons need to have .icon.filename in their classes\n// this requires you to have 2 classes on each icon html element, but reduced redeclaration of the font family\n// for each icon\n$icon-common-class: \'icon\' !default;\n\n// if you whish to prefix your filenames, here you can do so.\n// if this string stays empty, your classes will use the filename, for example\n// an icon called star.svg will result in a class called .star\n// if you use the prefix to be \'icon-\' it would result in .icon-star\n$icon-prefix: \'\' !default; \n\n// helper function to get the correct font group\n@function iconfont-group($group: null) {\n @if (null == $group) {\n $group: nth(map-keys($__iconfont__data), 1);\n }\n @if (false == map-has-key($__iconfont__data, $group)) {\n @warn \'Undefined Iconfont Family!\';\n @return ();\n }\n @return map-get($__iconfont__data, $group);\n}\n\n// helper function to get the correct icon of a group\n@function iconfont-item($name) {\n $slash: str-index($name, \'/\');\n $group: null;\n @if ($slash) {\n $group: str-slice($name, 0, $slash - 1);\n $name: str-slice($name, $slash + 1);\n } @else {\n $group: nth(map-keys($__iconfont__data), 1);\n }\n $group: iconfont-group($group);\n @if (false == map-has-key($group, $name)) {\n @warn \'Undefined Iconfont Glyph!\';\n @return \'\';\n }\n @return map-get($group, $name);\n}\n\n// complete mixing to include the icon\n// usage:\n// .my_icon{ @include iconfont(\'star\') }\n@mixin iconfont($icon) {\n $slash: str-index($icon, \'/\');\n $group: null;\n @if ($slash) {\n $group: str-slice($icon, 0, $slash - 1);\n } @else {\n $group: nth(map-keys($__iconfont__data), 1);\n }\n &:before {\n font-family: $group;\n font-style: normal;\n font-weight: 400;\n content: iconfont-item($icon);\n }\n}\n\n// creates the font face tag if the variable is set to true (default)\n@if $create-font-face == true {\n @font-face {\n font-family: "iconfont-vue-59f1214";\n src: url(\'../iconfont-vue-59f1214.eot\'); /* IE9 Compat Modes */\n src: url(\'../iconfont-vue-59f1214.eot?#iefix\') format(\'embedded-opentype\'), /* IE6-IE8 */\n url(\'../iconfont-vue-59f1214.woff\') format(\'woff\'), /* Pretty Modern Browsers */\n url(\'../iconfont-vue-59f1214.ttf\') format(\'truetype\'), /* Safari, Android, iOS */\n url(\'../iconfont-vue-59f1214.svg\') format(\'svg\'); /* Legacy iOS */\n }\n}\n\n// creates icon classes for each individual loaded svg (default)\n@if $create-icon-classes == true {\n .#{$icon-common-class} {\n font-style: normal;\n font-weight: 400;\n\n @each $icon, $content in map-get($__iconfont__data, "iconfont-vue-59f1214") {\n &.#{$icon-prefix}#{$icon}:before {\n font-family: "iconfont-vue-59f1214";\n content: iconfont-item("iconfont-vue-59f1214/#{$icon}");\n }\n }\n }\n}\n',"$scope_version:\"59f1214\"; @import 'variables';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n@import '../../fonts/scss/iconfont-vue';\n\n.avatardiv {\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t&--unknown {\n\t\tposition: relative;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t}\n\n\t&:not(&--unknown) {\n\t\t// White background for avatars with transparency\n\t\tbackground-color: #fff !important;\n\t\tbody.theme--dark & {\n\t\t\t// And black background in dark mode, as it shines through on hover of the menu\n\t\t\tbackground-color: #000 !important;\n\t\t}\n\t\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n\t}\n\n\t&--with-menu {\n\t\tcursor: pointer;\n\t\t.icon-more {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: inherit;\n\t\t\theight: inherit;\n\t\t\tcursor: pointer;\n\t\t\topacity: 0;\n\t\t\tbackground: none;\n\t\t\tfont-size: 18px;\n\n\t\t\t@include iconfont('more');\n\t\t\t&::before {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t\t&:focus,\n\t\t&:hover {\n\t\t\t.icon-more {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\timg {\n\t\t\t\topacity: 0.3;\n\t\t\t}\n\t\t}\n\t\t.icon-more,\n\t\timg {\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t}\n\t}\n\n\t> .unknown {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tfont-weight: normal;\n\t\tcolor: var(--color-main-background);\n\t}\n\n\timg {\n\t\t// Cover entire area\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t// Keep ratio\n\t\tobject-fit: cover;\n\t}\n\n\t.avatardiv__status {\n\t\tposition: absolute;\n\t\ttop: 22px;\n\t\tleft: 22px;\n\t\twidth: 10px;\n\t\theight: 10px;\n\t\tborder: 1px solid rgba(255, 255, 255, .5);\n\t\tbackground-clip: content-box;\n\t\t&--positive {\n\t\t\tborder-radius: 50%;\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t\t&--negative {\n\t\t\tbackground-color: var(--color-error);\n\t\t}\n\t\t&--neutral {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent !important;\n\t\t\tsvg {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: -3px;\n\t\t\t\tleft: -2px;\n\t\t\t\tpath {\n\t\t\t\t\tfill: #aaa;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t.avatardiv__user-status {\n\t\tposition: absolute;\n\t\tright: -4px;\n\t\tbottom: -4px;\n\t\theight: 18px;\n\t\twidth: 18px;\n\t\tline-height: 15px;\n\t\tfont-size: var(--default-font-size);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tbackground-color: var(--color-main-background);\n\t\tborder-radius: 50%;\n\n\t\t.acli:hover & {\n\t\t\tborder-color: var(--color-background-hover);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t.acli.active & {\n\t\t\tborder-color: var(--color-primary-light);\n\t\t\tbackground-color: var(--color-primary-light);\n\t\t}\n\n\t\t&--online{\n\t\t\t@include iconfont('user-status-online');\n\t\t\tcolor: #49b382;\n\t\t}\n\t\t&--dnd{\n\t\t\t@include iconfont('user-status-dnd');\n\t\t\tbackground-color: #ffffff;\n\t\t\tcolor: #ed484c;\n\t\t}\n\t\t&--away{\n\t\t\t@include iconfont('user-status-away');\n\t\t\tcolor: #f4a331;\n\t\t}\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t.popovermenu-wrapper {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n\n\t.popovermenu {\n\t\tdisplay: block;\n\t\tmargin: 0;\n\t\tfont-size: var(--default-font-size);\n\t}\n}\n\n.avatar-class-icon {\n\tborder-radius: 50%;\n\tbackground-color: var(--color-background-darker);\n\theight: 100%;\n}\n\n"],sourceRoot:""}]),e.a=d},function(t,e){},function(t,e,n){"use strict";function r(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){c=!0,s=t},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw s}}}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}n.r(e),n(31),n(38),n(45),n(49),n(19),n(40),n(14),n(6),n(16),n(20),n(21),e.default={props:{excludeClickOutsideClasses:{type:String|Array,default:function(){return[]}}},methods:{clickOutsideMiddleware:function(t){var e=Array.isArray(this.excludeClickOutsideClasses)?this.excludeClickOutsideClasses:[this.excludeClickOutsideClasses];return 0===e.length||!this.hasNodeOrAnyParentClass(t.target,e)},hasNodeOrAnyParentClass:function(t,e){var n,o=r(e);try{for(o.s();!(n=o.n()).done;){var i=n.value;if(t.classList.contains(i))return!0}}catch(t){o.e(t)}finally{o.f()}return!!t.parentElement&&this.hasNodeOrAnyParentClass(t.parentElement,e)}}}},function(t,e,n){"use strict";n.r(e),e.default={data:function(){return{isFullscreen:this._isFullscreen()}},beforeMount:function(){window.addEventListener("resize",this._onResize)},beforeDestroy:function(){window.removeEventListener("resize",this._onResize)},methods:{_onResize:function(){this.isFullscreen=this._isFullscreen()},_isFullscreen:function(){return window.outerHeight===screen.height}}}},function(t,e,n){"use strict";n(13),e.a=function(t,e){for(var n=[],r=0,o=t.toLowerCase().indexOf(e.toLowerCase(),r),i=0;o>-1&&i<t.length;)r=o+e.length,n.push({start:o,end:r}),o=t.toLowerCase().indexOf(e.toLowerCase(),o+1),i++;return n}},function(t,e){t.exports=n(261)},function(t,e,n){"use strict";n.r(e),n(13),n(19),n(6),n(16),n(20),n(21),n(35);var r={name:"PopoverMenuItem",props:{item:{type:Object,required:!0,default:function(){return{key:"nextcloud-link",href:"https://nextcloud.com",icon:"icon-links",text:"Nextcloud"}},validator:function(t){return!t.input||-1!==["text","checkbox"].indexOf(t.input)}}},computed:{key:function(){return this.item.key?this.item.key:Math.round(16*Math.random()*1e6).toString(16)},iconIsUrl:function(){try{return new URL(this.item.icon),!0}catch(t){return!1}}},methods:{action:function(t){this.item.action&&this.item.action(t)}}},o=n(2),i=n.n(o),s=n(60),a=(i()(s.a,{insert:"head",singleton:!1}),s.a.locals,n(61)),c=(i()(a.a,{insert:"head",singleton:!1}),a.a.locals,n(3)),l={name:"PopoverMenu",components:{PopoverMenuItem:Object(c.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("li",[t.item.href?n("a",{staticClass:"focusable",attrs:{href:t.item.href?t.item.href:"#",target:t.item.target?t.item.target:"",download:t.item.download,rel:"noreferrer noopener"},on:{click:t.action}},[t.iconIsUrl?n("img",{attrs:{src:t.item.icon}}):n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()]):t.item.input?n("span",{staticClass:"menuitem",class:{active:t.item.active}},["checkbox"!==t.item.input?n("span",{class:t.item.icon}):t._e(),t._v(" "),"text"===t.item.input?n("form",{class:t.item.input,on:{submit:function(e){return e.preventDefault(),t.item.action(e)}}},[n("input",{attrs:{type:t.item.input,placeholder:t.item.text,required:""},domProps:{value:t.item.value}}),t._v(" "),n("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]):["checkbox"===t.item.input?n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:"checkbox"},domProps:{checked:Array.isArray(t.item.model)?t._i(t.item.model,null)>-1:t.item.model},on:{change:[function(e){var n=t.item.model,r=e.target,o=!!r.checked;if(Array.isArray(n)){var i=t._i(n,null);r.checked?i<0&&t.$set(t.item,"model",n.concat([null])):i>-1&&t.$set(t.item,"model",n.slice(0,i).concat(n.slice(i+1)))}else t.$set(t.item,"model",o)},t.item.action]}}):"radio"===t.item.input?n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:"radio"},domProps:{checked:t._q(t.item.model,null)},on:{change:[function(e){return t.$set(t.item,"model",null)},t.item.action]}}):n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:t.item.input},domProps:{value:t.item.model},on:{change:t.item.action,input:function(e){e.target.composing||t.$set(t.item,"model",e.target.value)}}}),t._v(" "),n("label",{attrs:{for:t.key},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action(e)}}},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")])]],2):t.item.action?n("button",{staticClass:"menuitem focusable",class:{active:t.item.active},attrs:{disabled:t.item.disabled},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action(e)}}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()]):n("span",{staticClass:"menuitem",class:{active:t.item.active}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()])])}),[],!1,null,"3ad7b73b",null).exports},props:{menu:{type:Array,default:function(){return[{href:"https://nextcloud.com",icon:"icon-links",text:"Nextcloud"}]},required:!0}}},u=n(62),m=(i()(u.a,{insert:"head",singleton:!1}),u.a.locals,n(63)),p=n.n(m),d=Object(c.a)(l,(function(){var t=this.$createElement,e=this._self._c||t;return e("ul",this._l(this.menu,(function(t,n){return e("PopoverMenuItem",{key:n,attrs:{item:t}})})),1)}),[],!1,null,"81c2afc0",null);"function"==typeof p.a&&p()(d);var f=d.exports;e.default=f},function(t,e,n){"use strict";n.r(e),n(31),n(48),n(83),n(15),n(93),n(120),n(121),n(103),n(17),n(100),n(84);var r=n(72);function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(Object(n),!0).forEach((function(e){s(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var a={name:"Highlight",props:{text:{type:String,default:""},search:{type:String,default:""},highlight:{type:Array,default:function(){return[]}}},computed:{ranges:function(){var t=this,e=[];return this.search||0!==this.highlight.length?(e=this.highlight.length>0?this.highlight:Object(r.a)(this.text,this.search)).reduce((function(e,n){return n.start<t.text.length&&n.end>0&&e.push({start:n.start<0?0:n.start,end:n.end>t.text.length?t.text.length:n.end}),e}),[]):e},chunks:function(){if(0===this.ranges.length)return[{start:0,end:this.text.length,highlight:!1,text:this.text}];for(var t=[],e=0,n=0;e<this.text.length;){var r=this.ranges[n];r.start!==e?(t.push({start:e,end:r.start,highlight:!1,text:this.text.substr(e,r.start-e)}),e=r.start):(t.push(i(i({},r),{},{highlight:!0,text:this.text.substr(r.start,r.end-r.start)})),n++,e=r.end,n>=this.ranges.length&&e<this.text.length&&(t.push({start:e,end:this.text.length,highlight:!1,text:this.text.substr(e,this.text.length-e)}),e=this.text.length))}return t}},render:function(t){return this.ranges.length?t("span",{},this.chunks.map((function(e){return e.highlight?t("strong",{},e.text):e.text}))):t("span",{},this.text)}},c=n(3),l=n(82),u=n.n(l),m=Object(c.a)(a,void 0,void 0,!1,null,null,null);"function"==typeof u.a&&u()(m);var p=m.exports;e.default=p},function(t,e,n){"use strict";n.r(e),n(26),n(89),n(13),n(56),n(15),n(33),n(6),n(57),n(104),n(105),n(58);var r=n(90),o=n(50),i=n(74),s=n(42),a=n(27),c=n(41),l=n.n(c),u=n(18),m=n(22),p=n(79),d=n(51);function f(t,e,n,r,o,i,s){try{var a=t[i](s),c=a.value}catch(t){return void n(t)}a.done?e(c):Promise.resolve(c).then(r,o)}function g(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function s(t){f(i,r,o,s,a,"next",t)}function a(t){f(i,r,o,s,a,"throw",t)}s(void 0)}))}}var A=Object(r.getBuilder)("nextcloud").persist().build();function h(t){var e=A.getItem("user-has-avatar."+t);return"string"==typeof e?Boolean(e):null}function v(t,e){t&&A.setItem("user-has-avatar."+t,e)}var b={name:"Avatar",directives:{tooltip:m.default,ClickOutside:o.directive},components:{PopoverMenu:i.default},mixins:[d.e],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},showUserStatus:{type:Boolean,default:!0},showUserStatusCompact:{type:Boolean,default:!0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},allowPlaceholder:{type:Boolean,default:!0},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},status:{type:String,default:null,validator:function(t){switch(t){case"positive":case"negative":case"neutral":return!0}return!1}},statusColor:{type:[Number,String],default:null,validator:function(t){return/^([a-f0-9]{3}){1,2}$/i.test(t)}},menuPosition:{type:String,default:"center"}},data:function(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{canDisplayUserStatus:function(){return this.showUserStatus&&this.hasStatus&&["online","away","dnd"].includes(this.userStatus.status)},showUserStatusIconOnAvatar:function(){return this.showUserStatus&&this.showUserStatusCompact&&this.hasStatus&&"dnd"!==this.userStatus.status&&this.userStatus.icon},getUserIdentifier:function(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:""},isUserDefined:function(){return void 0!==this.user},isDisplayNameDefined:function(){return void 0!==this.displayName},isUrlDefined:function(){return void 0!==this.url},hasMenu:function(){var t;return!this.disableMenu&&(this.isMenuLoaded?this.menu.length>0:!(this.user===(null===(t=Object(s.getCurrentUser)())||void 0===t?void 0:t.uid)||this.userDoesNotExist||this.url))},shouldShowPlaceholder:function(){return this.allowPlaceholder&&this.userDoesNotExist},avatarStyle:function(){var t={width:this.size+"px",height:this.size+"px",lineHeight:this.size+"px",fontSize:Math.round(.55*this.size)+"px"};if(!this.iconClass&&!this.avatarSrcSetLoaded){var e=Object(p.default)(this.getUserIdentifier);t.backgroundColor="rgb("+e.r+", "+e.g+", "+e.b+")"}return t},tooltip:function(){return!this.disableTooltip&&(this.tooltipMessage?this.tooltipMessage:this.displayName)},initials:function(){var t;if(this.shouldShowPlaceholder){var e=this.getUserIdentifier,n=e.indexOf(" ");""===e?t="?":(t=String.fromCodePoint(e.codePointAt(0)),-1!==n&&(t=t.concat(String.fromCodePoint(e.codePointAt(n+1)))))}return t.toUpperCase()},menu:function(){var t,e,n,r=this.contactsMenuActions.map((function(t){return{href:t.hyperlink,icon:t.icon,text:t.title}}));return this.showUserStatus&&(this.userStatus.icon||this.userStatus.message)?[{href:"#",icon:"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text x='0' y='14' font-size='14'>".concat((t=this.userStatus.icon,e=document.createTextNode(t),n=document.createElement("p"),n.appendChild(e),n.innerHTML),"</text></svg>"),text:"".concat(this.userStatus.message)}].concat(r):r}},watch:{url:function(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user:function(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted:function(){this.loadAvatarUrl(),this.showUserStatus&&this.user&&!this.isNoUser&&(this.fetchUserStatus(this.user),Object(a.subscribe)("user_status:status.updated",this.handleUserStatusUpdated))},beforeDestroyed:function(){this.showUserStatus&&this.user&&!this.isNoUser&&Object(a.unsubscribe)("user_status:status.updated",this.handleUserStatusUpdated)},methods:{handleUserStatusUpdated:function(t){this.user===t.userId&&(this.userStatus={status:t.status,icon:t.icon,message:t.message})},toggleMenu:function(){var t=this;return g(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.hasMenu){e.next=2;break}return e.abrupt("return");case 2:if(t.contactsMenuOpenState){e.next=5;break}return e.next=5,t.fetchContactsMenu();case 5:t.contactsMenuOpenState=!t.contactsMenuOpenState;case 6:case"end":return e.stop()}}),e)})))()},closeMenu:function(){this.contactsMenuOpenState=!1},fetchContactsMenu:function(){var t=this;return g(regeneratorRuntime.mark((function e(){var n,r,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=encodeURIComponent(t.user),e.next=4,l.a.post(Object(u.generateUrl)("contactsmenu/findOne"),"shareType=0&shareWith=".concat(n));case 4:r=e.sent,o=r.data,t.contactsMenuActions=o.topAction?[o.topAction].concat(o.actions):o.actions,e.next=12;break;case 9:e.prev=9,e.t0=e.catch(0),t.contactsMenuOpenState=!1;case 12:t.isMenuLoaded=!0;case 13:case"end":return e.stop()}}),e,null,[[0,9]])})))()},loadAvatarUrl:function(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser))return this.isAvatarLoaded=!0,void(this.userDoesNotExist=!0);if(this.isUrlDefined)this.updateImageIfValid(this.url);else{var t=this.avatarUrlGenerator(this.user,this.size),e=[t+" 1x",this.avatarUrlGenerator(this.user,2*this.size)+" 2x",this.avatarUrlGenerator(this.user,4*this.size)+" 4x"].join(", ");this.updateImageIfValid(t,e)}},avatarUrlGenerator:function(t,e){var n,r="/avatar/{user}/{size}";this.isGuest&&(r="/avatar/guest/{user}/{size}");var o=Object(u.generateUrl)(r,{user:t,size:e});return t===(null===(n=Object(s.getCurrentUser)())||void 0===n?void 0:n.uid)&&"undefined"!=typeof oc_userconfig&&(o+="?v="+oc_userconfig.avatar.version),o},updateImageIfValid:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=h(this.user);if(this.isUserDefined&&"boolean"==typeof r)return this.isAvatarLoaded=!0,this.avatarUrlLoaded=t,n&&(this.avatarSrcSetLoaded=n),void(!1===r&&(this.userDoesNotExist=!0));var o=new Image;o.onload=function(){e.avatarUrlLoaded=t,n&&(e.avatarSrcSetLoaded=n),e.isAvatarLoaded=!0,v(e.user,!0)},o.onerror=function(){console.debug("Invalid avatar url",t),e.avatarUrlLoaded=null,e.avatarSrcSetLoaded=null,e.userDoesNotExist=!0,e.isAvatarLoaded=!1,v(e.user,!1)},n&&(o.srcset=n),o.src=t}}},y=n(2),x=n.n(y),C=n(68),w=(x()(C.a,{insert:"head",singleton:!1}),C.a.locals,n(3)),E=n(69),k=n.n(E),T=Object(w.a)(b,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{directives:[{name:"tooltip",rawName:"v-tooltip",value:t.tooltip,expression:"tooltip"},{name:"click-outside",rawName:"v-click-outside",value:t.closeMenu,expression:"closeMenu"}],staticClass:"avatardiv popovermenu-wrapper",class:{"avatardiv--unknown":t.userDoesNotExist,"avatardiv--with-menu":t.hasMenu},style:t.avatarStyle,on:{click:t.toggleMenu}},[t.iconClass?n("div",{staticClass:"avatar-class-icon",class:t.iconClass}):t.isAvatarLoaded&&!t.userDoesNotExist?n("img",{attrs:{src:t.avatarUrlLoaded,srcset:t.avatarSrcSetLoaded,alt:""}}):t._e(),t._v(" "),t.hasMenu?n("div",{staticClass:"icon-more"}):t._e(),t._v(" "),t.showUserStatusIconOnAvatar?n("div",{staticClass:"avatardiv__user-status avatardiv__user-status--icon"},[t._v("\n\t\t"+t._s(t.userStatus.icon)+"\n\t")]):t.canDisplayUserStatus?n("div",{staticClass:"avatardiv__user-status",class:"avatardiv__user-status--"+t.userStatus.status}):t.status?n("div",{staticClass:"avatardiv__status",class:"avatardiv__status--"+t.status,style:{backgroundColor:"#"+t.statusColor}},["neutral"===t.status?n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"11",viewBox:"0 0 3.175 2.91"}},[n("path",{style:{fill:"#"+t.statusColor},attrs:{d:"M3.21 3.043H.494l.679-1.177.68-1.176.678 1.176z",stroke:"#fff","stroke-width":".265","stroke-linecap":"square"}})]):t._e()]):t._e(),t._v(" "),t.userDoesNotExist&&!t.iconClass?n("div",{staticClass:"unknown"},[t._v("\n\t\t"+t._s(t.initials)+"\n\t")]):t._e(),t._v(" "),t.hasMenu?n("div",{directives:[{name:"show",rawName:"v-show",value:t.contactsMenuOpenState,expression:"contactsMenuOpenState"}],staticClass:"popovermenu",class:"menu-"+t.menuPosition},[n("PopoverMenu",{attrs:{"is-open":t.contactsMenuOpenState,menu:t.menu}})],1):t._e()])}),[],!1,null,"5adbb6fa",null);"function"==typeof k.a&&k()(T);var S=T.exports;e.default=S},function(t,e){t.exports=n(262)},function(t,e){t.exports=n(264)},function(t,e,n){"use strict";n.r(e),n(17),n(91),n(23);var r=n(78),o=n.n(r),i=n(65);e.default=function(t){var e=t.toLowerCase();return null===e.match(/^([0-9a-f]{4}-?){8}$/)&&(e=o()(e)),e=e.replace(/[^0-9a-f]/g,""),Object(i.a)(6)[function(t,e){for(var n=0,r=[],o=0;o<t.length;o++)r.push(parseInt(t.charAt(o),16)%16);for(var i in r)n+=r[i];return parseInt(parseInt(n,10)%18,10)}(e)]}},,,function(t,e){},function(t,e){t.exports=n(97)},function(t,e){t.exports=n(144)},,function(t,e){t.exports=n(267)},function(t,e){t.exports=n(269)},function(t,e){t.exports=n(270)},function(t,e){t.exports=n(271)},function(t,e){t.exports=n(272)},function(t,e){t.exports=n(298)},,function(t,e){t.exports=n(299)},,function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,".option[data-v-01dee904]{display:flex;align-items:center;width:100%;height:32px}.option__avatar[data-v-01dee904]{flex:0 0 32px;width:32px;height:32px;margin-right:6px}.option__desc[data-v-01dee904]{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0}.option__desc--lineone[data-v-01dee904]{color:var(--color-text-light)}.option__desc--linetwo[data-v-01dee904]{opacity:.7}.option__desc--lineone[data-v-01dee904],.option__desc--linetwo[data-v-01dee904]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.option__desc--lineone strong[data-v-01dee904],.option__desc--linetwo strong[data-v-01dee904]{font-weight:bold}.option__icon[data-v-01dee904]{flex:0 0 44px;width:44px;height:44px;margin:-6px;opacity:.5;background-position:center;background-size:16px}\n","",{version:3,sources:["webpack://./AvatarSelectOption.vue","webpack://./../../assets/variables.scss"],names:[],mappings:"AAiKA,yBACC,YAAa,CACb,kBAAmB,CACnB,UAAW,CACX,WAAY,CACZ,iCACC,aAAc,CACd,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,+BAEA,YAAa,CACb,QAAS,CACT,qBAAsB,CACtB,sBAAuB,CACvB,WAAY,CACZ,wCACC,6BAA8B,CAC9B,wCAEA,UC3IgB,CD4IhB,gFAGA,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CAJvB,8FAMC,gBAAiB,CACjB,+BAIF,aC1KmB,CD2KnB,UC3KmB,CD4KnB,WC5KmB,CD6KnB,WAAY,CACZ,UC7JmB,CD8JnB,0BAA2B,CAC3B,oBAAqB",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.option {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 100%;\n\theight: 32px;\n\t&__avatar {\n\t\tflex: 0 0 32px;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tmargin-right: 6px;\n\t}\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex: 1 1;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-width: 0;\n\t\t&--lineone {\n\t\t\tcolor: var(--color-text-light);\n\t\t}\n\t\t&--linetwo {\n\t\t\topacity: $opacity_normal;\n\t\t}\n\t\t&--lineone,\n\t\t&--linetwo {\n\t\t\toverflow: hidden;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-overflow: ellipsis;\n\t\t\tstrong {\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\t\t}\n\t}\n\t&__icon {\n\t\tflex: 0 0 $clickable-area;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\tmargin: -6px;\n\t\topacity: $opacity_disabled;\n\t\tbackground-position: center;\n\t\tbackground-size: 16px;\n\t}\n}\n\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: ($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"],sourceRoot:""}]),e.a=s},function(t,e){},function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,".name-parts[data-v-f855c4b8]{display:flex;max-width:100%}.name-parts__first[data-v-f855c4b8]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-f855c4b8],.name-parts__last[data-v-f855c4b8]{white-space:pre}.name-parts__first strong[data-v-f855c4b8],.name-parts__last strong[data-v-f855c4b8]{font-weight:bold}\n","",{version:3,sources:["webpack://./EllipsisedOption.vue"],names:[],mappings:"AA6HA,6BACC,YAAa,CACb,cAAe,CACf,oCACC,eAAgB,CAChB,sBAAuB,CACvB,uEAIA,eAAgB,CAHhB,qFAKC,gBAAiB",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.name-parts {\n\tdisplay: flex;\n\tmax-width: 100%;\n\t&__first {\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\t&__first,\n\t&__last {\n\t\t// prevent whitespace from being trimmed\n\t\twhite-space: pre;\n\t\tstrong {\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.a=s},function(t,e){},function(t,e,n){"use strict";n(31),n(38),n(45),n(19),n(56),n(15),n(40),n(33),n(6),n(20),n(21);var r=n(76),o=n(75),i=n(51),s={name:"AvatarSelectOption",components:{Avatar:r.default,Highlight:o.default},mixins:[i.e],props:{desc:{type:String,default:""},displayName:{type:String,required:!0},icon:{type:String,default:""},user:{type:String,default:""},status:{type:Object,default:null},isNoUser:{type:Boolean,default:!1},search:{type:String,default:""}},beforeMount:function(){this.isNoUser||this.fetchUserStatus(this.user)}},a=n(2),c=n.n(a),l=n(95),u=(c()(l.a,{insert:"head",singleton:!1}),l.a.locals,n(3)),m=n(96),p=n.n(m),d=Object(u.a)(s,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("span",{staticClass:"option"},[n("Avatar",{staticClass:"option__avatar",attrs:{"display-name":t.displayName,user:t.user,"is-no-user":t.isNoUser,"disable-menu":!0,"disable-tooltip":!0}}),t._v(" "),n("div",{staticClass:"option__desc"},[n("Highlight",{staticClass:"option__desc--lineone",attrs:{text:t.displayName,search:t.search}}),t._v(" "),""!==t.desc?n("Highlight",{staticClass:"option__desc--linetwo",attrs:{text:t.desc,search:t.search}}):t.hasStatus?n("span",[n("span",[t._v(t._s(t.userStatus.icon))]),t._v(" "),n("span",[t._v(t._s(t.userStatus.message))])]):t._e()],1),t._v(" "),""!==t.icon?n("span",{staticClass:"icon option__icon",class:t.icon}):t._e()],1)}),[],!1,null,"01dee904",null);"function"==typeof p.a&&p()(d);var f=d.exports,g=(n(14),n(17),n(100),n(73),n(72)),A={name:"EllipsisedOption",components:{Highlight:o.default},props:{option:{type:[String,Object],required:!0,default:""},label:{type:String,default:""},search:{type:String,default:""},name:{type:String,default:""}},computed:{needsTruncate:function(){return this.name&&this.name.length>=10},split:function(){return this.name.length-Math.min(Math.floor(this.name.length/2),10)},part1:function(){return this.needsTruncate?this.name.substr(0,this.split):this.name},part2:function(){return this.needsTruncate?this.name.substr(this.split):""},highlight1:function(){return this.search?Object(g.a)(this.name,this.search):[]},highlight2:function(){var t=this;return this.highlight1.map((function(e){return{start:e.start-t.split,end:e.end-t.split}}))}}},h=n(97),v=(c()(h.a,{insert:"head",singleton:!1}),h.a.locals,Object(u.a)(A,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"name-parts",attrs:{title:t.name}},[n("Highlight",{staticClass:"name-parts__first",attrs:{text:t.part1,search:t.search,highlight:t.highlight1}}),t._v(" "),t.part2?n("Highlight",{staticClass:"name-parts__last",attrs:{text:t.part2,search:t.search,highlight:t.highlight2}}):t._e()],1)}),[],!1,null,"f855c4b8",null).exports),b=n(37),y=n(22),x=n(106);function C(t){return(C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var w={name:"Multiselect",components:{AvatarSelectOption:f,EllipsisedOption:v,VueMultiselect:n.n(x).a},directives:{tooltip:y.default},mixins:[b.a],inheritAttrs:!1,props:{value:{default:function(){return[]}},multiple:{type:Boolean,default:!1},limit:{type:Number,default:99999},label:{type:String,default:""},trackBy:{type:String,default:""},options:{type:Array,required:!0},userSelect:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},autoLimit:{type:Boolean,default:!0},tagWidth:{type:Number,default:150,validator:function(t){return t>0}}},data:function(){return{elWidth:0}},computed:{maxOptions:function(){if(this.autoLimit&&this.elWidth>0&&0!==this.tagWidth){var t=Math.floor(this.elWidth/this.tagWidth);return t>0?t:1}return this.limit?this.limit:9999},limitString:function(){return"+".concat(this.value.length-this.maxOptions)},localValue:{get:function(){return this.trackBy&&this.options&&"object"!==C(this.value)&&this.options[this.value]?this.options[this.value]:this.value},set:function(t){this.$emit("update:value",t),this.$emit("change",t)}}},watch:{value:function(){this.updateWidth()}},mounted:function(){this.updateWidth(),window.addEventListener("resize",this.updateWidth)},beforeDestroy:function(){window.removeEventListener("resize",this.updateWidth)},methods:{getOptionLabel:function(t){var e;return String(null===(e=this.$refs.VueMultiselect)||void 0===e?void 0:e.getOptionLabel(t))},formatLimitTitle:function(t){var e=this;if(Array.isArray(t)&&t.length>0){var n=t;return"object"===C(t[0])&&(n=t.map((function(t){return t[e.label]}))),n.slice(this.maxOptions).join(", ")}return""},updateWidth:function(){this.$el&&this.$el.querySelector(".multiselect__tags-wrap")&&(this.elWidth=this.$el.querySelector(".multiselect__tags-wrap").offsetWidth-10)}}},E=n(98),k=n.n(E),T=Object(u.a)(w,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("VueMultiselect",t._g(t._b({ref:"VueMultiselect",class:[{"icon-loading-small":t.loading},t.multiple?"multiselect--multiple":"multiselect--single"],attrs:{options:t.options,limit:t.maxOptions,"close-on-select":!t.multiple,multiple:t.multiple,label:t.label,"track-by":t.trackBy,"tag-placeholder":"create"},scopedSlots:t._u([{key:"option",fn:function(e){return[t.userSelect&&!t.$scopedSlots.option?n("AvatarSelectOption",t._b({attrs:{search:e.search}},"AvatarSelectOption",e.option,!1)):t.$scopedSlots.option?t._t("option",null,null,e):n("EllipsisedOption",{attrs:{name:t.getOptionLabel(e.option),option:e.option,search:e.search,label:t.label}})]}},t.multiple?{key:"limit",fn:function(){return[n("span",{directives:[{name:"tooltip",rawName:"v-tooltip.auto",value:t.formatLimitTitle(t.value),expression:"formatLimitTitle(value)",modifiers:{auto:!0}}],staticClass:"multiselect__limit"},[t._v("\n\t\t\t"+t._s(t.limitString)+"\n\t\t")])]},proxy:!0}:null,t._l(t.$scopedSlots,(function(e,n){return{key:n,fn:function(e){return[t._t(n,null,null,e)]}}}))],null,!0),model:{value:t.localValue,callback:function(e){t.localValue=e},expression:"localValue"}},"VueMultiselect",t.$attrs,!1),t.$listeners),[t._v(" "),t._v(" "),t._v(" "),n("span",{attrs:{slot:"noResult"},slot:"noResult"},[t._v(t._s(t.t("No results")))])])}),[],!1,null,null,null);"function"==typeof k.a&&k()(T),e.a=T.exports},function(t,e){t.exports=n(301)},,,function(t,e){t.exports=n(303)},function(t,e){t.exports=n(304)},function(t,e){t.exports=n(305)},function(t,e){t.exports=n(306)},,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(0),o=n.n(r),i=n(1),s=n.n(i)()(o.a);s.push([t.i,".multiselect[data-v-59f1214]{margin:0;padding:0 !important;display:inline-block;min-width:160px;position:relative;background-color:var(--color-main-background)}.multiselect[data-v-59f1214]:not(.multiselect--active) .multiselect__single{position:absolute;width:100%}.multiselect[data-v-59f1214].multiselect--active input.multiselect__input{opacity:1 !important;cursor:text !important;border-radius:var(--border-radius) var(--border-radius) 0 0}.multiselect[data-v-59f1214].multiselect--active .multiselect__limit{display:none}.multiselect[data-v-59f1214].multiselect--active.multiselect--above input.multiselect__input{border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-59f1214].multiselect--disabled,.multiselect[data-v-59f1214].multiselect--disabled .multiselect__single{background-color:var(--color-background-dark) !important}.multiselect[data-v-59f1214].icon-loading-small::after{left:100%;margin-left:-24px}.multiselect[data-v-59f1214] .multiselect__tags{display:flex;flex-wrap:nowrap;overflow:hidden;border:1px solid var(--color-border-dark);cursor:pointer;position:relative;border-radius:3px;min-height:34px}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap{align-items:center;display:inline-flex;overflow:hidden;max-width:100%;position:relative;padding:3px 5px;flex-grow:1}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap:empty ~ input.multiselect__input{opacity:1 !important}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap:empty ~ input.multiselect__input+span:not(.multiselect__single){display:none}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap .multiselect__tag{flex:1 0 0;line-height:20px;padding:1px 5px;background-image:none;color:var(--color-main-text);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center;border-radius:3px;min-width:0;max-width:50%;max-width:fit-content;max-width:-moz-fit-content}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap .multiselect__tag:only-child{flex:0 1 auto}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap .multiselect__tag:not(:last-child){margin-right:5px}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap .multiselect__tag>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__single,.multiselect[data-v-59f1214] .multiselect__tags .multiselect__placeholder{padding:7px 6px;flex:0 0 100%;z-index:1;background-color:var(--color-main-background);cursor:pointer;line-height:18px;color:var(--color-text-lighter)}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__strong,.multiselect[data-v-59f1214] .multiselect__tags .multiselect__limit{flex:0 0 auto;line-height:20px;color:var(--color-text-lighter);display:inline-flex;align-items:center;opacity:.7;margin-right:5px;z-index:5}.multiselect[data-v-59f1214] .multiselect__tags input.multiselect__input{width:100% !important;position:absolute !important;top:0;left:0;margin:0;opacity:0;height:100%;border:none;display:block !important;cursor:pointer;padding:7px 6px !important}.multiselect[data-v-59f1214] .multiselect__content-wrapper{position:absolute;width:100%;margin-top:-1px;border:1px solid var(--color-border-dark);background:var(--color-main-background);z-index:50;max-height:250px;overflow-y:auto;border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-59f1214] .multiselect__content-wrapper .multiselect__content{width:100%;padding:0}.multiselect[data-v-59f1214] .multiselect__content-wrapper li{position:relative;display:flex;align-items:center;background-color:transparent}.multiselect[data-v-59f1214] .multiselect__content-wrapper li,.multiselect[data-v-59f1214] .multiselect__content-wrapper li span{cursor:pointer}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span{padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;height:auto;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:transparent;color:var(--color-text-lighter);width:100%}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span::before{content:' ';background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span.multiselect__option--disabled{background-color:var(--color-background-dark);opacity:.5}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span.multiselect__option--highlight{color:var(--color-main-text);background-color:var(--color-background-dark)}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{opacity:.3}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span.multiselect__option--selected::before,.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{visibility:visible}.multiselect[data-v-59f1214].multiselect--above .multiselect__content-wrapper{bottom:100%;margin-bottom:-1px}.multiselect[data-v-59f1214].multiselect--multiple .multiselect__content-wrapper li>span::before{background-image:var(--icon-checkmark-000)}.multiselect[data-v-59f1214].multiselect--multiple .multiselect__content-wrapper li>span[data-select='create']::before{background-image:var(--icon-add-000);visibility:visible}.multiselect[data-v-59f1214].multiselect--single .multiselect__content-wrapper li>span::before{display:none}.multiselect[data-v-59f1214]:hover .multiselect__placeholder,.multiselect[data-v-59f1214] input.multiselect__input .multiselect__placeholder{color:var(--color-main-text)}\n","",{version:3,sources:["webpack://./index.scss","webpack://./../../assets/variables.scss"],names:[],mappings:"AAIA,6BACC,QAAS,CACT,oBAAqB,CACrB,oBAAqB,CAErB,eAAgB,CAChB,iBAAkB,CAClB,6CAA8C,CAP/C,4EAWE,iBAAkB,CAClB,UAAW,CAZb,0EAoBG,oBAAiC,CACjC,sBAAuB,CAEvB,2DAA4D,CAvB/D,qEA4BG,YAAa,CA5BhB,6FAmCG,2DAA4D,CAnC/D,2HA0CE,wDAAyD,CA1C3D,uDA+CE,SAAU,CACV,iBAAkB,CAhDpB,gDAuDE,YAAa,CACb,gBAAiB,CACjB,eAAgB,CAChB,yCAA0C,CAC1C,cAAe,CACf,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CA9DlB,wEAiEG,kBAAmB,CACnB,mBAAoB,CACpB,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,eAhBkB,CAiBlB,WAAY,CAvEf,yGA2EI,oBAAiC,CA3ErC,wIAgFK,YAAa,CAhFlB,0FAqFI,UAAW,CACX,gBAAiB,CACjB,eAAgB,CAChB,qBAAsB,CACtB,4BAA6B,CAC7B,yCAA0C,CAC1C,mBAAoB,CACpB,kBAAmB,CACnB,iBAAkB,CAGlB,WAAY,CACZ,aAAc,CACd,qBAAsB,CACtB,0BAA2B,CAnG/B,qGAuGK,aAAc,CAvGnB,2GA0GK,gBApDgB,CAtDrB,+FA+GK,kBAAmB,CACnB,sBAAuB,CACvB,eAAgB,CAjHrB,+IA0HG,eAAgB,CAChB,aAAc,CACd,SAAU,CACV,6CAA8C,CAC9C,cAAe,CACf,gBAAiB,CACjB,+BAAgC,CAhInC,yIAqIG,aAAc,CACd,gBAAiB,CACjB,+BAAgC,CAChC,mBAAoB,CACpB,kBAAmB,CACnB,UCnGgB,CDoGhB,gBArFkB,CAuFlB,SAAU,CA7Ib,yEAiJG,qBAAsB,CACtB,4BAA6B,CAC7B,KAAM,CACN,MAAO,CACP,QAAS,CACT,SAAU,CAEV,WAAY,CACZ,WAAY,CAEZ,wBAAyB,CAEzB,cAAe,CAEf,0BAA2B,CA/J9B,2DAqKE,iBAAkB,CAClB,UAAW,CACX,eAAgB,CAChB,yCAA0C,CAC1C,uCAAwC,CACxC,UAAW,CACX,gBAAiB,CACjB,eAAgB,CAChB,2DAA4D,CA7K9D,iFA+KG,UAAW,CACX,SAAU,CAhLb,8DAmLG,iBAAkB,CAClB,YAAa,CACb,kBAAmB,CACnB,4BAA6B,CAtLhC,iIAyLI,cAAe,CAzLnB,mEA4LI,WAAY,CACZ,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,QAAS,CACT,WAAY,CACZ,cAAe,CACf,0BAA2B,CAC3B,wBAAyB,CACzB,qBAAsB,CACtB,oBAAqB,CACrB,gBAAiB,CACjB,mBAAoB,CACpB,kBAAmB,CACnB,4BAA6B,CAC7B,+BAAgC,CAChC,UAAW,CA5Mf,2EA+MK,WAAY,CACZ,2BAA4B,CAC5B,0BAA2B,CAC3B,cAAe,CACf,eAAgB,CAChB,aAAc,CACd,UC/KgB,CDgLhB,gBAAiB,CACjB,iBAAkB,CAvNvB,iGA0NK,6CAA8C,CAC9C,UCrLgB,CDtCrB,kGA8NK,4BAA6B,CAC7B,6CAA8C,CA/NnD,qHAkOK,UAAW,CAlOhB,8NAuOM,kBAAmB,CAvOzB,8EA+OE,WAAY,CACZ,kBAAmB,CAhPrB,iGAsPG,0CAA2C,CAtP9C,uHA4PI,oCAAqC,CACrC,kBAAmB,CA7PvB,+FAoQE,YAAa,CApQf,6IA2QG,4BAA6B",sourcesContent:["$scope_version:\"59f1214\"; @import 'variables';\n// scoping is not working inside the Multiselect.vue component\n// as the nested properties are not inside it\n// Therefore we need to use an external scoping\n.multiselect[data-v-#{$scope_version}] {\n\tmargin: 0;\n\tpadding: 0 !important;\n\tdisplay: inline-block;\n\t/* override this rule with your width styling if you need */\n\tmin-width: 160px;\n\tposition: relative;\n\tbackground-color: var(--color-main-background);\n\n\t/* Force single multiselect value to be shown when not active */\n\t&:not(.multiselect--active) .multiselect__single {\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t}\n\n\t// active state, force the input to be shown, we don't want\n\t// the placeholder or the currently selected options\n\t&.multiselect--active {\n\t\t/* Opened: force display the input */\n\t\tinput.multiselect__input {\n\t\t\topacity: $opacity_full !important;\n\t\t\tcursor: text !important;\n\t\t\t// remove border radius on bottom opening\n\t\t\tborder-radius: var(--border-radius) var(--border-radius) 0 0;\n\t\t}\n\n\t\t/* multiselect__limit hidden if active */\n\t\t.multiselect__limit {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t// Remove radius on top opening\n\t&.multiselect--active.multiselect--above {\n\t\tinput.multiselect__input {\n\t\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\t}\n\t}\n\n\t// disabled state background\n\t&.multiselect--disabled,\n\t&.multiselect--disabled .multiselect__single {\n\t\tbackground-color: var(--color-background-dark) !important;\n\t}\n\n\t// loading state\n\t&.icon-loading-small::after {\n\t\tleft: 100%;\n\t\tmargin-left: -24px;\n\t}\n\n\t// multiple selected options display\n\t.multiselect__tags {\n\t\t/* space between tags and limit tag */\n\t\t$space-between: 5px;\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\toverflow: hidden;\n\t\tborder: 1px solid var(--color-border-dark);\n\t\tcursor: pointer;\n\t\tposition: relative;\n\t\tborder-radius: 3px;\n\t\tmin-height: 34px;\n\t\t/* tag wrapper */\n\t\t.multiselect__tags-wrap {\n\t\t\talign-items: center;\n\t\t\tdisplay: inline-flex;\n\t\t\toverflow: hidden;\n\t\t\tmax-width: 100%;\n\t\t\tposition: relative;\n\t\t\tpadding: 3px $space-between;\n\t\t\tflex-grow: 1;\n\t\t\t/* no tags or simple select? Show input directly\n\t\t\tinput is used to display single value */\n\t\t\t&:empty ~ input.multiselect__input {\n\t\t\t\topacity: $opacity_full !important;\n\t\t\t\t/* hide default empty text like .multiselect__placeholder,\n\t\t\t\tand show input instead. It looks better without a transition between\n\t\t\t\ta span and the input that have different styling */\n\t\t\t\t+ span:not(.multiselect__single) {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t\t/* selected tag */\n\t\t\t.multiselect__tag {\n\t\t\t\tflex: 1 0 0;\n\t\t\t\tline-height: 20px;\n\t\t\t\tpadding: 1px 5px;\n\t\t\t\tbackground-image: none;\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\tborder: 1px solid var(--color-border-dark);\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tborder-radius: 3px;\n\t\t\t\t/* require to override the default width\n\t\t\t\tand force the tag to shring properly */\n\t\t\t\tmin-width: 0;\n\t\t\t\tmax-width: 50%;\n\t\t\t\tmax-width: fit-content;\n\t\t\t\tmax-width: -moz-fit-content;\n\t\t\t\t/* css hack, detect if more than two tags\n\t\t\t\tif so, flex-basis is set to half */\n\t\t\t\t&:only-child {\n\t\t\t\t\tflex: 0 1 auto;\n\t\t\t\t}\n\t\t\t\t&:not(:last-child) {\n\t\t\t\t\tmargin-right: $space-between;\n\t\t\t\t}\n\t\t\t\t/* ellipsis the groups to be sure\n\t\t\t\twe display at least two of them */\n\t\t\t\t> span {\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/* Single select default value\n\t\tor default placeholder if search disabled*/\n\t\t.multiselect__single,\n\t\t.multiselect__placeholder {\n\t\t\tpadding: 7px 6px; // like the input\n\t\t\tflex: 0 0 100%;\n\t\t\tz-index: 1; /* above input */\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tcursor: pointer;\n\t\t\tline-height: 18px; // 32px - 2*6px (padding) - 2*1px (border)\n\t\t\tcolor: var(--color-text-lighter); // like the input\n\t\t}\n\t\t/* displayed text if tag limit reached */\n\t\t.multiselect__strong,\n\t\t.multiselect__limit {\n\t\t\tflex: 0 0 auto;\n\t\t\tline-height: 20px;\n\t\t\tcolor: var(--color-text-lighter);\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\topacity: $opacity_normal;\n\t\t\tmargin-right: $space-between;\n\t\t\t/* above the input */\n\t\t\tz-index: 5;\n\t\t}\n\t\t/* default multiselect input for search and placeholder */\n\t\tinput.multiselect__input {\n\t\t\twidth: 100% !important;\n\t\t\tposition: absolute !important;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tmargin: 0;\n\t\t\topacity: 0;\n\t\t\t/* let's leave it on top of tags but hide it */\n\t\t\theight: 100%;\n\t\t\tborder: none;\n\t\t\t/* override hide to force show the placeholder */\n\t\t\tdisplay: block !important;\n\t\t\t/* only when not active */\n\t\t\tcursor: pointer;\n\t\t\t/* override inline styling of the lib */\n\t\t\tpadding: 7px 6px !important;\n\t\t}\n\t}\n\n\t/* results wrapper */\n\t.multiselect__content-wrapper {\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t\tmargin-top: -1px;\n\t\tborder: 1px solid var(--color-border-dark);\n\t\tbackground: var(--color-main-background);\n\t\tz-index: 50;\n\t\tmax-height: 250px;\n\t\toverflow-y: auto;\n\t\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\n\t\t.multiselect__content {\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t}\n\t\tli {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tbackground-color: transparent;\n\t\t\t&,\n\t\t\tspan {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t\t> span {\n\t\t\t\tpadding: 8px;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\tmargin: 0;\n\t\t\t\theight: auto;\n\t\t\t\tmin-height: 1em;\n\t\t\t\t-webkit-touch-callout: none;\n\t\t\t\t-webkit-user-select: none;\n\t\t\t\t-moz-user-select: none;\n\t\t\t\t-ms-user-select: none;\n\t\t\t\tuser-select: none;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tbackground-color: transparent;\n\t\t\t\tcolor: var(--color-text-lighter);\n\t\t\t\twidth: 100%;\n\t\t\t\t/* selected checkmark icon */\n\t\t\t\t&::before {\n\t\t\t\t\tcontent: ' ';\n\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\tbackground-position: center;\n\t\t\t\t\tmin-width: 16px;\n\t\t\t\t\tmin-height: 16px;\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\topacity: $opacity_disabled;\n\t\t\t\t\tmargin-right: 5px;\n\t\t\t\t\tvisibility: hidden;\n\t\t\t\t}\n\t\t\t\t&.multiselect__option--disabled {\n\t\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\t\topacity: $opacity_disabled;\n\t\t\t\t}\n\t\t\t\t&.multiselect__option--highlight {\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\t}\n\t\t\t\t&:not(.multiselect__option--disabled):hover::before {\n\t\t\t\t\topacity: .3;\n\t\t\t\t}\n\t\t\t\t&.multiselect__option--selected,\n\t\t\t\t&:not(.multiselect__option--disabled):hover {\n\t\t\t\t\t&::before {\n\t\t\t\t\t\tvisibility: visible;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t/* ABOVE display */\n\t&.multiselect--above .multiselect__content-wrapper {\n\t\tbottom: 100%;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t/* Icon before option select */\n\t&.multiselect--multiple .multiselect__content-wrapper li > span {\n\t\t&::before {\n\t\t\tbackground-image: var(--icon-checkmark-000);\n\t\t}\n\t\t/* add the prop tag-placeholder=\"create\" to add the +\n\t\ticon on top of an unknown-and-ready-to-be-created entry */\n\t\t&[data-select='create'] {\n\t\t\t&::before {\n\t\t\t\tbackground-image: var(--icon-add-000);\n\t\t\t\tvisibility: visible;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* No need for an icon here */\n\t&.multiselect--single .multiselect__content-wrapper li > span::before {\n\t\tdisplay: none;\n\t}\n\n\t/* Mouse feedback */\n\t&:hover,\n\tinput.multiselect__input {\n\t\t.multiselect__placeholder {\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n}\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\n// recommended is 48px\n// 44px is what we choose and have very good visual-to-usability ratio\n$clickable-area: 44px;\n\n// background icon size\n// also used for the scss icon font\n$icon-size: 16px;\n\n// icon padding for a $clickable-area width and a $icon-size icon\n// ( 44px - 16px ) / 2\n$icon-margin: ($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"],sourceRoot:""}]),e.a=s},function(t,e){t.exports=n(307)},function(t,e){t.exports=n(308)},,,,,,,,,function(t,e,n){"use strict";n.r(e);var r=n(67),o=n(99),i=n(2),s=n.n(i),a=n(119);s()(a.a,{insert:"head",singleton:!1}),a.a.locals,Object(r.a)(o.a),e.default=o.a}])},function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return i}));var r=void 0;function o(){o.init||(o.init=!0,r=-1!==function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var n=t.indexOf("rv:");return parseInt(t.substring(n+3,t.indexOf(".",n)),10)}var r=t.indexOf("Edge/");return r>0?parseInt(t.substring(r+5,t.indexOf(".",r)),10):-1}())}var i={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"resize-observer",attrs:{"tabindex":"-1"}})},staticRenderFns:[],_scopeId:"data-v-b329ee4c",name:"resize-observer",methods:{compareAndNotify:function(){this._w===this.$el.offsetWidth&&this._h===this.$el.offsetHeight||(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.$emit("notify"))},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!r&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),delete this._resizeObject.onload)}},mounted:function(){var t=this;o(),this.$nextTick((function(){t._w=t.$el.offsetWidth,t._h=t.$el.offsetHeight}));var e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",r&&this.$el.appendChild(e),e.data="about:blank",r||this.$el.appendChild(e)},beforeDestroy:function(){this.removeResizeHandlers()}};var s={version:"0.4.5",install:function(t){t.component("resize-observer",i),t.component("ResizeObserver",i)}},a=null;"undefined"!=typeof window?a=window.Vue:void 0!==t&&(a=t.Vue),a&&a.use(s)}).call(this,n(17))},function(t,e){function n(t){return"function"==typeof t.value||(console.warn("[Vue-click-outside:] provided expression",t.expression,"is not a function."),!1)}function r(t){return void 0!==t.componentInstance&&t.componentInstance.$isServer}t.exports={bind:function(t,e,o){if(!n(e))return;function i(e){if(o.context){var n=e.path||e.composedPath&&e.composedPath();n&&n.length>0&&n.unshift(e.target),t.contains(e.target)||function(t,e){if(!t||!e)return!1;for(var n=0,r=e.length;n<r;n++)try{if(t.contains(e[n]))return!0;if(e[n].contains(t))return!1}catch(t){return!1}return!1}(o.context.popupItem,n)||t.__vueClickOutside__.callback(e)}}t.__vueClickOutside__={handler:i,callback:e.value};const s="ontouchstart"in document.documentElement?"touchstart":"click";!r(o)&&document.addEventListener(s,i)},update:function(t,e){n(e)&&(t.__vueClickOutside__.callback=e.value)},unbind:function(t,e,n){const o="ontouchstart"in document.documentElement?"touchstart":"click";!r(n)&&t.__vueClickOutside__&&document.removeEventListener(o,t.__vueClickOutside__.handler),delete t.__vueClickOutside__}}},function(t,e,n){var r=n(1),o=n(76),i=r.WeakMap;t.exports="function"==typeof i&&/native code/.test(o(i))},function(t,e,n){"use strict";var r=n(83),o=n(85);t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},function(t,e,n){var r=n(15),o=Math.floor,i="".replace,s=/\$([$&'`]|\d\d?|<[^>]*>)/g,a=/\$([$&'`]|\d\d?)/g;t.exports=function(t,e,n,c,l,u){var m=n+t.length,p=c.length,d=a;return void 0!==l&&(l=r(l),d=s),i.call(u,d,(function(r,i){var s;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,n);case"'":return e.slice(m);case"<":s=l[i.slice(1,-1)];break;default:var a=+i;if(0===a)return r;if(a>p){var u=o(a/10);return 0===u?r:u<=p?void 0===c[u-1]?i.charAt(1):c[u-1]+i.charAt(1):r}s=c[a-1]}return void 0===s?"":s}))}},function(t,e,n){var r=n(2);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},function(t,e,n){var r=n(6);t.exports=function(t){if(!r(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},function(t,e,n){var r=n(4),o=n(135);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){throw o(t),e}}},function(t,e,n){"use strict";var r=/[^\0-\u007E]/,o=/[.\u3002\uFF0E\uFF61]/g,i="Overflow: input needs wider integers to process",s=Math.floor,a=String.fromCharCode,c=function(t){return t+22+75*(t<26)},l=function(t,e,n){var r=0;for(t=n?s(t/700):t>>1,t+=s(t/e);t>455;r+=36)t=s(t/35);return s(r+36*t/(t+38))},u=function(t){var e,n,r=[],o=(t=function(t){for(var e=[],n=0,r=t.length;n<r;){var o=t.charCodeAt(n++);if(o>=55296&&o<=56319&&n<r){var i=t.charCodeAt(n++);56320==(64512&i)?e.push(((1023&o)<<10)+(1023&i)+65536):(e.push(o),n--)}else e.push(o)}return e}(t)).length,u=128,m=0,p=72;for(e=0;e<t.length;e++)(n=t[e])<128&&r.push(a(n));var d=r.length,f=d;for(d&&r.push("-");f<o;){var g=2147483647;for(e=0;e<t.length;e++)(n=t[e])>=u&&n<g&&(g=n);var A=f+1;if(g-u>s((2147483647-m)/A))throw RangeError(i);for(m+=(g-u)*A,u=g,e=0;e<t.length;e++){if((n=t[e])<u&&++m>2147483647)throw RangeError(i);if(n==u){for(var h=m,v=36;;v+=36){var b=v<=p?1:v>=p+26?26:v-p;if(h<b)break;var y=h-b,x=36-b;r.push(a(c(b+y%x))),h=s(y/x)}r.push(a(c(h))),p=l(m,A,f==d),m=0,++f}}++m,++u}return r.join("")};t.exports=function(t){var e,n,i=[],s=t.toLowerCase().replace(o,".").split(".");for(e=0;e<s.length;e++)n=s[e],i.push(r.test(n)?"xn--"+u(n):n);return i.join(".")}},function(t,e,n){"use strict";n(40);var r=n(0),o=n(23),i=n(133),s=n(9),a=n(91),c=n(25),l=n(127),u=n(19),m=n(42),p=n(7),d=n(26),f=n(85),g=n(4),A=n(6),h=n(30),v=n(29),b=n(196),y=n(59),x=n(3),C=o("fetch"),w=o("Headers"),E=x("iterator"),k=u.set,T=u.getterFor("URLSearchParams"),S=u.getterFor("URLSearchParamsIterator"),_=/\+/g,M=Array(4),j=function(t){return M[t-1]||(M[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},P=function(t){try{return decodeURIComponent(t)}catch(e){return t}},B=function(t){var e=t.replace(_," "),n=4;try{return decodeURIComponent(e)}catch(t){for(;n;)e=e.replace(j(n--),P);return e}},N=/[!'()~]|%20/g,I={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},O=function(t){return I[t]},L=function(t){return encodeURIComponent(t).replace(N,O)},D=function(t,e){if(e)for(var n,r,o=e.split("&"),i=0;i<o.length;)(n=o[i++]).length&&(r=n.split("="),t.push({key:B(r.shift()),value:B(r.join("="))}))},F=function(t){this.entries.length=0,D(this.entries,t)},U=function(t,e){if(t<e)throw TypeError("Not enough arguments")},R=l((function(t,e){k(this,{type:"URLSearchParamsIterator",iterator:b(T(t).entries),kind:e})}),"Iterator",(function(){var t=S(this),e=t.kind,n=t.iterator.next(),r=n.value;return n.done||(n.value="keys"===e?r.key:"values"===e?r.value:[r.key,r.value]),n})),z=function(){m(this,z,"URLSearchParams");var t,e,n,r,o,i,s,a,c,l=arguments.length>0?arguments[0]:void 0,u=this,d=[];if(k(u,{type:"URLSearchParams",entries:d,updateURL:function(){},updateSearchParams:F}),void 0!==l)if(A(l))if("function"==typeof(t=y(l)))for(n=(e=t.call(l)).next;!(r=n.call(e)).done;){if((s=(i=(o=b(g(r.value))).next).call(o)).done||(a=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");d.push({key:s.value+"",value:a.value+""})}else for(c in l)p(l,c)&&d.push({key:c,value:l[c]+""});else D(d,"string"==typeof l?"?"===l.charAt(0)?l.slice(1):l:l+"")},G=z.prototype;a(G,{append:function(t,e){U(arguments.length,2);var n=T(this);n.entries.push({key:t+"",value:e+""}),n.updateURL()},"delete":function(t){U(arguments.length,1);for(var e=T(this),n=e.entries,r=t+"",o=0;o<n.length;)n[o].key===r?n.splice(o,1):o++;e.updateURL()},get:function(t){U(arguments.length,1);for(var e=T(this).entries,n=t+"",r=0;r<e.length;r++)if(e[r].key===n)return e[r].value;return null},getAll:function(t){U(arguments.length,1);for(var e=T(this).entries,n=t+"",r=[],o=0;o<e.length;o++)e[o].key===n&&r.push(e[o].value);return r},has:function(t){U(arguments.length,1);for(var e=T(this).entries,n=t+"",r=0;r<e.length;)if(e[r++].key===n)return!0;return!1},set:function(t,e){U(arguments.length,1);for(var n,r=T(this),o=r.entries,i=!1,s=t+"",a=e+"",c=0;c<o.length;c++)(n=o[c]).key===s&&(i?o.splice(c--,1):(i=!0,n.value=a));i||o.push({key:s,value:a}),r.updateURL()},sort:function(){var t,e,n,r=T(this),o=r.entries,i=o.slice();for(o.length=0,n=0;n<i.length;n++){for(t=i[n],e=0;e<n;e++)if(o[e].key>t.key){o.splice(e,0,t);break}e===n&&o.push(t)}r.updateURL()},forEach:function(t){for(var e,n=T(this).entries,r=d(t,arguments.length>1?arguments[1]:void 0,3),o=0;o<n.length;)r((e=n[o++]).value,e.key,this)},keys:function(){return new R(this,"keys")},values:function(){return new R(this,"values")},entries:function(){return new R(this,"entries")}},{enumerable:!0}),s(G,E,G.entries),s(G,"toString",(function(){for(var t,e=T(this).entries,n=[],r=0;r<e.length;)t=e[r++],n.push(L(t.key)+"="+L(t.value));return n.join("&")}),{enumerable:!0}),c(z,"URLSearchParams"),r({global:!0,forced:!i},{URLSearchParams:z}),i||"function"!=typeof C||"function"!=typeof w||r({global:!0,enumerable:!0,forced:!0},{fetch:function(t){var e,n,r,o=[t];return arguments.length>1&&(A(e=arguments[1])&&(n=e.body,"URLSearchParams"===f(n)&&((r=e.headers?new w(e.headers):new w).has("content-type")||r.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),e=h(e,{body:v(0,String(n)),headers:v(0,r)}))),o.push(e)),C.apply(this,o)}}),t.exports={URLSearchParams:z,getState:T}},function(t,e,n){var r=n(4),o=n(59);t.exports=function(t){var e=o(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return r(e.call(t))}},function(t,e,n){(function(t){var r=void 0!==t&&t||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},e.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(198),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(17))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,o,i,s,a,c=1,l={},u=!1,m=t.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(t);p=p&&p.setTimeout?p:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){f(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((i=new MessageChannel).port1.onmessage=function(t){f(t.data)},r=function(t){i.port2.postMessage(t)}):m&&"onreadystatechange"in m.createElement("script")?(o=m.documentElement,r=function(t){var e=m.createElement("script");e.onreadystatechange=function(){f(t),e.onreadystatechange=null,o.removeChild(e),e=null},o.appendChild(e)}):r=function(t){setTimeout(f,0,t)}:(s="setImmediate$"+Math.random()+"$",a=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(s)&&f(+e.data.slice(s.length))},t.addEventListener?t.addEventListener("message",a,!1):t.attachEvent("onmessage",a),r=function(e){t.postMessage(s+e,"*")}),p.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return l[c]=o,r(c),c++},p.clearImmediate=d}function d(t){delete l[t]}function f(t){if(u)setTimeout(f,0,t);else{var e=l[t];if(e){u=!0;try{!function(t){var e=t.callback,n=t.args;switch(n.length){case 0:e();break;case 1:e(n[0]);break;case 2:e(n[0],n[1]);break;case 3:e(n[0],n[1],n[2]);break;default:e.apply(void 0,n)}}(e)}finally{d(t),u=!1}}}}}("undefined"==typeof self?void 0===t?this:t:self)}).call(this,n(17),n(92))},function(t,e,n){var r=n(5),o=n(8).f,i=Function.prototype,s=i.toString,a=/^\s*function ([^ (]*)/;r&&!("name"in i)&&o(i,"name",{configurable:!0,get:function(){try{return s.call(this).match(a)[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(0),o=n(60).map,i=n(61),s=n(24),a=i("map"),c=s("map");r({target:"Array",proto:!0,forced:!a||!c},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ProxyBus=void 0;var r=i(n(202)),o=i(n(205));function i(t){return t&&t.__esModule?t:{default:t}}function s(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var a="1.2.0",c=function(){function t(e){var n,i,s;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),s=void 0,(i="bus")in(n=this)?Object.defineProperty(n,i,{value:s,enumerable:!0,configurable:!0,writable:!0}):n[i]=s,"function"==typeof e.getVersion&&(0,r.default)(e.getVersion())?(0,o.default)(e.getVersion())!==(0,o.default)(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()):console.warn("Proxying an event bus with an unknown or invalid version"),this.bus=e}var e,n,i;return e=t,(n=[{key:"getVersion",value:function(){return a}},{key:"subscribe",value:function(t,e){this.bus.subscribe(t,e)}},{key:"unsubscribe",value:function(t,e){this.bus.unsubscribe(t,e)}},{key:"emit",value:function(t,e){this.bus.emit(t,e)}}])&&s(e.prototype,n),i&&s(e,i),t}();e.ProxyBus=c},function(t,e,n){var r=n(203);t.exports=function(t,e){var n=r(t,e);return n?n.version:null}},function(t,e,n){function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var o=n(96).MAX_LENGTH,i=n(138),s=i.re,a=i.t,c=n(140);t.exports=function(t,e){if(e&&"object"===r(e)||(e={loose:!!e,includePrerelease:!1}),t instanceof c)return t;if("string"!=typeof t)return null;if(t.length>o)return null;if(!(e.loose?s[a.LOOSE]:s[a.FULL]).test(t))return null;try{return new c(t,e)}catch(t){return null}}},function(t,e){var n=/^[0-9]+$/,r=function(t,e){var r=n.test(t),o=n.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1};t.exports={compareIdentifiers:r,rcompareIdentifiers:function(t,e){return r(e,t)}}},function(t,e,n){var r=n(140);t.exports=function(t,e){return new r(t,e).major}},function(t,e,n){"use strict";function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}n(95),n(141),n(97),n(40),n(207),n(38),n(57),n(144),n(90),Object.defineProperty(e,"__esModule",{value:!0}),e.SimpleBus=void 0;var o="1.2.0",i=function(){function t(){var e,n,r;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),e=this,n="handlers",r=new Map,n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r}var e,n,i;return e=t,(n=[{key:"getVersion",value:function(){return o}},{key:"subscribe",value:function(t,e){this.handlers.set(t,(this.handlers.get(t)||[]).concat(e))}},{key:"unsubscribe",value:function(t,e){this.handlers.set(t,(this.handlers.get(t)||[]).filter((function(t){return t!=e})))}},{key:"emit",value:function(t,e){(this.handlers.get(t)||[]).forEach((function(t){try{t(e)}catch(t){console.error("could not invoke event listener",t)}}))}}])&&r(e.prototype,n),i&&r(e,i),t}();e.SimpleBus=i},function(t,e,n){"use strict";var r=n(208),o=n(210);t.exports=r("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),o)},function(t,e,n){"use strict";var r=n(0),o=n(1),i=n(37),s=n(9),a=n(143),c=n(98),l=n(42),u=n(6),m=n(2),p=n(99),d=n(25),f=n(100);t.exports=function(t,e,n){var g=-1!==t.indexOf("Map"),A=-1!==t.indexOf("Weak"),h=g?"set":"add",v=o[t],b=v&&v.prototype,y=v,x={},C=function(t){var e=b[t];s(b,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(A&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return A&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(A&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,"function"!=typeof v||!(A||b.forEach&&!m((function(){(new v).entries().next()})))))y=n.getConstructor(e,t,g,h),a.REQUIRED=!0;else if(i(t,!0)){var w=new y,E=w[h](A?{}:-0,1)!=w,k=m((function(){w.has(1)})),T=p((function(t){new v(t)})),S=!A&&m((function(){for(var t=new v,e=5;e--;)t[h](e,e);return!t.has(-0)}));T||((y=e((function(e,n){l(e,y,t);var r=f(new v,e,y);return null!=n&&c(n,r[h],{that:r,AS_ENTRIES:g}),r}))).prototype=b,b.constructor=y),(k||S)&&(C("delete"),C("has"),g&&C("get")),(S||E)&&C(h),A&&b.clear&&delete b.clear}return x[t]=y,r({global:!0,forced:y!=v},x),d(y,t),A||n.setStrong(y,t,g),y}},function(t,e,n){var r=n(2);t.exports=!r((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(t,e,n){"use strict";var r=n(8).f,o=n(30),i=n(91),s=n(26),a=n(42),c=n(98),l=n(89),u=n(101),m=n(5),p=n(143).fastKey,d=n(19),f=d.set,g=d.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,r){a(t,u,e),f(t,{type:e,index:o(null),first:void 0,last:void 0,size:0}),m||(t.size=0),null!=r&&c(r,t[l],{that:t,AS_ENTRIES:n})})),d=g(e),A=function(t,e,n){var r,o,i=d(t),s=h(t,e);return s?s.value=n:(i.last=s={index:o=p(e,!0),key:e,value:n,previous:r=i.last,next:void 0,removed:!1},i.first||(i.first=s),r&&(r.next=s),m?i.size++:t.size++,"F"!==o&&(i.index[o]=s)),t},h=function(t,e){var n,r=d(t),o=p(e);if("F"!==o)return r.index[o];for(n=r.first;n;n=n.next)if(n.key==e)return n};return i(u.prototype,{clear:function(){for(var t=d(this),e=t.index,n=t.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete e[n.index],n=n.next;t.first=t.last=void 0,m?t.size=0:this.size=0},"delete":function(t){var e=d(this),n=h(this,t);if(n){var r=n.next,o=n.previous;delete e.index[n.index],n.removed=!0,o&&(o.next=r),r&&(r.previous=o),e.first==n&&(e.first=r),e.last==n&&(e.last=o),m?e.size--:this.size--}return!!n},forEach:function(t){for(var e,n=d(this),r=s(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!h(this,t)}}),i(u.prototype,n?{get:function(t){var e=h(this,t);return e&&e.value},set:function(t,e){return A(this,0===t?0:t,e)}}:{add:function(t){return A(this,t=0===t?0:t,t)}}),m&&r(u.prototype,"size",{get:function(){return d(this).size}}),u},setStrong:function(t,e,n){var r=e+" Iterator",o=g(e),i=g(r);l(t,e,(function(t,e){f(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},function(t,e,n){"use strict";n(38),n(39),n(52),n(53),Object.defineProperty(e,"__esModule",{value:!0}),e.getGettextBuilder=function(){return new l};var r,o=(r=n(212))&&r.__esModule?r:{default:r},i=n(215);function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function c(t,e,n){return e&&a(t.prototype,e),n&&a(t,n),t}var l=function(){function t(){s(this,t),this.translations={},this.debug=!1}return c(t,[{key:"setLanguage",value:function(t){return this.locale=t,this}},{key:"detectLocale",value:function(){return this.setLanguage((0,i.getLanguage)().replace("-","_"))}},{key:"addTranslation",value:function(t,e){return this.translations[t]=e,this}},{key:"enableDebugMode",value:function(){return this.debug=!0,this}},{key:"build",value:function(){return new u(this.locale||"en",this.translations,this.debug)}}]),t}(),u=function(){function t(e,n,r){for(var i in s(this,t),this.gt=new o.default({debug:r,sourceLocale:"en"}),n)this.gt.addTranslations(i,"messages",n[i]);this.gt.setLocale(e)}return c(t,[{key:"subtitudePlaceholders",value:function(t,e){return t.replace(/{([^{}]*)}/g,(function(t,n){var r=e[n];return"string"==typeof r||"number"==typeof r?r.toString():t}))}},{key:"gettext",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.subtitudePlaceholders(this.gt.gettext(t),e)}},{key:"ngettext",value:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.subtitudePlaceholders(this.gt.ngettext(t,e,n).replace(/%n/g,n.toString()),r)}}]),t}()},function(t,e,n){"use strict";var r=n(213),o=n(214);function i(t){t=t||{},this.catalogs={},this.locale="",this.domain="messages",this.listeners=[],this.sourceLocale="",t.sourceLocale&&("string"==typeof t.sourceLocale?this.sourceLocale=t.sourceLocale:this.warn("The `sourceLocale` option should be a string")),this.debug="debug"in t&&!0===t.debug}t.exports=i,i.prototype.on=function(t,e){this.listeners.push({eventName:t,callback:e})},i.prototype.off=function(t,e){this.listeners=this.listeners.filter((function(n){return!1==(n.eventName===t&&n.callback===e)}))},i.prototype.emit=function(t,e){for(var n=0;n<this.listeners.length;n++){var r=this.listeners[n];r.eventName===t&&r.callback(e)}},i.prototype.warn=function(t){this.debug&&console.warn(t),this.emit("error",new Error(t))},i.prototype.addTranslations=function(t,e,n){this.catalogs[t]||(this.catalogs[t]={}),this.catalogs[t][e]=n},i.prototype.setLocale=function(t){"string"==typeof t?(""===t.trim()&&this.warn("You called setLocale() with an empty value, which makes little sense."),t===this.sourceLocale||this.catalogs[t]||this.warn('You called setLocale() with "'+t+'", but no translations for that locale has been added.'),this.locale=t):this.warn("You called setLocale() with an argument of type "+typeof t+". The locale must be a string.")},i.prototype.setTextDomain=function(t){"string"==typeof t?(""===t.trim()&&this.warn("You called setTextDomain() with an empty `domain` value."),this.domain=t):this.warn("You called setTextDomain() with an argument of type "+typeof t+". The domain must be a string.")},i.prototype.gettext=function(t){return this.dnpgettext(this.domain,"",t)},i.prototype.dgettext=function(t,e){return this.dnpgettext(t,"",e)},i.prototype.ngettext=function(t,e,n){return this.dnpgettext(this.domain,"",t,e,n)},i.prototype.dngettext=function(t,e,n,r){return this.dnpgettext(t,"",e,n,r)},i.prototype.pgettext=function(t,e){return this.dnpgettext(this.domain,t,e)},i.prototype.dpgettext=function(t,e,n){return this.dnpgettext(t,e,n)},i.prototype.npgettext=function(t,e,n,r){return this.dnpgettext(this.domain,t,e,n,r)},i.prototype.dnpgettext=function(t,e,n,r,s){var a,c,l=n;if(e=e||"",isNaN(s)||1===s||(l=r||n),a=this._getTranslation(t,e,n)){if("number"==typeof s)"boolean"==typeof(c=(0,o[i.getLanguageCode(this.locale)].pluralsFunc)(s))&&(c=c?1:0);else c=0;return a.msgstr[c]||l}return this.sourceLocale&&this.locale===this.sourceLocale||this.warn('No translation was found for msgid "'+n+'" in msgctxt "'+e+'" and domain "'+t+'"'),l},i.prototype.getComment=function(t,e,n){var r;return(r=this._getTranslation(t,e,n))&&r.comments||{}},i.prototype._getTranslation=function(t,e,n){return e=e||"",r(this.catalogs,[this.locale,t,"translations",e,n])},i.getLanguageCode=function(t){return t.split(/[\-_]/)[0].toLowerCase()},i.prototype.textdomain=function(t){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\nThis warning will be removed in the final 2.0.0"),this.setTextDomain(t)},i.prototype.setlocale=function(t){this.setLocale(t)},i.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\nTo read more about the migration from node-gettext v1 to v2, see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x")}},function(t,e,n){(function(e){var n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/,o=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,a=/^\[object .+?Constructor\]$/,c="object"==typeof e&&e&&e.Object===Object&&e,l="object"==typeof self&&self&&self.Object===Object&&self,u=c||l||Function("return this")();var m,p=Array.prototype,d=Function.prototype,f=Object.prototype,g=u["__core-js_shared__"],A=(m=/[^.]+$/.exec(g&&g.keys&&g.keys.IE_PROTO||""))?"Symbol(src)_1."+m:"",h=d.toString,v=f.hasOwnProperty,b=f.toString,y=RegExp("^"+h.call(v).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),x=u.Symbol,C=p.splice,w=I(u,"Map"),E=I(Object,"create"),k=x?x.prototype:void 0,T=k?k.toString:void 0;function S(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function _(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function M(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function j(t,e){for(var n,r,o=t.length;o--;)if((n=t[o][0])===(r=e)||n!=n&&r!=r)return o;return-1}function P(t,e){for(var o,i=0,s=(e=function(t,e){if(F(t))return!1;var o=typeof t;if("number"==o||"symbol"==o||"boolean"==o||null==t||R(t))return!0;return r.test(t)||!n.test(t)||null!=e&&t in Object(e)}(e,t)?[e]:F(o=e)?o:O(o)).length;null!=t&&i<s;)t=t[L(e[i++])];return i&&i==s?t:void 0}function B(t){return!(!U(t)||(e=t,A&&A in e))&&(function(t){var e=U(t)?b.call(t):"";return"[object Function]"==e||"[object GeneratorFunction]"==e}(t)||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t)?y:a).test(function(t){if(null!=t){try{return h.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t));var e}function N(t,e){var n,r,o=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof e?"string":"hash"]:o.map}function I(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return B(n)?n:void 0}S.prototype.clear=function(){this.__data__=E?E(null):{}},S.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},S.prototype.get=function(t){var e=this.__data__;if(E){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return v.call(e,t)?e[t]:void 0},S.prototype.has=function(t){var e=this.__data__;return E?void 0!==e[t]:v.call(e,t)},S.prototype.set=function(t,e){return this.__data__[t]=E&&void 0===e?"__lodash_hash_undefined__":e,this},_.prototype.clear=function(){this.__data__=[]},_.prototype.delete=function(t){var e=this.__data__,n=j(e,t);return!(n<0)&&(n==e.length-1?e.pop():C.call(e,n,1),!0)},_.prototype.get=function(t){var e=this.__data__,n=j(e,t);return n<0?void 0:e[n][1]},_.prototype.has=function(t){return j(this.__data__,t)>-1},_.prototype.set=function(t,e){var n=this.__data__,r=j(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},M.prototype.clear=function(){this.__data__={"hash":new S,"map":new(w||_),"string":new S}},M.prototype.delete=function(t){return N(this,t).delete(t)},M.prototype.get=function(t){return N(this,t).get(t)},M.prototype.has=function(t){return N(this,t).has(t)},M.prototype.set=function(t,e){return N(this,t).set(t,e),this};var O=D((function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if(R(t))return T?T.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}(e);var n=[];return o.test(t)&&n.push(""),t.replace(i,(function(t,e,r,o){n.push(r?o.replace(s,"$1"):e||t)})),n}));function L(t){if("string"==typeof t||R(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function D(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=e?e.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var s=t.apply(this,r);return n.cache=i.set(o,s),s};return n.cache=new(D.Cache||M),n}D.Cache=M;var F=Array.isArray;function U(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function R(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==b.call(t)}t.exports=function(t,e,n){var r=null==t?void 0:P(t,e);return void 0===r?n:r}}).call(this,n(17))},function(t,e,n){"use strict";t.exports={ach:{name:"Acholi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},af:{name:"Afrikaans",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},ak:{name:"Akan",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},am:{name:"Amharic",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},an:{name:"Aragonese",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%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(t){return t>1}},ast:{name:"Asturian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 1!==t}},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(t){return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%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(t){return 1!==t}},bn:{name:"Bengali",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return t>1}},brx:{name:"Bodo",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%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(t){return 1!==t}},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(t){return 1===t?0:t>=2&&t<=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(t){return 1===t?0:t%10>=2&&t%10<=4&&(t%100<10||t%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(t){return 1===t?0:2===t?1:8!==t&&11!==t?2:3}},da:{name:"Danish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},de:{name:"German",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},doi:{name:"Dogri",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 1!==t}},en:{name:"English",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},eo:{name:"Esperanto",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},es:{name:"Spanish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},et:{name:"Estonian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},eu:{name:"Basque",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 1!==t}},fi:{name:"Finnish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},fil:{name:"Filipino",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},fo:{name:"Faroese",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},fr:{name:"French",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},fur:{name:"Friulian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},fy:{name:"Frisian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 1===t?0:2===t?1:t<7?2:t<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(t){return 1===t||11===t?0:2===t||12===t?1:t>2&&t<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(t){return 1!==t}},gu:{name:"Gujarati",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},gun:{name:"Gun",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},ha:{name:"Hausa",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},he:{name:"Hebrew",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},hi:{name:"Hindi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},hne:{name:"Chhattisgarhi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%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(t){return 1!==t}},hy:{name:"Armenian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return t%10!=1||t%100==11}},it:{name:"Italian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 0!==t}},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(t){return 1!==t}},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(t){return 1!==t}},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(t){return 1===t?0:2===t?1:3===t?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(t){return 1!==t}},ln:{name:"Lingala",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>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(t){return t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%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(t){return t%10==1&&t%100!=11?0:0!==t?1:2}},mai:{name:"Maithili",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},mfe:{name:"Mauritian Creole",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},mg:{name:"Malagasy",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},mi:{name:"Maori",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>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(t){return 1===t||t%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(t){return 1!==t}},mn:{name:"Mongolian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},mni:{name:"Manipuri",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 0===t?0:1===t?1:2}},mr:{name:"Marathi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 1===t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%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(t){return 1!==t}},nap:{name:"Neapolitan",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},nb:{name:"Norwegian Bokmal",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},ne:{name:"Nepali",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},nl:{name:"Dutch",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},nn:{name:"Norwegian Nynorsk",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},no:{name:"Norwegian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},nso:{name:"Northern Sotho",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},oc:{name:"Occitan",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>1}},or:{name:"Oriya",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},pa:{name:"Punjabi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},pap:{name:"Papiamento",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 1===t?0:t%10>=2&&t%10<=4&&(t%100<10||t%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(t){return 1!==t}},ps:{name:"Pashto",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},pt:{name:"Portuguese",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},rm:{name:"Romansh",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 1===t?0:0===t||t%100>0&&t%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(t){return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%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(t){return 1!==t}},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(t){return 1!==t}},sco:{name:"Scots",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},sd:{name:"Sindhi",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},se:{name:"Northern Sami",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},si:{name:"Sinhala",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return 1===t?0:t>=2&&t<=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(t){return t%100==1?0:t%100==2?1:t%100==3||t%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(t){return 1!==t}},son:{name:"Songhay",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},sq:{name:"Albanian",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},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(t){return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%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(t){return 1!==t}},sw:{name:"Swahili",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},ta:{name:"Tamil",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},te:{name:"Telugu",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},tg:{name:"Tajik",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>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(t){return t>1}},tk:{name:"Turkmen",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n !== 1)",pluralsFunc:function(t){return 1!==t}},tr:{name:"Turkish",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>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(t){return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%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(t){return 1!==t}},uz:{name:"Uzbek",examples:[{plural:0,sample:1},{plural:1,sample:2}],nplurals:2,pluralsText:"nplurals = 2; plural = (n > 1)",pluralsFunc:function(t){return t>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(t){return t>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(t){return 1!==t}},zh:{name:"Chinese",examples:[{plural:0,sample:1}],nplurals:1,pluralsText:"nplurals = 1; plural = 0",pluralsFunc:function(){return 0}}}},function(t,e,n){"use strict";function r(){return"undefined"==typeof OC?(console.warn("No OC found"),"en"):OC.getLocale()}n(39),n(53),Object.defineProperty(e,"__esModule",{value:!0}),e.getLocale=r,e.getCanonicalLocale=function(){return r().replace(/_/g,"-")},e.getLanguage=function(){if("undefined"==typeof OC)return console.warn("No OC found"),"en";return OC.getLanguage()},e.translate=function(t,e,n,r,o){if("undefined"==typeof OC)return console.warn("No OC found"),e;return OC.L10N.translate(t,e,n,r,o)},e.translatePlural=function(t,e,n,r,o,i){if("undefined"==typeof OC)return console.warn("No OC found"),e;return OC.L10N.translatePlural(t,e,n,r,o,i)},e.getFirstDay=function(){if(void 0===window.firstDay)return console.warn("No firstDay found"),1;return window.firstDay},e.getDayNames=function(){if(void 0===window.dayNames)return console.warn("No dayNames found"),["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];return window.dayNames},e.getDayNamesShort=function(){if(void 0===window.dayNamesShort)return console.warn("No dayNamesShort found"),["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."];return window.dayNamesShort},e.getDayNamesMin=function(){if(void 0===window.dayNamesMin)return console.warn("No dayNamesMin found"),["Su","Mo","Tu","We","Th","Fr","Sa"];return window.dayNamesMin},e.getMonthNames=function(){if(void 0===window.monthNames)return console.warn("No monthNames found"),["January","February","March","April","May","June","July","August","September","October","November","December"];return window.monthNames},e.getMonthNamesShort=function(){if(void 0===window.monthNamesShort)return console.warn("No monthNamesShort found"),["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."];return window.monthNamesShort}},function(t,e,n){"use strict";var r=n(0),o=n(1),i=n(23),s=n(22),a=n(5),c=n(84),l=n(123),u=n(2),m=n(7),p=n(44),d=n(6),f=n(4),g=n(15),A=n(13),h=n(33),v=n(29),b=n(30),y=n(50),x=n(35),C=n(217),w=n(82),E=n(20),k=n(8),T=n(73),S=n(14),_=n(9),M=n(78),j=n(47),P=n(34),B=n(48),N=n(3),I=n(145),O=n(146),L=n(25),D=n(19),F=n(60).forEach,U=j("hidden"),R=N("toPrimitive"),z=D.set,G=D.getterFor("Symbol"),$=Object.prototype,Q=o.Symbol,H=i("JSON","stringify"),Y=E.f,V=k.f,W=C.f,Z=T.f,J=M("symbols"),q=M("op-symbols"),X=M("string-to-symbol-registry"),K=M("symbol-to-string-registry"),tt=M("wks"),et=o.QObject,nt=!et||!et.prototype||!et.prototype.findChild,rt=a&&u((function(){return 7!=b(V({},"a",{get:function(){return V(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=Y($,e);r&&delete $[e],V(t,e,n),r&&t!==$&&V($,e,r)}:V,ot=function(t,e){var n=J[t]=b(Q.prototype);return z(n,{type:"Symbol",tag:t,description:e}),a||(n.description=e),n},it=l?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof Q},st=function(t,e,n){t===$&&st(q,e,n),f(t);var r=h(e,!0);return f(n),m(J,r)?(n.enumerable?(m(t,U)&&t[U][r]&&(t[U][r]=!1),n=b(n,{enumerable:v(0,!1)})):(m(t,U)||V(t,U,v(1,{})),t[U][r]=!0),rt(t,r,n)):V(t,r,n)},at=function(t,e){f(t);var n=A(e),r=y(n).concat(mt(n));return F(r,(function(e){a&&!ct.call(n,e)||st(t,e,n[e])})),t},ct=function(t){var e=h(t,!0),n=Z.call(this,e);return!(this===$&&m(J,e)&&!m(q,e))&&(!(n||!m(this,e)||!m(J,e)||m(this,U)&&this[U][e])||n)},lt=function(t,e){var n=A(t),r=h(e,!0);if(n!==$||!m(J,r)||m(q,r)){var o=Y(n,r);return!o||!m(J,r)||m(n,U)&&n[U][r]||(o.enumerable=!0),o}},ut=function(t){var e=W(A(t)),n=[];return F(e,(function(t){m(J,t)||m(P,t)||n.push(t)})),n},mt=function(t){var e=t===$,n=W(e?q:A(t)),r=[];return F(n,(function(t){!m(J,t)||e&&!m($,t)||r.push(J[t])})),r};(c||(_((Q=function(){if(this instanceof Q)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=B(t),n=function(t){this===$&&n.call(q,t),m(this,U)&&m(this[U],e)&&(this[U][e]=!1),rt(this,e,v(1,t))};return a&&nt&&rt($,e,{configurable:!0,set:n}),ot(e,t)}).prototype,"toString",(function(){return G(this).tag})),_(Q,"withoutSetter",(function(t){return ot(B(t),t)})),T.f=ct,k.f=st,E.f=lt,x.f=C.f=ut,w.f=mt,I.f=function(t){return ot(N(t),t)},a&&(V(Q.prototype,"description",{configurable:!0,get:function(){return G(this).description}}),s||_($,"propertyIsEnumerable",ct,{unsafe:!0}))),r({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:Q}),F(y(tt),(function(t){O(t)})),r({target:"Symbol",stat:!0,forced:!c},{"for":function(t){var e=String(t);if(m(X,e))return X[e];var n=Q(e);return X[e]=n,K[n]=e,n},keyFor:function(t){if(!it(t))throw TypeError(t+" is not a symbol");if(m(K,t))return K[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),r({target:"Object",stat:!0,forced:!c,sham:!a},{create:function(t,e){return void 0===e?b(t):at(b(t),e)},defineProperty:st,defineProperties:at,getOwnPropertyDescriptor:lt}),r({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:ut,getOwnPropertySymbols:mt}),r({target:"Object",stat:!0,forced:u((function(){w.f(1)}))},{getOwnPropertySymbols:function(t){return w.f(g(t))}}),H)&&r({target:"JSON",stat:!0,forced:!c||u((function(){var t=Q();return"[null]"!=H([t])||"{}"!=H({a:t})||"{}"!=H(Object(t))}))},{stringify:function(t,e,n){for(var r,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(r=e,(d(e)||void 0!==t)&&!it(t))return p(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!it(e))return e}),o[1]=e,H.apply(null,o)}});Q.prototype[R]||S(Q.prototype,R,Q.prototype.valueOf),L(Q,"Symbol"),P[U]=!0},function(t,e,n){var r=n(13),o=n(35).f,i={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return s&&"[object Window]"==i.call(t)?function(t){try{return o(t)}catch(t){return s.slice()}}(t):o(r(t))}},function(t,e,n){"use strict";var r=n(5),o=n(1),i=n(37),s=n(9),a=n(7),c=n(21),l=n(100),u=n(33),m=n(2),p=n(30),d=n(35).f,f=n(20).f,g=n(8).f,A=n(219).trim,h=o.Number,v=h.prototype,b="Number"==c(p(v)),y=function(t){var e,n,r,o,i,s,a,c,l=u(t,!1);if("string"==typeof l&&l.length>2)if(43===(e=(l=A(l)).charCodeAt(0))||45===e){if(88===(n=l.charCodeAt(2))||120===n)return NaN}else if(48===e){switch(l.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+l}for(s=(i=l.slice(2)).length,a=0;a<s;a++)if((c=i.charCodeAt(a))<48||c>o)return NaN;return parseInt(i,r)}return+l};if(i("Number",!h(" 0o1")||!h("0b1")||h("+0x1"))){for(var x,C=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof C&&(b?m((function(){v.valueOf.call(n)})):"Number"!=c(n))?l(new h(y(e)),n,C):y(e)},w=r?d(h):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),E=0;w.length>E;E++)a(h,x=w[E])&&!a(C,x)&&g(C,x,f(h,x));C.prototype=v,v.constructor=C,s(o,"Number",C)}},function(t,e,n){var r=n(18),o="["+n(220)+"]",i=RegExp("^"+o+o+"*"),s=RegExp(o+o+"*$"),a=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(i,"")),2&t&&(n=n.replace(s,"")),n}};t.exports={start:a(1),end:a(2),trim:a(3)}},function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},function(t,e,n){"use strict";var r=n(0),o=n(5),i=n(1),s=n(7),a=n(6),c=n(8).f,l=n(117),u=i.Symbol;if(o&&"function"==typeof u&&(!("description"in u.prototype)||void 0!==u().description)){var m={},p=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof p?new u(t):void 0===t?u():u(t);return""===t&&(m[e]=!0),e};l(p,u);var d=p.prototype=u.prototype;d.constructor=p;var f=d.toString,g="Symbol(test)"==String(u("test")),A=/^Symbol\((.*)\)[^)]+$/;c(d,"description",{configurable:!0,get:function(){var t=a(this)?this.valueOf():this,e=f.call(t);if(s(m,t))return"";var n=g?e.slice(7,-1):e.replace(A,"$1");return""===n?void 0:n}}),r({global:!0,forced:!0},{Symbol:p})}},function(t,e,n){"use strict";var r=n(0),o=n(6),i=n(44),s=n(80),a=n(10),c=n(13),l=n(58),u=n(3),m=n(61),p=n(24),d=m("slice"),f=p("slice",{ACCESSORS:!0,0:0,1:2}),g=u("species"),A=[].slice,h=Math.max;r({target:"Array",proto:!0,forced:!d||!f},{slice:function(t,e){var n,r,u,m=c(this),p=a(m.length),d=s(t,p),f=s(void 0===e?p:e,p);if(i(m)&&("function"!=typeof(n=m.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[g])&&(n=void 0):n=void 0,n===Array||void 0===n))return A.call(m,d,f);for(r=new(void 0===n?Array:n)(h(f-d,0)),u=0;d<f;d++,u++)d in m&&l(r,u,m[d]);return r.length=u,r}})},function(t,e,n){"use strict";n(121),Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r,o=(r=n(224))&&r.__esModule?r:{default:r},i=n(155);var s=o.default.create({headers:{requesttoken:(0,i.getRequestToken)()}}),a=Object.assign(s,{CancelToken:o.default.CancelToken,isCancel:o.default.isCancel});(0,i.onRequestTokenUpdate)((function(t){return s.defaults.headers.requesttoken=t}));var c=a;e.default=c},function(t,e,n){t.exports=n(225)},function(t,e,n){"use strict";var r=n(11),o=n(147),i=n(226),s=n(153);function a(t){var e=new i(t),n=o(i.prototype.request,e);return r.extend(n,i.prototype,e),r.extend(n,e),n}var c=a(n(150));c.Axios=i,c.create=function(t){return a(s(c.defaults,t))},c.Cancel=n(154),c.CancelToken=n(239),c.isCancel=n(149),c.all=function(t){return Promise.all(t)},c.spread=n(240),c.isAxiosError=n(241),t.exports=c,t.exports.default=c},function(t,e,n){"use strict";var r=n(11),o=n(148),i=n(227),s=n(228),a=n(153);function c(t){this.defaults=t,this.interceptors={request:new i,response:new i}}c.prototype.request=function(t){"string"==typeof t?(t=arguments[1]||{}).url=arguments[0]:t=t||{},(t=a(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var e=[s,void 0],n=Promise.resolve(t);for(this.interceptors.request.forEach((function(t){e.unshift(t.fulfilled,t.rejected)})),this.interceptors.response.forEach((function(t){e.push(t.fulfilled,t.rejected)}));e.length;)n=n.then(e.shift(),e.shift());return n},c.prototype.getUri=function(t){return t=a(this.defaults,t),o(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(t){c.prototype[t]=function(e,n){return this.request(a(n||{},{method:t,url:e,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(t){c.prototype[t]=function(e,n,r){return this.request(a(r||{},{method:t,url:e,data:n}))}})),t.exports=c},function(t,e,n){"use strict";var r=n(11);function o(){this.handlers=[]}o.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},o.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},o.prototype.forEach=function(t){r.forEach(this.handlers,(function(e){null!==e&&t(e)}))},t.exports=o},function(t,e,n){"use strict";var r=n(11),o=n(229),i=n(149),s=n(150);function a(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return a(t),t.headers=t.headers||{},t.data=o(t.data,t.headers,t.transformRequest),t.headers=r.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||s.adapter)(t).then((function(e){return a(t),e.data=o(e.data,e.headers,t.transformResponse),e}),(function(e){return i(e)||(a(t),e&&e.response&&(e.response.data=o(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)}))}},function(t,e,n){"use strict";var r=n(11);t.exports=function(t,e,n){return r.forEach(n,(function(n){t=n(t,e)})),t}},function(t,e,n){"use strict";var r=n(11);t.exports=function(t,e){r.forEach(t,(function(n,r){r!==e&&r.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[r])}))}},function(t,e,n){"use strict";var r=n(152);t.exports=function(t,e,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?e(r("Request failed with status code "+n.status,n.config,null,n.request,n)):t(n)}},function(t,e,n){"use strict";t.exports=function(t,e,n,r,o){return t.config=e,n&&(t.code=n),t.request=r,t.response=o,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}},function(t,e,n){"use strict";var r=n(11);t.exports=r.isStandardBrowserEnv()?{write:function(t,e,n,o,i,s){var a=[];a.push(t+"="+encodeURIComponent(e)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(t,e,n){"use strict";var r=n(235),o=n(236);t.exports=function(t,e){return t&&!r(e)?o(t,e):e}},function(t,e,n){"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},function(t,e,n){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},function(t,e,n){"use strict";var r=n(11),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,n,i,s={};return t?(r.forEach(t.split("\n"),(function(t){if(i=t.indexOf(":"),e=r.trim(t.substr(0,i)).toLowerCase(),n=r.trim(t.substr(i+1)),e){if(s[e]&&o.indexOf(e)>=0)return;s[e]="set-cookie"===e?(s[e]?s[e]:[]).concat([n]):s[e]?s[e]+", "+n:n}})),s):s}},function(t,e,n){"use strict";var r=n(11);t.exports=r.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(t){var r=t;return e&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=o(window.location.href),function(e){var n=r.isString(e)?o(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0}},function(t,e,n){"use strict";var r=n(154);function o(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var n=this;t((function(t){n.reason||(n.reason=new r(t),e(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var t;return{token:new o((function(e){t=e})),cancel:t}},t.exports=o},function(t,e,n){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},function(t,e,n){"use strict";t.exports=function(t){return"object"==typeof t&&!0===t.isAxiosError}},function(t,e,n){"use strict";n(97),Object.defineProperty(e,"__esModule",{value:!0}),e.getRequestToken=function(){return i},e.onRequestTokenUpdate=function(t){s.push(t)};var r=n(137),o=document.getElementsByTagName("head")[0],i=o?o.getAttribute("data-requesttoken"):null,s=[];(0,r.subscribe)("csrf-token-update",(function(t){i=t.token,s.forEach((function(e){try{e(t.token)}catch(t){console.error("error updating CSRF token observer",t)}}))}))},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getCurrentUser=function(){if(null===o)return null;return{uid:o,displayName:s,isAdmin:a}};var r=document.getElementsByTagName("head")[0],o=r?r.getAttribute("data-user"):null,i=document.getElementsByTagName("head")[0],s=i?i.getAttribute("data-user-displayname"):null,a="undefined"!=typeof OC&&OC.isUserAdmin()},function(t,e,n){n(146)("iterator")},function(t,e,n){"use strict";var r;!function(o){if("function"!=typeof i){var i=function(t){return t};i.nonNative=!0}var s=i("plaintext"),a=i("html"),c=i("comment"),l=/<(\w*)>/g,u=/<\/?([^\s\/>]+)/;function m(t,e,n){return d(t=t||"",p(e=e||[],n=n||""))}function p(t,e){return{allowable_tags:t=function(t){var e,n=new Set;if("string"==typeof t)for(;e=l.exec(t);)n.add(e[1]);else i.nonNative||"function"!=typeof t[i.iterator]?"function"==typeof t.forEach&&t.forEach(n.add,n):n=new Set(t);return n}(t),tag_replacement:e,state:s,tag_buffer:"",depth:0,in_quote_char:""}}function d(t,e){for(var n=e.allowable_tags,r=e.tag_replacement,o=e.state,i=e.tag_buffer,l=e.depth,u=e.in_quote_char,m="",p=0,d=t.length;p<d;p++){var g=t[p];if(o===s)switch(g){case"<":o=a,i+=g;break;default:m+=g}else if(o===a)switch(g){case"<":if(u)break;l++;break;case">":if(u)break;if(l){l--;break}u="",o=s,i+=">",n.has(f(i))?m+=i:m+=r,i="";break;case'"':case"'":u=g===u?"":u||g,i+=g;break;case"-":"<!-"===i&&(o=c),i+=g;break;case" ":case"\n":if("<"===i){o=s,m+="< ",i="";break}i+=g;break;default:i+=g}else if(o===c)switch(g){case">":"--"==i.slice(-2)&&(o=s),i="";break;default:i+=g}}return e.state=o,e.tag_buffer=i,e.depth=l,e.in_quote_char=u,m}function f(t){var e=u.exec(t);return e?e[1].toLowerCase():null}m.init_streaming_mode=function(t,e){var n=p(t=t||[],e=e||"");return function(t){return d(t||"",n)}},void 0===(r=function(){return m}.call(e,n,e,t))||(t.exports=r)}()},function(t,e,n){var r=n(0),o=n(134);r({target:"Array",stat:!0,forced:!n(99)((function(t){Array.from(t)}))},{from:o})},function(t,e,n){t.exports=function(){var t="undefined"!=typeof window,e="undefined"!=typeof navigator,n=t&&("ontouchstart"in window||e&&navigator.msMaxTouchPoints>0)?["touchstart"]:["click"];function r(t){var e=t.event,n=t.handler;(0,t.middleware)(e)&&n(e)}function o(t,e){var o=function(t){var e="function"==typeof t;if(!e&&"object"!=typeof t)throw new Error("v-click-outside: Binding value must be a function or an object");return{handler:e?t:t.handler,middleware:t.middleware||function(t){return t},events:t.events||n,isActive:!(!1===t.isActive),detectIframe:!(!1===t.detectIframe)}}(e.value),i=o.handler,s=o.middleware,a=o.detectIframe;if(o.isActive){if(t["__v-click-outside"]=o.events.map((function(e){return{event:e,srcTarget:document.documentElement,handler:function(e){return function(t){var e=t.el,n=t.event,o=t.handler,i=t.middleware,s=n.path||n.composedPath&&n.composedPath();(s?s.indexOf(e)<0:!e.contains(n.target))&&r({event:n,handler:o,middleware:i})}({el:t,event:e,handler:i,middleware:s})}}})),a){var c={event:"blur",srcTarget:window,handler:function(e){return function(t){var e=t.el,n=t.event,o=t.handler,i=t.middleware;setTimeout((function(){var t=document.activeElement;t&&"IFRAME"===t.tagName&&!e.contains(t)&&r({event:n,handler:o,middleware:i})}),0)}({el:t,event:e,handler:i,middleware:s})}};t["__v-click-outside"]=[].concat(t["__v-click-outside"],[c])}t["__v-click-outside"].forEach((function(e){var n=e.event,r=e.srcTarget,o=e.handler;return setTimeout((function(){t["__v-click-outside"]&&r.addEventListener(n,o,!1)}),0)}))}}function i(t){(t["__v-click-outside"]||[]).forEach((function(t){return t.srcTarget.removeEventListener(t.event,t.handler,!1)})),delete t["__v-click-outside"]}var s=t?{bind:o,update:function(t,e){var n=e.value,r=e.oldValue;JSON.stringify(n)!==JSON.stringify(r)&&(i(t),o(t,{value:n}))},unbind:i}:{};return{install:function(t){t.directive("click-outside",s)},directive:s}}()},function(t,e,n){"use strict";var r,o=n(0),i=n(20).f,s=n(10),a=n(249),c=n(18),l=n(250),u=n(22),m="".startsWith,p=Math.min,d=l("startsWith");o({target:"String",proto:!0,forced:!!(u||d||(r=i(String.prototype,"startsWith"),!r||r.writable))&&!d},{startsWith:function(t){var e=String(c(this));a(t);var n=s(p(arguments.length>1?arguments[1]:void 0,e.length)),r=String(t);return m?m.call(e,r,n):e.slice(n,n+r.length)===r}})},function(t,e,n){var r=n(102);t.exports=function(t){if(r(t))throw TypeError("The method doesn't accept regular expressions");return t}},function(t,e,n){var r=n(3)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}},function(t,e,n){"use strict";var r=n(0),o=n(32),i=n(13),s=n(49),a=[].join,c=o!=Object,l=s("join",",");r({target:"Array",proto:!0,forced:c||!l},{join:function(t){return a.call(i(this),void 0===t?",":t)}})},function(t,e,n){"use strict";var r,o,i,s,a=n(0),c=n(22),l=n(1),u=n(23),m=n(253),p=n(9),d=n(91),f=n(25),g=n(101),A=n(6),h=n(43),v=n(42),b=n(76),y=n(98),x=n(99),C=n(156),w=n(157).set,E=n(254),k=n(256),T=n(257),S=n(159),_=n(258),M=n(19),j=n(37),P=n(3),B=n(63),N=n(62),I=P("species"),O="Promise",L=M.get,D=M.set,F=M.getterFor(O),U=m,R=l.TypeError,z=l.document,G=l.process,$=u("fetch"),Q=S.f,H=Q,Y=!!(z&&z.createEvent&&l.dispatchEvent),V="function"==typeof PromiseRejectionEvent,W=j(O,(function(){if(!(b(U)!==String(U))){if(66===N)return!0;if(!B&&!V)return!0}if(c&&!U.prototype.finally)return!0;if(N>=51&&/native code/.test(U))return!1;var t=U.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[I]=e,!(t.then((function(){}))instanceof e)})),Z=W||!x((function(t){U.all(t).catch((function(){}))})),J=function(t){var e;return!(!A(t)||"function"!=typeof(e=t.then))&&e},q=function(t,e){if(!t.notified){t.notified=!0;var n=t.reactions;E((function(){for(var r=t.value,o=1==t.state,i=0;n.length>i;){var s,a,c,l=n[i++],u=o?l.ok:l.fail,m=l.resolve,p=l.reject,d=l.domain;try{u?(o||(2===t.rejection&&et(t),t.rejection=1),!0===u?s=r:(d&&d.enter(),s=u(r),d&&(d.exit(),c=!0)),s===l.promise?p(R("Promise-chain cycle")):(a=J(s))?a.call(s,m,p):m(s)):p(r)}catch(t){d&&!c&&d.exit(),p(t)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&K(t)}))}},X=function(t,e,n){var r,o;Y?((r=z.createEvent("Event")).promise=e,r.reason=n,r.initEvent(t,!1,!0),l.dispatchEvent(r)):r={promise:e,reason:n},!V&&(o=l["on"+t])?o(r):"unhandledrejection"===t&&T("Unhandled promise rejection",n)},K=function(t){w.call(l,(function(){var e,n=t.facade,r=t.value;if(tt(t)&&(e=_((function(){B?G.emit("unhandledRejection",r,n):X("unhandledrejection",n,r)})),t.rejection=B||tt(t)?2:1,e.error))throw e.value}))},tt=function(t){return 1!==t.rejection&&!t.parent},et=function(t){w.call(l,(function(){var e=t.facade;B?G.emit("rejectionHandled",e):X("rejectionhandled",e,t.value)}))},nt=function(t,e,n){return function(r){t(e,r,n)}},rt=function(t,e,n){t.done||(t.done=!0,n&&(t=n),t.value=e,t.state=2,q(t,!0))},ot=function(t,e,n){if(!t.done){t.done=!0,n&&(t=n);try{if(t.facade===e)throw R("Promise can't be resolved itself");var r=J(e);r?E((function(){var n={done:!1};try{r.call(e,nt(ot,n,t),nt(rt,n,t))}catch(e){rt(n,e,t)}})):(t.value=e,t.state=1,q(t,!1))}catch(e){rt({done:!1},e,t)}}};W&&(U=function(t){v(this,U,O),h(t),r.call(this);var e=L(this);try{t(nt(ot,e),nt(rt,e))}catch(t){rt(e,t)}},(r=function(t){D(this,{type:O,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=d(U.prototype,{then:function(t,e){var n=F(this),r=Q(C(this,U));return r.ok="function"!=typeof t||t,r.fail="function"==typeof e&&e,r.domain=B?G.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&q(n,!1),r.promise},"catch":function(t){return this.then(void 0,t)}}),o=function(){var t=new r,e=L(t);this.promise=t,this.resolve=nt(ot,e),this.reject=nt(rt,e)},S.f=Q=function(t){return t===U||t===i?new o(t):H(t)},c||"function"!=typeof m||(s=m.prototype.then,p(m.prototype,"then",(function(t,e){var n=this;return new U((function(t,e){s.call(n,t,e)})).then(t,e)}),{unsafe:!0}),"function"==typeof $&&a({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return k(U,$.apply(l,arguments))}}))),a({global:!0,wrap:!0,forced:W},{Promise:U}),f(U,O,!1,!0),g(O),i=u(O),a({target:O,stat:!0,forced:W},{reject:function(t){var e=Q(this);return e.reject.call(void 0,t),e.promise}}),a({target:O,stat:!0,forced:c||W},{resolve:function(t){return k(c&&this===i?U:this,t)}}),a({target:O,stat:!0,forced:Z},{all:function(t){var e=this,n=Q(e),r=n.resolve,o=n.reject,i=_((function(){var n=h(e.resolve),i=[],s=0,a=1;y(t,(function(t){var c=s++,l=!1;i.push(void 0),a++,n.call(e,t).then((function(t){l||(l=!0,i[c]=t,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise},race:function(t){var e=this,n=Q(e),r=n.reject,o=_((function(){var o=h(e.resolve);y(t,(function(t){o.call(e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},function(t,e,n){var r=n(1);t.exports=r.Promise},function(t,e,n){var r,o,i,s,a,c,l,u,m=n(1),p=n(20).f,d=n(157).set,f=n(158),g=n(255),A=n(63),h=m.MutationObserver||m.WebKitMutationObserver,v=m.document,b=m.process,y=m.Promise,x=p(m,"queueMicrotask"),C=x&&x.value;C||(r=function(){var t,e;for(A&&(t=b.domain)&&t.exit();o;){e=o.fn,o=o.next;try{e()}catch(t){throw o?s():i=void 0,t}}i=void 0,t&&t.enter()},f||A||g||!h||!v?y&&y.resolve?(l=y.resolve(void 0),u=l.then,s=function(){u.call(l,r)}):s=A?function(){b.nextTick(r)}:function(){d.call(m,r)}:(a=!0,c=v.createTextNode(""),new h(r).observe(c,{characterData:!0}),s=function(){c.data=a=!a})),t.exports=C||function(t){var e={fn:t,next:void 0};i&&(i.next=e),o||(o=e,s()),i=e}},function(t,e,n){var r=n(94);t.exports=/web0s(?!.*chrome)/i.test(r)},function(t,e,n){var r=n(4),o=n(6),i=n(159);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var r=n(1);t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},function(t,e,n){var r=function(t){"use strict";var e=Object.prototype,n=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function a(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{a({},"")}catch(t){a=function(t,e,n){return t[e]=n}}function c(t,e,n,r){var o=e&&e.prototype instanceof m?e:m,i=Object.create(o.prototype),s=new w(r||[]);return i._invoke=function(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return k()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=y(s,n);if(a){if(a===u)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=l(t,e,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===u)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(t,n,s),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var u={};function m(){}function p(){}function d(){}var f={};f[o]=function(){return this};var g=Object.getPrototypeOf,A=g&&g(g(E([])));A&&A!==e&&n.call(A,o)&&(f=A);var h=d.prototype=m.prototype=Object.create(f);function v(t){["next","throw","return"].forEach((function(e){a(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){var r;this._invoke=function(o,i){function s(){return new e((function(r,s){!function r(o,i,s,a){var c=l(t[o],t,i);if("throw"!==c.type){var u=c.arg,m=u.value;return m&&"object"==typeof m&&n.call(m,"__await")?e.resolve(m.__await).then((function(t){r("next",t,s,a)}),(function(t){r("throw",t,s,a)})):e.resolve(m).then((function(t){u.value=t,s(u)}),(function(t){return r("throw",t,s,a)}))}a(c.arg)}(o,i,r,s)}))}return r=r?r.then(s,s):s()}}function y(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,y(t,e),"throw"===e.method))return u;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,u;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function C(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function w(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function E(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:k}}function k(){return{value:void 0,done:!0}}return p.prototype=h.constructor=d,d.constructor=p,p.displayName=a(d,s,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===p||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,a(t,s,"GeneratorFunction")),t.prototype=Object.create(h),t},t.awrap=function(t){return{__await:t}},v(b.prototype),b.prototype[i]=function(){return this},t.AsyncIterator=b,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var s=new b(c(e,n,r,o),i);return t.isGeneratorFunction(n)?s:s.next().then((function(t){return t.done?t.value:s.next()}))},v(h),a(h,s,"Generator"),h[o]=function(){return this},h.toString=function(){return"[object Generator]"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=E,w.prototype={constructor:w,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(C),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return s.type="throw",s.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(a&&c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(a){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=t,s.arg=e,i?(this.method="next",this.next=i.finallyLoc,u):this.complete(s)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),u},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),C(n),u}},"catch":function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:E(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},t}(t.exports);try{regeneratorRuntime=r}catch(t){Function("r","regeneratorRuntime = r")(r)}},function(t,e,n){"use strict";var r=/["'&<>]/;t.exports=function(t){var e,n=""+t,o=r.exec(n);if(!o)return n;var i="",s=0,a=0;for(s=o.index;s<n.length;s++){switch(n.charCodeAt(s)){case 34:e="&quot;";break;case 38:e="&amp;";break;case 39:e="&#39;";break;case 60:e="&lt;";break;case 62:e="&gt;";break;default:continue}a!==s&&(i+=n.substring(a,s)),a=s+1,i+=e}return a!==s?i+n.substring(a,s):i}},function(t,e,n){"use strict";var r=n(54),o=n(102),i=n(4),s=n(18),a=n(156),c=n(87),l=n(10),u=n(56),m=n(51),p=n(2),d=[].push,f=Math.min,g=!p((function(){return!RegExp(4294967295,"y")}));r("split",2,(function(t,e,n){var r;return r="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var r=String(s(this)),i=void 0===n?4294967295:n>>>0;if(0===i)return[];if(void 0===t)return[r];if(!o(t))return e.call(r,t,i);for(var a,c,l,u=[],p=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),f=0,g=new RegExp(t.source,p+"g");(a=m.call(g,r))&&!((c=g.lastIndex)>f&&(u.push(r.slice(f,a.index)),a.length>1&&a.index<r.length&&d.apply(u,a.slice(1)),l=a[0].length,f=c,u.length>=i));)g.lastIndex===a.index&&g.lastIndex++;return f===r.length?!l&&g.test("")||u.push(""):u.push(r.slice(f)),u.length>i?u.slice(0,i):u}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var o=s(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,n):r.call(String(o),e,n)},function(t,o){var s=n(r,t,this,o,r!==e);if(s.done)return s.value;var m=i(t),p=String(this),d=a(m,RegExp),A=m.unicode,h=(m.ignoreCase?"i":"")+(m.multiline?"m":"")+(m.unicode?"u":"")+(g?"y":"g"),v=new d(g?m:"^(?:"+m.source+")",h),b=void 0===o?4294967295:o>>>0;if(0===b)return[];if(0===p.length)return null===u(v,p)?[p]:[];for(var y=0,x=0,C=[];x<p.length;){v.lastIndex=g?x:0;var w,E=u(v,g?p:p.slice(x));if(null===E||(w=f(l(v.lastIndex+(g?0:x)),p.length))===y)x=c(p,x,A);else{if(C.push(p.slice(y,x)),C.length===b)return C;for(var k=1;k<=E.length-1;k++)if(C.push(E[k]),C.length===b)return C;x=y=w}}return C.push(p.slice(y)),C}]}),!g)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getCapabilities=function(){try{return(0,r.loadState)("core","capabilities")}catch(t){return console.debug("Could not find capabilities initial state fall back to _oc_capabilities"),"_oc_capabilities"in window?window._oc_capabilities:{}}};var r=n(263)},function(t,e,n){"use strict";n(95),Object.defineProperty(e,"__esModule",{value:!0}),e.loadState=function(t,e,n){var r=document.querySelector("#initial-state-".concat(t,"-").concat(e));if(null===r){if(void 0!==n)return n;throw new Error("Could not find initial state ".concat(e," of ").concat(t))}try{return JSON.parse(atob(r.value))}catch(n){throw new Error("Could not parse initial state ".concat(e," of ").concat(t))}}},function(t,e,n){var r,o,i,s,a;r=n(265),o=n(160).utf8,i=n(266),s=n(160).bin,(a=function(t,e){t.constructor==String?t=e&&"binary"===e.encoding?s.stringToBytes(t):o.stringToBytes(t):i(t)?t=Array.prototype.slice.call(t,0):Array.isArray(t)||t.constructor===Uint8Array||(t=t.toString());for(var n=r.bytesToWords(t),c=8*t.length,l=1732584193,u=-271733879,m=-1732584194,p=271733878,d=0;d<n.length;d++)n[d]=16711935&(n[d]<<8|n[d]>>>24)|4278255360&(n[d]<<24|n[d]>>>8);n[c>>>5]|=128<<c%32,n[14+(c+64>>>9<<4)]=c;var f=a._ff,g=a._gg,A=a._hh,h=a._ii;for(d=0;d<n.length;d+=16){var v=l,b=u,y=m,x=p;l=f(l,u,m,p,n[d+0],7,-680876936),p=f(p,l,u,m,n[d+1],12,-389564586),m=f(m,p,l,u,n[d+2],17,606105819),u=f(u,m,p,l,n[d+3],22,-1044525330),l=f(l,u,m,p,n[d+4],7,-176418897),p=f(p,l,u,m,n[d+5],12,1200080426),m=f(m,p,l,u,n[d+6],17,-1473231341),u=f(u,m,p,l,n[d+7],22,-45705983),l=f(l,u,m,p,n[d+8],7,1770035416),p=f(p,l,u,m,n[d+9],12,-1958414417),m=f(m,p,l,u,n[d+10],17,-42063),u=f(u,m,p,l,n[d+11],22,-1990404162),l=f(l,u,m,p,n[d+12],7,1804603682),p=f(p,l,u,m,n[d+13],12,-40341101),m=f(m,p,l,u,n[d+14],17,-1502002290),l=g(l,u=f(u,m,p,l,n[d+15],22,1236535329),m,p,n[d+1],5,-165796510),p=g(p,l,u,m,n[d+6],9,-1069501632),m=g(m,p,l,u,n[d+11],14,643717713),u=g(u,m,p,l,n[d+0],20,-373897302),l=g(l,u,m,p,n[d+5],5,-701558691),p=g(p,l,u,m,n[d+10],9,38016083),m=g(m,p,l,u,n[d+15],14,-660478335),u=g(u,m,p,l,n[d+4],20,-405537848),l=g(l,u,m,p,n[d+9],5,568446438),p=g(p,l,u,m,n[d+14],9,-1019803690),m=g(m,p,l,u,n[d+3],14,-187363961),u=g(u,m,p,l,n[d+8],20,1163531501),l=g(l,u,m,p,n[d+13],5,-1444681467),p=g(p,l,u,m,n[d+2],9,-51403784),m=g(m,p,l,u,n[d+7],14,1735328473),l=A(l,u=g(u,m,p,l,n[d+12],20,-1926607734),m,p,n[d+5],4,-378558),p=A(p,l,u,m,n[d+8],11,-2022574463),m=A(m,p,l,u,n[d+11],16,1839030562),u=A(u,m,p,l,n[d+14],23,-35309556),l=A(l,u,m,p,n[d+1],4,-1530992060),p=A(p,l,u,m,n[d+4],11,1272893353),m=A(m,p,l,u,n[d+7],16,-155497632),u=A(u,m,p,l,n[d+10],23,-1094730640),l=A(l,u,m,p,n[d+13],4,681279174),p=A(p,l,u,m,n[d+0],11,-358537222),m=A(m,p,l,u,n[d+3],16,-722521979),u=A(u,m,p,l,n[d+6],23,76029189),l=A(l,u,m,p,n[d+9],4,-640364487),p=A(p,l,u,m,n[d+12],11,-421815835),m=A(m,p,l,u,n[d+15],16,530742520),l=h(l,u=A(u,m,p,l,n[d+2],23,-995338651),m,p,n[d+0],6,-198630844),p=h(p,l,u,m,n[d+7],10,1126891415),m=h(m,p,l,u,n[d+14],15,-1416354905),u=h(u,m,p,l,n[d+5],21,-57434055),l=h(l,u,m,p,n[d+12],6,1700485571),p=h(p,l,u,m,n[d+3],10,-1894986606),m=h(m,p,l,u,n[d+10],15,-1051523),u=h(u,m,p,l,n[d+1],21,-2054922799),l=h(l,u,m,p,n[d+8],6,1873313359),p=h(p,l,u,m,n[d+15],10,-30611744),m=h(m,p,l,u,n[d+6],15,-1560198380),u=h(u,m,p,l,n[d+13],21,1309151649),l=h(l,u,m,p,n[d+4],6,-145523070),p=h(p,l,u,m,n[d+11],10,-1120210379),m=h(m,p,l,u,n[d+2],15,718787259),u=h(u,m,p,l,n[d+9],21,-343485551),l=l+v>>>0,u=u+b>>>0,m=m+y>>>0,p=p+x>>>0}return r.endian([l,u,m,p])})._ff=function(t,e,n,r,o,i,s){var a=t+(e&n|~e&r)+(o>>>0)+s;return(a<<i|a>>>32-i)+e},a._gg=function(t,e,n,r,o,i,s){var a=t+(e&r|n&~r)+(o>>>0)+s;return(a<<i|a>>>32-i)+e},a._hh=function(t,e,n,r,o,i,s){var a=t+(e^n^r)+(o>>>0)+s;return(a<<i|a>>>32-i)+e},a._ii=function(t,e,n,r,o,i,s){var a=t+(n^(e|~r))+(o>>>0)+s;return(a<<i|a>>>32-i)+e},a._blocksize=16,a._digestsize=16,t.exports=function(t,e){if(null==t)throw new Error("Illegal argument "+t);var n=r.wordsToBytes(a(t,e));return e&&e.asBytes?n:e&&e.asString?s.bytesToString(n):r.bytesToHex(n)}},function(t,e){var n,r;n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(t,e){return t<<e|t>>>32-e},rotr:function(t,e){return t<<32-e|t>>>e},endian:function(t){if(t.constructor==Number)return 16711935&r.rotl(t,8)|4278255360&r.rotl(t,24);for(var e=0;e<t.length;e++)t[e]=r.endian(t[e]);return t},randomBytes:function(t){for(var e=[];t>0;t--)e.push(Math.floor(256*Math.random()));return e},bytesToWords:function(t){for(var e=[],n=0,r=0;n<t.length;n++,r+=8)e[r>>>5]|=t[n]<<24-r%32;return e},wordsToBytes:function(t){for(var e=[],n=0;n<32*t.length;n+=8)e.push(t[n>>>5]>>>24-n%32&255);return e},bytesToHex:function(t){for(var e=[],n=0;n<t.length;n++)e.push((t[n]>>>4).toString(16)),e.push((15&t[n]).toString(16));return e.join("")},hexToBytes:function(t){for(var e=[],n=0;n<t.length;n+=2)e.push(parseInt(t.substr(n,2),16));return e},bytesToBase64:function(t){for(var e=[],r=0;r<t.length;r+=3)for(var o=t[r]<<16|t[r+1]<<8|t[r+2],i=0;i<4;i++)8*r+6*i<=8*t.length?e.push(n.charAt(o>>>6*(3-i)&63)):e.push("=");return e.join("")},base64ToBytes:function(t){t=t.replace(/[^A-Z0-9+\/]/gi,"");for(var e=[],r=0,o=0;r<t.length;o=++r%4)0!=o&&e.push((n.indexOf(t.charAt(r-1))&Math.pow(2,-2*o+8)-1)<<2*o|n.indexOf(t.charAt(r))>>>6-2*o);return e}},t.exports=r},function(t,e){function n(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}t.exports=function(t){return null!=t&&(n(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},function(t,e,n){"use strict";var r=n(0),o=n(268),i=n(15),s=n(10),a=n(36),c=n(93);r({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=i(this),n=s(e.length),r=c(e,0);return r.length=o(r,e,e,n,0,void 0===t?1:a(t)),r}})},function(t,e,n){"use strict";var r=n(44),o=n(10),i=n(26),s=function(t,e,n,a,c,l,u,m){for(var p,d=c,f=0,g=!!u&&i(u,m,3);f<a;){if(f in n){if(p=g?g(n[f],f,e):n[f],l>0&&r(p))d=s(t,e,p,o(p.length),d,l-1)-1;else{if(d>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[d]=p}d++}f++}return d};t.exports=s},function(t,e,n){n(88)("flat")},function(t,e,n){var r=n(5),o=n(1),i=n(37),s=n(100),a=n(8).f,c=n(35).f,l=n(102),u=n(86),m=n(124),p=n(9),d=n(2),f=n(19).set,g=n(101),A=n(3)("match"),h=o.RegExp,v=h.prototype,b=/a/g,y=/a/g,x=new h(b)!==b,C=m.UNSUPPORTED_Y;if(r&&i("RegExp",!x||C||d((function(){return y[A]=!1,h(b)!=b||h(y)==y||"/a/i"!=h(b,"i")})))){for(var w=function(t,e){var n,r=this instanceof w,o=l(t),i=void 0===e;if(!r&&o&&t.constructor===w&&i)return t;x?o&&!i&&(t=t.source):t instanceof w&&(i&&(e=u.call(t)),t=t.source),C&&(n=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var a=s(x?new h(t,e):h(t,e),r?this:v,w);return C&&n&&f(a,{sticky:n}),a},E=function(t){t in w||a(w,t,{configurable:!0,get:function(){return h[t]},set:function(e){h[t]=e}})},k=c(h),T=0;k.length>T;)E(k[T++]);v.constructor=w,w.prototype=v,p(o,"RegExp",w)}g("RegExp")},function(t,e,n){"use strict";var r=n(0),o=n(79).includes,i=n(88);r({target:"Array",proto:!0,forced:!n(24)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i("includes")},function(t,e,n){"use strict";n(161),n(180),n(181),n(182),Object.defineProperty(e,"__esModule",{value:!0}),e.getBuilder=function(t){return new r.default(t)},e.clearAll=function(){[window.sessionStorage,window.localStorage].map((function(t){return s(t)}))},e.clearNonPersistent=function(){[window.sessionStorage,window.localStorage].map((function(t){return s(t,(function(t){return!t.startsWith(o.default.GLOBAL_SCOPE_PERSISTENT)}))}))};var r=i(n(295)),o=i(n(183));function i(t){return t&&t.__esModule?t:{default:t}}function s(t,e){Object.keys(t).filter((function(t){return!e||e(t)})).map(t.removeItem.bind(t))}},function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},function(t,e,n){var r=n(12),o=n(27),i=r.document,s=o(i)&&o(i.createElement);t.exports=function(t){return s?i.createElement(t):{}}},function(t,e,n){var r=n(12),o=n(65),i=n(31),s=n(110),a=n(165),c=n(276),l=c.get,u=c.enforce,m=String(String).split("String");(t.exports=function(t,e,n,a){var c=!!a&&!!a.unsafe,l=!!a&&!!a.enumerable,p=!!a&&!!a.noTargetGet;"function"==typeof n&&("string"!=typeof e||i(n,"name")||o(n,"name",e),u(n).source=m.join("string"==typeof e?e:"")),t!==r?(c?!p&&t[e]&&(l=!0):delete t[e],l?t[e]=n:o(t,e,n)):l?t[e]=n:s(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&l(this).source||a(this)}))},function(t,e,n){var r,o,i,s=n(277),a=n(12),c=n(27),l=n(65),u=n(31),m=n(278),p=n(170),d=a.WeakMap;if(s){var f=new d,g=f.get,A=f.has,h=f.set;r=function(t,e){return h.call(f,t,e),e},o=function(t){return g.call(f,t)||{}},i=function(t){return A.call(f,t)}}else{var v=m("state");p[v]=!0,r=function(t,e){return l(t,v,e),e},o=function(t){return u(t,v)?t[v]:{}},i=function(t){return u(t,v)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){var r=n(12),o=n(165),i=r.WeakMap;t.exports="function"==typeof i&&/native code/.test(o(i))},function(t,e,n){var r=n(167),o=n(169),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,n){var r=n(31),o=n(280),i=n(103),s=n(109);t.exports=function(t,e){for(var n=o(e),a=s.f,c=i.f,l=0;l<n.length;l++){var u=n[l];r(t,u)||a(t,u,c(e,u))}}},function(t,e,n){var r=n(171),o=n(282),i=n(285),s=n(164);t.exports=r("Reflect","ownKeys")||function(t){var e=o.f(s(t)),n=i.f;return n?e.concat(n(t)):e}},function(t,e,n){var r=n(12);t.exports=r},function(t,e,n){var r=n(172),o=n(174).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e,n){var r=n(105),o=n(66),i=n(284),s=function(t){return function(e,n,s){var a,c=r(e),l=o(c.length),u=i(s,l);if(t&&n!=n){for(;l>u;)if((a=c[u++])!=a)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}},function(t,e,n){var r=n(173),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(16),o=/#|\.prototype\./,i=function(t,e){var n=a[s(t)];return n==l||n!=c&&("function"==typeof e?r(e):!!e)},s=i.normalize=function(t){return String(t).replace(o,".").toLowerCase()},a=i.data={},c=i.NATIVE="N",l=i.POLYFILL="P";t.exports=i},function(t,e,n){var r=n(288);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,n){var r=n(178);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){var r=n(171);t.exports=r("navigator","userAgent")||""},function(t,e,n){var r=n(172),o=n(174);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(293);t.exports=function(t){if(r(t))throw TypeError("The method doesn't accept regular expressions");return t}},function(t,e,n){var r=n(27),o=n(106),i=n(46)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==o(t))}},function(t,e,n){var r=n(46)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(t){}}return!1}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r,o=(r=n(183))&&r.__esModule?r:{default:r};function i(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var a=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),s(this,"appId",void 0),s(this,"persisted",!1),s(this,"clearedOnLogout",!1),this.appId=e}var e,n,r;return e=t,(n=[{key:"persist",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.persisted=t,this}},{key:"clearOnLogout",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.clearedOnLogout=t,this}},{key:"build",value:function(){return new o.default(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}])&&i(e.prototype,n),r&&i(e,r),t}();e.default=a},function(t,e,n){"use strict";var r=n(45),o=n(16),i=n(177),s=n(27),a=n(111),c=n(66),l=n(297),u=n(176),m=n(112),p=n(46),d=n(179),f=p("isConcatSpreadable"),g=d>=51||!o((function(){var t=[];return t[f]=!1,t.concat()[0]!==t})),A=m("concat"),h=function(t){if(!s(t))return!1;var e=t[f];return void 0!==e?!!e:i(t)};r({target:"Array",proto:!0,forced:!g||!A},{concat:function(t){var e,n,r,o,i,s=a(this),m=u(s,0),p=0;for(e=-1,r=arguments.length;e<r;e++)if(h(i=-1===e?s:arguments[e])){if(p+(o=c(i.length))>9007199254740991)throw TypeError("Maximum allowed index exceeded");for(n=0;n<o;n++,p++)n in i&&l(m,p,i[n])}else{if(p>=9007199254740991)throw TypeError("Maximum allowed index exceeded");l(m,p++,i)}return m.length=p,m}})},function(t,e,n){"use strict";var r=n(108),o=n(109),i=n(104);t.exports=function(t,e,n){var s=r(e);s in t?o.f(t,s,i(0,n)):t[s]=n}},function(t,e,n){"use strict";var r=n(54),o=n(4),i=n(10),s=n(18),a=n(87),c=n(56);r("match",1,(function(t,e,n){return[function(e){var n=s(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var s=o(t),l=String(this);if(!s.global)return c(s,l);var u=s.unicode;s.lastIndex=0;for(var m,p=[],d=0;null!==(m=c(s,l));){var f=String(m[0]);p[d]=f,""===f&&(s.lastIndex=a(l,i(s.lastIndex),u)),d++}return 0===d?null:p}]}))},function(t,e,n){"use strict";var r=n(0),o=n(300).left,i=n(49),s=n(24),a=n(62),c=n(63),l=i("reduce"),u=s("reduce",{1:0});r({target:"Array",proto:!0,forced:!l||!u||!c&&a>79&&a<83},{reduce:function(t){return o(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){var r=n(43),o=n(15),i=n(32),s=n(10),a=function(t){return function(e,n,a,c){r(n);var l=o(e),u=i(l),m=s(l.length),p=t?m-1:0,d=t?-1:1;if(a<2)for(;;){if(p in u){c=u[p],p+=d;break}if(p+=d,t?p<0:m<=p)throw TypeError("Reduce of empty array with no initial value")}for(;t?p>=0:m>p;p+=d)p in u&&(c=n(c,u[p],p,l));return c}};t.exports={left:a(!1),right:a(!0)}},function(t,e,n){"use strict";var r=n(54),o=n(4),i=n(18),s=n(302),a=n(56);r("search",1,(function(t,e,n){return[function(e){var n=i(this),r=null==e?void 0:e[t];return void 0!==r?r.call(e,n):new RegExp(e)[t](String(n))},function(t){var r=n(e,t,this);if(r.done)return r.value;var i=o(t),c=String(this),l=i.lastIndex;s(l,0)||(i.lastIndex=0);var u=a(i,c);return s(i.lastIndex,l)||(i.lastIndex=l),null===u?-1:u.index}]}))},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},function(t,e,n){var r=n(0),o=n(15),i=n(50);r({target:"Object",stat:!0,forced:n(2)((function(){i(1)}))},{keys:function(t){return i(o(t))}})},function(t,e,n){"use strict";var r=n(0),o=n(55).codeAt;r({target:"String",proto:!0},{codePointAt:function(t){return o(this,t)}})},function(t,e,n){var r=n(0),o=n(80),i=String.fromCharCode,s=String.fromCodePoint;r({target:"String",stat:!0,forced:!!s&&1!=s.length},{fromCodePoint:function(t){for(var e,n=[],r=arguments.length,s=0;r>s;){if(e=+arguments[s++],o(e,1114111)!==e)throw RangeError(e+" is not a valid code point");n.push(e<65536?i(e):i(55296+((e-=65536)>>10),e%1024+56320))}return n.join("")}})},function(t,e,n){t.exports=function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e(e.s=60)}([function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var r=n(49)("wks"),o=n(30),i=n(0).Symbol,s="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=s&&i[t]||(s?i:o)("Symbol."+t))}).store=r},function(t,e,n){var r=n(5);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){var r=n(0),o=n(10),i=n(8),s=n(6),a=n(11),c=function(t,e,n){var l,u,m,p,d=t&c.F,f=t&c.G,g=t&c.S,A=t&c.P,h=t&c.B,v=f?r:g?r[e]||(r[e]={}):(r[e]||{}).prototype,b=f?o:o[e]||(o[e]={}),y=b.prototype||(b.prototype={});for(l in f&&(n=e),n)m=((u=!d&&v&&void 0!==v[l])?v:n)[l],p=h&&u?a(m,r):A&&"function"==typeof m?a(Function.call,m):m,v&&s(v,l,m,t&c.U),b[l]!=m&&i(b,l,p),A&&y[l]!=m&&(y[l]=m)};r.core=o,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e,n){t.exports=!n(7)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(0),o=n(8),i=n(12),s=n(30)("src"),a=Function.toString,c=(""+a).split("toString");n(10).inspectSource=function(t){return a.call(t)},(t.exports=function(t,e,n,a){var l="function"==typeof n;l&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(l&&(i(n,s)||o(n,s,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:a?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[s]||a.call(this)}))},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(13),o=n(25);t.exports=n(4)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=t.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(14);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(2),o=n(41),i=n(29),s=Object.defineProperty;e.f=n(4)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports={}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){"use strict";var r=n(7);t.exports=function(t,e){return!!t&&r((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},function(t,e,n){var r=n(23),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(53),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(11),o=n(23),i=n(28),s=n(19),a=n(64);t.exports=function(t,e){var n=1==t,c=2==t,l=3==t,u=4==t,m=6==t,p=5==t||m,d=e||a;return function(e,a,f){for(var g,A,h=i(e),v=o(h),b=r(a,f,3),y=s(v.length),x=0,C=n?d(e,y):c?d(e,0):void 0;y>x;x++)if((p||x in v)&&(A=b(g=v[x],x,h),t))if(n)C[x]=A;else if(A)switch(t){case 3:return!0;case 5:return g;case 6:return x;case 2:C.push(g)}else if(u)return!1;return m?-1:l||u?u:C}}},function(t,e,n){var r=n(5),o=n(0).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(9);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e){t.exports=!1},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(13).f,o=n(12),i=n(1)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(49)("keys"),o=n(30);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(5);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){"use strict";var r=n(0),o=n(12),i=n(9),s=n(67),a=n(29),c=n(7),l=n(77).f,u=n(45).f,m=n(13).f,p=n(51).trim,d=r.Number,f=d,g=d.prototype,A="Number"==i(n(44)(g)),h="trim"in String.prototype,v=function(t){var e=a(t,!1);if("string"==typeof e&&e.length>2){var n,r,o,i=(e=h?e.trim():p(e,3)).charCodeAt(0);if(43===i||45===i){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+e}for(var s,c=e.slice(2),l=0,u=c.length;l<u;l++)if((s=c.charCodeAt(l))<48||s>o)return NaN;return parseInt(c,r)}}return+e};if(!d(" 0o1")||!d("0b1")||d("+0x1")){d=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof d&&(A?c((function(){g.valueOf.call(n)})):"Number"!=i(n))?s(new f(v(e)),n,d):v(e)};for(var b,y=n(4)?l(f):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),x=0;y.length>x;x++)o(f,b=y[x])&&!o(d,b)&&m(d,b,u(f,b));d.prototype=g,g.constructor=d,n(6)(r,"Number",d)}},function(t,e,n){"use strict";function r(t){return!(0===t||(!Array.isArray(t)||0!==t.length)&&t)}function o(t,e,n,r){return t.filter((function(t){return function(t,e){return void 0===t&&(t="undefined"),null===t&&(t="null"),!1===t&&(t="false"),-1!==t.toString().toLowerCase().indexOf(e.trim())}(r(t,n),e)}))}function i(t){return t.filter((function(t){return!t.$isLabel}))}function s(t,e){return function(n){return n.reduce((function(n,r){return r[t]&&r[t].length?(n.push({$groupLabel:r[e],$isLabel:!0}),n.concat(r[t])):n}),[])}}function a(t,e,r,i,s){return function(a){return a.map((function(a){var c;if(!a[r])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];var l=o(a[r],t,e,s);return l.length?(c={},n.i(p.a)(c,i,a[i]),n.i(p.a)(c,r,l),c):[]}))}}var c=n(59),l=n(54),u=(n.n(l),n(95)),m=(n.n(u),n(31)),p=(n.n(m),n(58)),d=n(91),f=(n.n(d),n(98)),g=(n.n(f),n(92)),A=(n.n(g),n(88)),h=(n.n(A),n(97)),v=(n.n(h),n(89)),b=(n.n(v),n(96)),y=(n.n(b),n(93)),x=(n.n(y),n(90)),C=(n.n(x),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce((function(t,e){return e(t)}),t)}});e.a={data:function(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return r(t)?"":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted:function(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||"",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):o(n,e,this.label,this.customLabel):this.groupValues?s(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(function(t){return function(){return!t.apply(void 0,arguments)}}(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&("bottom"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map((function(e){return e[t.trackBy]})):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map((function(e){return t.customLabel(e,t.label).toString().toLowerCase()}))},currentOptionLabel:function(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("input",this.multiple?[]:null))},search:function(){this.$emit("search-change",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return C(a(e,n,this.groupValues,this.groupLabel,this.customLabel),s(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return C(s(this.groupValues,this.groupLabel),i)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},isOptionDisabled:function(t){return!!t.$isDisabled},getOptionLabel:function(t){if(r(t))return"";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return r(e)?"":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)this.selectGroup(t);else if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&("Tab"!==e||this.pointerDirty)){if(t.isTag)this.$emit("tag",t.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void("Tab"!==e&&this.removeElement(t));this.$emit("select",t,this.id),this.multiple?this.$emit("input",this.internalValue.concat([t]),this.id):this.$emit("input",t,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find((function(n){return n[e.groupLabel]===t.$groupLabel}));if(n)if(this.wholeGroupSelected(n)){this.$emit("remove",n[this.groupValues],this.id);var r=this.internalValue.filter((function(t){return-1===n[e.groupValues].indexOf(t)}));this.$emit("input",r,this.id)}else{var o=n[this.groupValues].filter((function(t){return!(e.isOptionDisabled(t)||e.isSelected(t))}));this.$emit("select",o,this.id),this.$emit("input",this.internalValue.concat(o),this.id)}},wholeGroupSelected:function(t){var e=this;return t[this.groupValues].every((function(t){return e.isSelected(t)||e.isOptionDisabled(t)}))},wholeGroupDisabled:function(t){return t[this.groupValues].every(this.isOptionDisabled)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!t.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var r="object"===n.i(c.a)(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit("remove",t,this.id),this.multiple){var o=this.internalValue.slice(0,r).concat(this.internalValue.slice(r+1));this.$emit("input",o,this.id)}else this.$emit("input",null,this.id);this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf("Delete")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.$nextTick((function(){return t.$refs.search.focus()}))):this.$el.focus(),this.$emit("open",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if("undefined"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||"below"===this.openDirection||"bottom"===this.openDirection?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){"use strict";var r=n(54),o=(n.n(r),n(31));n.n(o),e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(t,e){return{"multiselect__option--highlight":t===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return["multiselect__option--group","multiselect__option--disabled"];var r=this.options.find((function(t){return t[n.groupLabel]===e.$groupLabel}));return r&&!this.wholeGroupDisabled(r)?["multiselect__option--group",{"multiselect__option--highlight":t===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(r)}]:"multiselect__option--disabled"},addPointerElement:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Enter",e=t.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward:function(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e,n){"use strict";var r=n(36),o=n(74),i=n(15),s=n(18);t.exports=n(72)(Array,"Array",(function(t,e){this._t=s(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){"use strict";var r=n(31),o=(n.n(r),n(32)),i=n(33);e.a={name:"vue-multiselect",mixins:[o.a,i.a],props:{name:{type:String,default:""},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return"and ".concat(t," more")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText:function(){return this.showLabels?this.selectLabel:""},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText:function(){return this.showLabels?this.selectedLabel:""},inputStyle:function(){if(this.searchable||this.multiple&&this.value&&this.value.length)return this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}},contentStyle:function(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove:function(){return"above"===this.openDirection||"top"===this.openDirection||"below"!==this.openDirection&&"bottom"!==this.openDirection&&"above"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){var r=n(1)("unscopables"),o=Array.prototype;null==o[r]&&n(8)(o,r,{}),t.exports=function(t){o[r][t]=!0}},function(t,e,n){var r=n(18),o=n(19),i=n(85);t.exports=function(t){return function(e,n,s){var a,c=r(e),l=o(c.length),u=i(s,l);if(t&&n!=n){for(;l>u;)if((a=c[u++])!=a)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}}},function(t,e,n){var r=n(9),o=n(1)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(s=r(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,n){"use strict";var r=n(2);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(0).document;t.exports=r&&r.documentElement},function(t,e,n){t.exports=!n(4)&&!n(7)((function(){return 7!=Object.defineProperty(n(21)("div"),"a",{get:function(){return 7}}).a}))},function(t,e,n){var r=n(9);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";function r(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=o(e),this.reject=o(n)}var o=n(14);t.exports.f=function(t){return new r(t)}},function(t,e,n){var r=n(2),o=n(76),i=n(22),s=n(27)("IE_PROTO"),a=function(){},c=function(){var t,e=n(21)("iframe"),r=i.length;for(e.style.display="none",n(40).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(a.prototype=r(t),n=new a,a.prototype=null,n[s]=t):n=c(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(79),o=n(25),i=n(18),s=n(29),a=n(12),c=n(41),l=Object.getOwnPropertyDescriptor;e.f=n(4)?l:function(t,e){if(t=i(t),e=s(e,!0),c)try{return l(t,e)}catch(t){}if(a(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(12),o=n(18),i=n(37)(!1),s=n(27)("IE_PROTO");t.exports=function(t,e){var n,a=o(t),c=0,l=[];for(n in a)n!=s&&r(a,n)&&l.push(n);for(;e.length>c;)r(a,n=e[c++])&&(~i(l,n)||l.push(n));return l}},function(t,e,n){var r=n(46),o=n(22);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(2),o=n(5),i=n(43);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var r=n(10),o=n(0),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(24)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(t,e,n){var r=n(2),o=n(14),i=n(1)("species");t.exports=function(t,e){var n,s=r(t).constructor;return void 0===s||null==(n=r(s)[i])?e:o(n)}},function(t,e,n){var r=n(3),o=n(16),i=n(7),s=n(84),a="["+s+"]",c=RegExp("^"+a+a+"*"),l=RegExp(a+a+"*$"),u=function(t,e,n){var o={},a=i((function(){return!!s[t]()||"​…"!="​…"[t]()})),c=o[t]=a?e(m):s[t];n&&(o[n]=c),r(r.P+r.F*a,"String",o)},m=u.trim=function(t,e){return t=String(o(t)),1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(l,"")),t};t.exports=u},function(t,e,n){var r,o,i,s=n(11),a=n(68),c=n(40),l=n(21),u=n(0),m=u.process,p=u.setImmediate,d=u.clearImmediate,f=u.MessageChannel,g=u.Dispatch,A=0,h={},v=function(){var t=+this;if(h.hasOwnProperty(t)){var e=h[t];delete h[t],e()}},b=function(t){v.call(t.data)};p&&d||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return h[++A]=function(){a("function"==typeof t?t:Function(t),e)},r(A),A},d=function(t){delete h[t]},"process"==n(9)(m)?r=function(t){m.nextTick(s(v,t,1))}:g&&g.now?r=function(t){g.now(s(v,t,1))}:f?(i=(o=new f).port2,o.port1.onmessage=b,r=s(i.postMessage,i,1)):u.addEventListener&&"function"==typeof postMessage&&!u.importScripts?(r=function(t){u.postMessage(t+"","*")},u.addEventListener("message",b,!1)):r="onreadystatechange"in l("script")?function(t){c.appendChild(l("script")).onreadystatechange=function(){c.removeChild(this),v.call(t)}}:function(t){setTimeout(s(v,t,1),0)}),t.exports={set:p,clear:d}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){"use strict";var r=n(3),o=n(20)(5),i=!0;"find"in[]&&Array(1).find((function(){i=!1})),r(r.P+r.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n(36)("find")},function(t,e,n){"use strict";var r,o,i,s,a=n(24),c=n(0),l=n(11),u=n(38),m=n(3),p=n(5),d=n(14),f=n(61),g=n(66),A=n(50),h=n(52).set,v=n(75)(),b=n(43),y=n(80),x=n(86),C=n(48),w=c.TypeError,E=c.process,k=E&&E.versions,T=k&&k.v8||"",S=c.Promise,_="process"==u(E),M=function(){},j=o=b.f,P=!!function(){try{var t=S.resolve(1),e=(t.constructor={})[n(1)("species")]=function(t){t(M,M)};return(_||"function"==typeof PromiseRejectionEvent)&&t.then(M)instanceof e&&0!==T.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),B=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},N=function(t,e){if(!t._n){t._n=!0;var n=t._c;v((function(){for(var r=t._v,o=1==t._s,i=0;n.length>i;)!function(e){var n,i,s,a=o?e.ok:e.fail,c=e.resolve,l=e.reject,u=e.domain;try{a?(o||(2==t._h&&L(t),t._h=1),!0===a?n=r:(u&&u.enter(),n=a(r),u&&(u.exit(),s=!0)),n===e.promise?l(w("Promise-chain cycle")):(i=B(n))?i.call(n,c,l):c(n)):l(r)}catch(t){u&&!s&&u.exit(),l(t)}}(n[i++]);t._c=[],t._n=!1,e&&!t._h&&I(t)}))}},I=function(t){h.call(c,(function(){var e,n,r,o=t._v,i=O(t);if(i&&(e=y((function(){_?E.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)})),t._h=_||O(t)?2:1),t._a=void 0,i&&e.e)throw e.v}))},O=function(t){return 1!==t._h&&0===(t._a||t._c).length},L=function(t){h.call(c,(function(){var e;_?E.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})}))},D=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),N(e,!0))},F=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw w("Promise can't be resolved itself");(e=B(t))?v((function(){var r={_w:n,_d:!1};try{e.call(t,l(F,r,1),l(D,r,1))}catch(t){D.call(r,t)}})):(n._v=t,n._s=1,N(n,!1))}catch(t){D.call({_w:n,_d:!1},t)}}};P||(S=function(t){f(this,S,"Promise","_h"),d(t),r.call(this);try{t(l(F,this,1),l(D,this,1))}catch(t){D.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(81)(S.prototype,{then:function(t,e){var n=j(A(this,S));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=_?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&N(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=l(F,t,1),this.reject=l(D,t,1)},b.f=j=function(t){return t===S||t===s?new i(t):o(t)}),m(m.G+m.W+m.F*!P,{Promise:S}),n(26)(S,"Promise"),n(83)("Promise"),s=n(10).Promise,m(m.S+m.F*!P,"Promise",{reject:function(t){var e=j(this);return(0,e.reject)(t),e.promise}}),m(m.S+m.F*(a||!P),"Promise",{resolve:function(t){return C(a&&this===s?S:this,t)}}),m(m.S+m.F*!(P&&n(73)((function(t){S.all(t).catch(M)}))),"Promise",{all:function(t){var e=this,n=j(e),r=n.resolve,o=n.reject,i=y((function(){var n=[],i=0,s=1;g(t,!1,(function(t){var a=i++,c=!1;n.push(void 0),s++,e.resolve(t).then((function(t){c||(c=!0,n[a]=t,--s||r(n))}),o)})),--s||r(n)}));return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=j(e),r=n.reject,o=y((function(){g(t,!1,(function(t){e.resolve(t).then(n.resolve,r)}))}));return o.e&&r(o.v),n.promise}})},function(t,e,n){"use strict";var r=n(3),o=n(10),i=n(0),s=n(50),a=n(48);r(r.P+r.R,"Promise",{finally:function(t){var e=s(this,o.Promise||i.Promise),n="function"==typeof t;return this.then(n?function(n){return a(e,t()).then((function(){return n}))}:t,n?function(n){return a(e,t()).then((function(){throw n}))}:t)}})},function(t,e,n){"use strict";var r=n(35),o=n(101),i=function(t){n(99)},s=n(100)(r.a,o.a,!1,i,null,null);e.a=s.exports},function(t,e,n){"use strict";e.a=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t){return(o="function"==typeof Symbol&&"symbol"===r(Symbol.iterator)?function(t){return r(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":r(t)})(t)}e.a=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(34),o=(n.n(r),n(55)),i=(n.n(o),n(56)),s=(n.n(i),n(57)),a=n(32),c=n(33);n.d(e,"Multiselect",(function(){return s.a})),n.d(e,"multiselectMixin",(function(){return a.a})),n.d(e,"pointerMixin",(function(){return c.a})),e.default=s.a},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(14),o=n(28),i=n(23),s=n(19);t.exports=function(t,e,n,a,c){r(e);var l=o(t),u=i(l),m=s(l.length),p=c?m-1:0,d=c?-1:1;if(n<2)for(;;){if(p in u){a=u[p],p+=d;break}if(p+=d,c?p<0:m<=p)throw TypeError("Reduce of empty array with no initial value")}for(;c?p>=0:m>p;p+=d)p in u&&(a=e(a,u[p],p,l));return a}},function(t,e,n){var r=n(5),o=n(42),i=n(1)("species");t.exports=function(t){var e;return o(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!o(e.prototype)||(e=void 0),r(e)&&null===(e=e[i])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var r=n(63);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){"use strict";var r=n(8),o=n(6),i=n(7),s=n(16),a=n(1);t.exports=function(t,e,n){var c=a(t),l=n(s,c,""[t]),u=l[0],m=l[1];i((function(){var e={};return e[c]=function(){return 7},7!=""[t](e)}))&&(o(String.prototype,t,u),r(RegExp.prototype,c,2==e?function(t,e){return m.call(t,this,e)}:function(t){return m.call(t,this)}))}},function(t,e,n){var r=n(11),o=n(70),i=n(69),s=n(2),a=n(19),c=n(87),l={},u={};(e=t.exports=function(t,e,n,m,p){var d,f,g,A,h=p?function(){return t}:c(t),v=r(n,m,e?2:1),b=0;if("function"!=typeof h)throw TypeError(t+" is not iterable!");if(i(h)){for(d=a(t.length);d>b;b++)if((A=e?v(s(f=t[b])[0],f[1]):v(t[b]))===l||A===u)return A}else for(g=h.call(t);!(f=g.next()).done;)if((A=o(g,v,f.value,e))===l||A===u)return A}).BREAK=l,e.RETURN=u},function(t,e,n){var r=n(5),o=n(82).set;t.exports=function(t,e,n){var i,s=e.constructor;return s!==n&&"function"==typeof s&&(i=s.prototype)!==n.prototype&&r(i)&&o&&o(t,i),t}},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var r=n(15),o=n(1)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){var r=n(2);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},function(t,e,n){"use strict";var r=n(44),o=n(25),i=n(26),s={};n(8)(s,n(1)("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(s,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){"use strict";var r=n(24),o=n(3),i=n(6),s=n(8),a=n(15),c=n(71),l=n(26),u=n(78),m=n(1)("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,f,g,A,h){c(n,e,f);var v,b,y,x=function(t){if(!p&&t in k)return k[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},C=e+" Iterator",w="values"==g,E=!1,k=t.prototype,T=k[m]||k["@@iterator"]||g&&k[g],S=T||x(g),_=g?w?x("entries"):S:void 0,M="Array"==e&&k.entries||T;if(M&&(y=u(M.call(new t)))!==Object.prototype&&y.next&&(l(y,C,!0),r||"function"==typeof y[m]||s(y,m,d)),w&&T&&"values"!==T.name&&(E=!0,S=function(){return T.call(this)}),r&&!h||!p&&!E&&k[m]||s(k,m,S),a[e]=S,a[C]=d,g)if(v={values:w?S:x("values"),keys:A?S:x("keys"),entries:_},h)for(b in v)b in k||i(k,b,v[b]);else o(o.P+o.F*(p||E),e,v);return v}},function(t,e,n){var r=n(1)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],s=i[r]();s.next=function(){return{done:n=!0}},i[r]=function(){return s},t(i)}catch(t){}return n}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(0),o=n(52).set,i=r.MutationObserver||r.WebKitMutationObserver,s=r.process,a=r.Promise,c="process"==n(9)(s);t.exports=function(){var t,e,n,l=function(){var r,o;for(c&&(r=s.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){s.nextTick(l)};else if(!i||r.navigator&&r.navigator.standalone)if(a&&a.resolve){var u=a.resolve(void 0);n=function(){u.then(l)}}else n=function(){o.call(r,l)};else{var m=!0,p=document.createTextNode("");new i(l).observe(p,{characterData:!0}),n=function(){p.data=m=!m}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){var r=n(13),o=n(2),i=n(47);t.exports=n(4)?Object.defineProperties:function(t,e){o(t);for(var n,s=i(e),a=s.length,c=0;a>c;)r.f(t,n=s[c++],e[n]);return t}},function(t,e,n){var r=n(46),o=n(22).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e,n){var r=n(12),o=n(28),i=n(27)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var r=n(6);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e,n){var r=n(5),o=n(2),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(11)(Function.call,n(45).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},function(t,e,n){"use strict";var r=n(0),o=n(13),i=n(4),s=n(1)("species");t.exports=function(t){var e=r[t];i&&e&&!e[s]&&o.f(e,s,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(t,e,n){var r=n(53),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(0).navigator;t.exports=r&&r.userAgent||""},function(t,e,n){var r=n(38),o=n(1)("iterator"),i=n(15);t.exports=n(10).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},function(t,e,n){"use strict";var r=n(3),o=n(20)(2);r(r.P+r.F*!n(17)([].filter,!0),"Array",{filter:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(3),o=n(37)(!1),i=[].indexOf,s=!!i&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(s||!n(17)(i)),"Array",{indexOf:function(t){return s?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},function(t,e,n){var r=n(3);r(r.S,"Array",{isArray:n(42)})},function(t,e,n){"use strict";var r=n(3),o=n(20)(1);r(r.P+r.F*!n(17)([].map,!0),"Array",{map:function(t){return o(this,t,arguments[1])}})},function(t,e,n){"use strict";var r=n(3),o=n(62);r(r.P+r.F*!n(17)([].reduce,!0),"Array",{reduce:function(t){return o(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){var r=Date.prototype,o=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&n(6)(r,"toString",(function(){var t=i.call(this);return t==t?o.call(this):"Invalid Date"}))},function(t,e,n){n(4)&&"g"!=/./g.flags&&n(13).f(RegExp.prototype,"flags",{configurable:!0,get:n(39)})},function(t,e,n){n(65)("search",1,(function(t,e,n){return[function(n){"use strict";var r=t(this),o=null==n?void 0:n[e];return void 0!==o?o.call(n,r):new RegExp(n)[e](String(r))},n]}))},function(t,e,n){"use strict";n(94);var r=n(2),o=n(39),i=n(4),s=/./.toString,a=function(t){n(6)(RegExp.prototype,"toString",t,!0)};n(7)((function(){return"/a/b"!=s.call({source:"a",flags:"b"})}))?a((function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)})):"toString"!=s.name&&a((function(){return s.call(this)}))},function(t,e,n){"use strict";n(51)("trim",(function(t){return function(){return t(this,3)}}))},function(t,e,n){for(var r=n(34),o=n(47),i=n(6),s=n(0),a=n(8),c=n(15),l=n(1),u=l("iterator"),m=l("toStringTag"),p=c.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},f=o(d),g=0;g<f.length;g++){var A,h=f[g],v=d[h],b=s[h],y=b&&b.prototype;if(y&&(y[u]||a(y,u,p),y[m]||a(y,m,h),c[h]=p,v))for(A in r)y[A]||i(y,A,r[A],!0)}},function(t,e){},function(t,e){t.exports=function(t,e,n,r,o,i){var s,a=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(s=t,a=t.default);var l,u="function"==typeof a?a.options:a;if(e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=o),i?(l=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__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},u._ssrRegister=l):r&&(l=r),l){var m=u.functional,p=m?u.render:u.beforeCreate;m?(u._injectStyles=l,u.render=function(t,e){return l.call(e),p(t,e)}):u.beforeCreate=p?[].concat(p,l):[l]}return{esModule:s,exports:a,options:u}}},function(t,e,n){"use strict";var r={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"multiselect",class:{"multiselect--active":t.isOpen,"multiselect--disabled":t.disabled,"multiselect--above":t.isAbove},attrs:{tabindex:t.searchable?-1:t.tabindex},on:{focus:function(e){t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return"button"in e||!t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerForward()):null},function(e){return"button"in e||!t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerBackward()):null}],keypress:function(e){return!("button"in e)&&t._k(e.keyCode,"enter",13,e.key,"Enter")&&t._k(e.keyCode,"tab",9,e.key,"Tab")?null:(e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e))},keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.deactivate()}}},[t._t("caret",[n("div",{staticClass:"multiselect__select",on:{mousedown:function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}}})],{toggle:t.toggle}),t._v(" "),t._t("clear",null,{search:t.search}),t._v(" "),n("div",{ref:"tags",staticClass:"multiselect__tags"},[t._t("selection",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.visibleValues.length>0,expression:"visibleValues.length > 0"}],staticClass:"multiselect__tags-wrap"},[t._l(t.visibleValues,(function(e,r){return[t._t("tag",[n("span",{key:r,staticClass:"multiselect__tag"},[n("span",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(" "),n("i",{staticClass:"multiselect__tag-icon",attrs:{"aria-hidden":"true",tabindex:"1"},on:{keypress:function(n){if(!("button"in n)&&t._k(n.keyCode,"enter",13,n.key,"Enter"))return null;n.preventDefault(),t.removeElement(e)},mousedown:function(n){n.preventDefault(),t.removeElement(e)}}})])],{option:e,search:t.search,remove:t.removeElement})]}))],2),t._v(" "),t.internalValue&&t.internalValue.length>t.limit?[t._t("limit",[n("strong",{staticClass:"multiselect__strong",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})])]:t._e()],{search:t.search,remove:t.removeElement,values:t.visibleValues,isOpen:t.isOpen}),t._v(" "),n("transition",{attrs:{name:"multiselect__loading"}},[t._t("loading",[n("div",{directives:[{name:"show",rawName:"v-show",value:t.loading,expression:"loading"}],staticClass:"multiselect__spinner"})])],2),t._v(" "),t.searchable?n("input",{ref:"search",staticClass:"multiselect__input",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:"text",autocomplete:"nope",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex},domProps:{value:t.search},on:{input:function(e){t.updateSearch(e.target.value)},focus:function(e){e.preventDefault(),t.activate()},blur:function(e){e.preventDefault(),t.deactivate()},keyup:function(e){if(!("button"in e)&&t._k(e.keyCode,"esc",27,e.key,"Escape"))return null;t.deactivate()},keydown:[function(e){if(!("button"in e)&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"]))return null;e.preventDefault(),t.pointerForward()},function(e){if(!("button"in e)&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"]))return null;e.preventDefault(),t.pointerBackward()},function(e){if(!("button"in e)&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete"]))return null;e.stopPropagation(),t.removeLastElement()}],keypress:function(e){return"button"in e||!t._k(e.keyCode,"enter",13,e.key,"Enter")?(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null}}}):t._e(),t._v(" "),t.isSingleLabelVisible?n("span",{staticClass:"multiselect__single",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t("singleLabel",[[t._v(t._s(t.currentOptionLabel))]],{option:t.singleValue})],2):t._e(),t._v(" "),t.isPlaceholderVisible?n("span",{staticClass:"multiselect__placeholder",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t("placeholder",[t._v("\n "+t._s(t.placeholder)+"\n ")])],2):t._e()],2),t._v(" "),n("transition",{attrs:{name:"multiselect"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isOpen,expression:"isOpen"}],ref:"list",staticClass:"multiselect__content-wrapper",style:{maxHeight:t.optimizedHeight+"px"},attrs:{tabindex:"-1"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n("ul",{staticClass:"multiselect__content",style:t.contentStyle},[t._t("beforeList"),t._v(" "),t.multiple&&t.max===t.internalValue.length?n("li",[n("span",{staticClass:"multiselect__option"},[t._t("maxElements",[t._v("Maximum of "+t._s(t.max)+" options selected. First remove a selected option to select another.")])],2)]):t._e(),t._v(" "),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,(function(e,r){return n("li",{key:r,staticClass:"multiselect__element"},[e&&(e.$isLabel||e.$isDisabled)?t._e():n("span",{staticClass:"multiselect__option",class:t.optionHighlight(r,e),attrs:{"data-select":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,"data-selected":t.selectedLabelText,"data-deselect":t.deselectLabelText},on:{click:function(n){n.stopPropagation(),t.select(e)},mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.pointerSet(r)}}},[t._t("option",[n("span",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2),t._v(" "),e&&(e.$isLabel||e.$isDisabled)?n("span",{staticClass:"multiselect__option",class:t.groupHighlight(r,e),attrs:{"data-select":t.groupSelect&&t.selectGroupLabelText,"data-deselect":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(r)},mousedown:function(n){n.preventDefault(),t.selectGroup(e)}}},[t._t("option",[n("span",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2):t._e()])})):t._e(),t._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:"showNoResults && (filteredOptions.length === 0 && search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[t._t("noResult",[t._v("No elements found. Consider changing the search query.")],{search:t.search})],2)]),t._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:t.showNoOptions&&0===t.options.length&&!t.search&&!t.loading,expression:"showNoOptions && (options.length === 0 && !search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[t._t("noOptions",[t._v("List is empty.")])],2)]),t._v(" "),t._t("afterList")],2)])])],2)},staticRenderFns:[]};e.a=r}])},function(t,e,n){var r=n(0),o=n(2),i=n(13),s=n(20).f,a=n(5),c=o((function(){s(1)}));r({target:"Object",stat:!0,forced:!a||c,sham:!a},{getOwnPropertyDescriptor:function(t,e){return s(i(t),e)}})},function(t,e,n){var r=n(0),o=n(5),i=n(118),s=n(13),a=n(20),c=n(58);r({target:"Object",stat:!0,sham:!o},{getOwnPropertyDescriptors:function(t){for(var e,n,r=s(t),o=a.f,l=i(r),u={},m=0;l.length>m;)void 0!==(n=o(r,e=l[m++]))&&c(u,e,n);return u}})},function(e,r,o){"use strict";o.r(r);var i=o(67),s=o(28),a=o(184),c=o.n(a),l=o(185),u=o.n(l),m=o(68),p=o(187),d=o.n(p);m.VTooltip.options.defaultHtml=!1;var f={name:"UpdateNotification",components:{Multiselect:u.a,PopoverMenu:c.a},directives:{ClickOutside:d.a,tooltip:m.VTooltip},data:function(){return{newVersionString:"",lastCheckedDate:"",isUpdateChecked:!1,updaterEnabled:!0,versionIsEol:!1,downloadLink:"",isNewVersionAvailable:!1,hasValidSubscription:!1,updateServerURL:"",changelogURL:"",whatsNewData:[],currentChannel:"",channels:[],notifyGroups:"",availableGroups:[],isDefaultUpdateServerURL:!0,enableChangeWatcher:!1,availableAppUpdates:[],missingAppUpdates:[],appStoreFailed:!1,appStoreDisabled:!1,isListFetched:!1,hideMissingUpdates:!1,hideAvailableUpdates:!0,openedWhatsNew:!1,openedUpdateChannelMenu:!1}},_$el:null,_$notifyGroups:null,computed:{newVersionAvailableString:function(){return t("updatenotification","A new version is available: <strong>{newVersionString}</strong>",{newVersionString:this.newVersionString})},noteDelayedStableString:function(){return t("updatenotification","Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}").replace("{link}",'<a href="https://nextcloud.com/release-channels/">https://nextcloud.com/release-channels/</a>')},lastCheckedOnString:function(){return t("updatenotification","Checked on {lastCheckedDate}",{lastCheckedDate:this.lastCheckedDate})},statusText:function(){return this.isListFetched?this.appStoreDisabled?t("updatenotification","Please make sure your config.php does not set <samp>appstoreenabled</samp> to false."):this.appStoreFailed?t("updatenotification","Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore."):0===this.missingAppUpdates.length?t("updatenotification","<strong>All</strong> apps have an update for this version available",this):n("updatenotification","<strong>%n</strong> app has no update for this version available","<strong>%n</strong> apps have no update for this version available",this.missingAppUpdates.length):t("updatenotification","Checking apps for compatible updates")},whatsNew:function(){if(0===this.whatsNewData.length)return null;var e=[];for(var n in this.whatsNewData)e[n]={icon:"icon-checkmark",longtext:this.whatsNewData[n]};return this.changelogURL&&e.push({href:this.changelogURL,text:t("updatenotification","View changelog"),icon:"icon-link",target:"_blank",action:""}),e},channelList:function(){var e=[];return e.push({text:t("updatenotification","Enterprise"),longtext:t("updatenotification","For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package."),icon:"icon-star",active:"enterprise"===this.currentChannel,disabled:!this.hasValidSubscription,action:this.changeReleaseChannelToEnterprise}),e.push({text:t("updatenotification","Stable"),longtext:t("updatenotification","The most recent stable version. It is suited for regular use and will always update to the latest major version."),icon:"icon-checkmark",active:"stable"===this.currentChannel,action:this.changeReleaseChannelToStable}),e.push({text:t("updatenotification","Beta"),longtext:t("updatenotification","A pre-release version only for testing new features, not for production environments."),icon:"icon-category-customization",active:"beta"===this.currentChannel,action:this.changeReleaseChannelToBeta}),this.isNonDefaultChannel&&e.push({text:this.currentChannel,icon:"icon-rename",active:!0}),e},isNonDefaultChannel:function(){return"enterprise"!==this.currentChannel&&"stable"!==this.currentChannel&&"beta"!==this.currentChannel},localizedChannelName:function(){switch(this.currentChannel){case"enterprise":return t("updatenotification","Enterprise");case"stable":return t("updatenotification","Stable");case"beta":return t("updatenotification","Beta");default:return this.currentChannel}}},watch:{notifyGroups:function(t){if(this.enableChangeWatcher){var e=[];_.each(t,(function(t){e.push(t.value)})),OCP.AppConfig.setValue("updatenotification","notify_groups",JSON.stringify(e))}},isNewVersionAvailable:function(){this.isNewVersionAvailable&&$.ajax({url:Object(s.generateOcsUrl)("apps/updatenotification/api/v1/applist",2)+this.newVersion,type:"GET",beforeSend:function(t){t.setRequestHeader("Accept","application/json")},success:function(t){this.availableAppUpdates=t.ocs.data.available,this.missingAppUpdates=t.ocs.data.missing,this.isListFetched=!0,this.appStoreFailed=!1}.bind(this),error:function(t){this.availableAppUpdates=[],this.missingAppUpdates=[],this.appStoreDisabled=t.responseJSON.ocs.data.appstore_disabled,this.isListFetched=!0,this.appStoreFailed=!0}.bind(this)})}},beforeMount:function(){var t=JSON.parse($("#updatenotification").attr("data-json"));this.newVersion=t.newVersion,this.newVersionString=t.newVersionString,this.lastCheckedDate=t.lastChecked,this.isUpdateChecked=t.isUpdateChecked,this.updaterEnabled=t.updaterEnabled,this.downloadLink=t.downloadLink,this.isNewVersionAvailable=t.isNewVersionAvailable,this.updateServerURL=t.updateServerURL,this.currentChannel=t.currentChannel,this.channels=t.channels,this.notifyGroups=t.notifyGroups,this.isDefaultUpdateServerURL=t.isDefaultUpdateServerURL,this.versionIsEol=t.versionIsEol,this.hasValidSubscription=t.hasValidSubscription,t.changes&&t.changes.changelogURL&&(this.changelogURL=t.changes.changelogURL),t.changes&&t.changes.whatsNew&&(t.changes.whatsNew.admin&&(this.whatsNewData=this.whatsNewData.concat(t.changes.whatsNew.admin)),this.whatsNewData=this.whatsNewData.concat(t.changes.whatsNew.regular))},mounted:function(){this._$el=$(this.$el),this._$notifyGroups=this._$el.find("#oca_updatenotification_groups_list"),this._$notifyGroups.on("change",function(){this.$emit("input")}.bind(this)),$.ajax({url:Object(s.generateOcsUrl)("cloud",2)+"/groups",dataType:"json",success:function(t){var e=[];$.each(t.ocs.data.groups,(function(t,n){e.push({value:n,label:n})})),this.availableGroups=e,this.enableChangeWatcher=!0}.bind(this)})},methods:{clickUpdaterButton:function(){$.ajax({url:Object(s.generateUrl)("/apps/updatenotification/credentials")}).success((function(t){var e=document.createElement("form");e.setAttribute("method","post"),e.setAttribute("action",Object(s.getRootUrl)()+"/updater/");var n=document.createElement("input");n.setAttribute("type","hidden"),n.setAttribute("name","updater-secret-input"),n.setAttribute("value",t),e.appendChild(n),document.body.appendChild(e),e.submit()}))},changeReleaseChannelToEnterprise:function(){this.changeReleaseChannel("enterprise")},changeReleaseChannelToStable:function(){this.changeReleaseChannel("stable")},changeReleaseChannelToBeta:function(){this.changeReleaseChannel("beta")},changeReleaseChannel:function(t){this.currentChannel=t,$.ajax({url:Object(s.generateUrl)("/apps/updatenotification/channel"),type:"POST",data:{channel:this.currentChannel},success:function(t){OC.msg.finishedAction("#channel_save_msg",t)}}),this.openedUpdateChannelMenu=!1},toggleUpdateChannelMenu:function(){this.openedUpdateChannelMenu=!this.openedUpdateChannelMenu},toggleHideMissingUpdates:function(){this.hideMissingUpdates=!this.hideMissingUpdates},toggleHideAvailableUpdates:function(){this.hideAvailableUpdates=!this.hideAvailableUpdates},toggleMenu:function(){this.openedWhatsNew=!this.openedWhatsNew},closeUpdateChannelMenu:function(){this.openedUpdateChannelMenu=!1},hideMenu:function(){this.openedWhatsNew=!1}}},g=o(69),A=o.n(g),h=o(114),v={insert:"head",singleton:!1},b=(A()(h.a,v),h.a.locals,o(115)),y={insert:"head",singleton:!1};A()(b.a,y),b.a.locals;var x=function(t,e,n,r,o,i,s,a){var c,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),i&&(l._scopeId="data-v-"+i),s?(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__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):o&&(c=a?function(){o.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var m=l.beforeCreate;l.beforeCreate=m?[].concat(m,c):[c]}return{exports:t,options:l}}(f,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"followupsection",attrs:{"id":"updatenotification"}},[n("div",{staticClass:"update"},[t.isNewVersionAvailable?[t.versionIsEol?n("p",[n("span",{staticClass:"warning"},[n("span",{staticClass:"icon icon-error-white"}),t._v("\n\t\t\t\t\t"+t._s(t.t("updatenotification","The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible."))+"\n\t\t\t\t")])]):t._e(),t._v(" "),n("p",[n("span",{domProps:{"innerHTML":t._s(t.newVersionAvailableString)}}),n("br"),t._v(" "),t.isListFetched?t._e():n("span",{staticClass:"icon icon-loading-small"}),t._v(" "),n("span",{domProps:{"innerHTML":t._s(t.statusText)}})]),t._v(" "),t.missingAppUpdates.length?[n("h3",{on:{"click":t.toggleHideMissingUpdates}},[t._v("\n\t\t\t\t\t"+t._s(t.t("updatenotification","Apps missing updates"))+"\n\t\t\t\t\t"),t.hideMissingUpdates?t._e():n("span",{staticClass:"icon icon-triangle-n"}),t._v(" "),t.hideMissingUpdates?n("span",{staticClass:"icon icon-triangle-s"}):t._e()]),t._v(" "),t.hideMissingUpdates?t._e():n("ul",{staticClass:"applist"},t._l(t.missingAppUpdates,(function(e,r){return n("li",{key:r},[n("a",{attrs:{"href":"https://apps.nextcloud.com/apps/"+e.appId,"title":t.t("settings","View in store")}},[t._v(t._s(e.appName)+" ↗")])])})),0)]:t._e(),t._v(" "),t.availableAppUpdates.length?[n("h3",{on:{"click":t.toggleHideAvailableUpdates}},[t._v("\n\t\t\t\t\t"+t._s(t.t("updatenotification","Apps with available updates"))+"\n\t\t\t\t\t"),t.hideAvailableUpdates?t._e():n("span",{staticClass:"icon icon-triangle-n"}),t._v(" "),t.hideAvailableUpdates?n("span",{staticClass:"icon icon-triangle-s"}):t._e()]),t._v(" "),t.hideAvailableUpdates?t._e():n("ul",{staticClass:"applist"},t._l(t.availableAppUpdates,(function(e,r){return n("li",{key:r},[n("a",{attrs:{"href":"https://apps.nextcloud.com/apps/"+e.appId,"title":t.t("settings","View in store")}},[t._v(t._s(e.appName)+" ↗")])])})),0)]:t._e(),t._v(" "),n("div",[t.updaterEnabled?n("a",{staticClass:"button primary",attrs:{"href":"#"},on:{"click":t.clickUpdaterButton}},[t._v(t._s(t.t("updatenotification","Open updater")))]):t._e(),t._v(" "),t.downloadLink?n("a",{staticClass:"button",class:{hidden:!t.updaterEnabled},attrs:{"href":t.downloadLink}},[t._v(t._s(t.t("updatenotification","Download now")))]):t._e(),t._v(" "),t.whatsNew?n("div",{staticClass:"whatsNew"},[n("div",{staticClass:"toggleWhatsNew"},[n("a",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.hideMenu,expression:"hideMenu"}],staticClass:"button",on:{"click":t.toggleMenu}},[t._v(t._s(t.t("updatenotification","What's new?")))]),t._v(" "),n("div",{staticClass:"popovermenu",class:{"menu-center":!0,open:t.openedWhatsNew}},[n("PopoverMenu",{attrs:{"menu":t.whatsNew}})],1)])]):t._e()])]:t.isUpdateChecked?[t._v("\n\t\t\t"+t._s(t.t("updatenotification","Your version is up to date."))+"\n\t\t\t"),n("span",{directives:[{name:"tooltip",rawName:"v-tooltip.auto",value:t.lastCheckedOnString,expression:"lastCheckedOnString",modifiers:{"auto":!0}}],staticClass:"icon-info svg"})]:[t._v("\n\t\t\t"+t._s(t.t("updatenotification","The update check is not yet finished. Please refresh the page."))+"\n\t\t")],t._v(" "),t.isDefaultUpdateServerURL?t._e():[n("p",{staticClass:"topMargin"},[n("em",[t._v(t._s(t.t("updatenotification","A non-default update server is in use to be checked for updates:"))+" "),n("code",[t._v(t._s(t.updateServerURL))])])])]],2),t._v(" "),n("h3",{staticClass:"update-channel-selector"},[t._v("\n\t\t"+t._s(t.t("updatenotification","Update channel:"))+"\n\t\t"),n("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.closeUpdateChannelMenu,expression:"closeUpdateChannelMenu"}],staticClass:"update-menu"},[n("span",{staticClass:"icon-update-menu",on:{"click":t.toggleUpdateChannelMenu}},[t._v("\n\t\t\t\t"+t._s(t.localizedChannelName)+"\n\t\t\t\t"),n("span",{staticClass:"icon-triangle-s"})]),t._v(" "),n("div",{staticClass:"popovermenu menu menu-center",class:{"show-menu":t.openedUpdateChannelMenu}},[n("PopoverMenu",{attrs:{"menu":t.channelList}})],1)])]),t._v(" "),n("span",{staticClass:"msg",attrs:{"id":"channel_save_msg"}}),n("br"),t._v(" "),n("p",[n("em",[t._v(t._s(t.t("updatenotification","You can always update to a newer version. But you can never downgrade to a more stable version.")))]),n("br"),t._v(" "),n("em",{domProps:{"innerHTML":t._s(t.noteDelayedStableString)}})]),t._v(" "),n("p",{attrs:{"id":"oca_updatenotification_groups"}},[t._v("\n\t\t"+t._s(t.t("updatenotification","Notify members of the following groups about available updates:"))+"\n\t\t"),n("Multiselect",{attrs:{"options":t.availableGroups,"multiple":!0,"label":"label","track-by":"value","tag-width":75},model:{value:t.notifyGroups,callback:function(e){t.notifyGroups=e},expression:"notifyGroups"}}),n("br"),t._v(" "),"daily"===t.currentChannel||"git"===t.currentChannel?n("em",[t._v(t._s(t.t("updatenotification","Only notification for app updates are available.")))]):t._e(),t._v(" "),"daily"===t.currentChannel?n("em",[t._v(t._s(t.t("updatenotification","The selected update channel makes dedicated notifications for the server obsolete.")))]):t._e(),t._v(" "),"git"===t.currentChannel?n("em",[t._v(t._s(t.t("updatenotification","The selected update channel does not support updates of the server.")))]):t._e()],1)])}),[],!1,null,"b45d9efe",null).exports;i.default.mixin({methods:{t:function(t,e,n,r,o){return OC.L10N.translate(t,e,n,r,o)},n:function(t,e,n,r,o,i){return OC.L10N.translatePlural(t,e,n,r,o,i)}}}),new i.default({el:"#updatenotification",render:function(t){return t(x)}})}]);
-//# sourceMappingURL=updatenotification.js.map \ No newline at end of file
diff --git a/apps/updatenotification/js/updatenotification.js.map b/apps/updatenotification/js/updatenotification.js.map
deleted file mode 100644
index 73fa2f617ad..00000000000
--- a/apps/updatenotification/js/updatenotification.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/utils.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/fails.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/@nextcloud/router/dist/index.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/export.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/semver/internal/constants.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./apps/updatenotification/src/components/UpdateNotification.vue?f83f","webpack:///./apps/updatenotification/src/components/UpdateNotification.vue?d564","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///../lib/index.ts","webpack:///./node_modules/semver/internal/re.js","webpack:///./node_modules/semver/internal/debug.js","webpack:///./node_modules/semver/classes/semver.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/defaults.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/createError.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/@nextcloud/auth/dist/index.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/charenc/charenc.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/uid.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-array.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/v8-version.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/@nextcloud/browser-storage/dist/scopedstorage.js","webpack:///./node_modules/@nextcloud/vue/dist/Components/PopoverMenu.js","webpack:///./node_modules/@nextcloud/vue/dist/Components/Multiselect.js","webpack:///./node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///./node_modules/vue-click-outside/index.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///../lib/ProxyBus.ts","webpack:///./node_modules/semver/functions/valid.js","webpack:///./node_modules/semver/functions/parse.js","webpack:///./node_modules/semver/internal/identifiers.js","webpack:///./node_modules/semver/functions/major.js","webpack:///../lib/SimpleBus.ts","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/@nextcloud/l10n/dist/gettext.js","webpack:///./node_modules/node-gettext/lib/gettext.js","webpack:///./node_modules/lodash.get/index.js","webpack:///./node_modules/node-gettext/lib/plurals.js","webpack:///./node_modules/@nextcloud/l10n/dist/index.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/@nextcloud/axios/dist/index.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/index.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/axios.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/settle.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/@nextcloud/axios/node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/@nextcloud/auth/dist/requesttoken.js","webpack:///./node_modules/@nextcloud/auth/dist/user.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/striptags/src/striptags.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/v-click-outside/dist/v-click-outside.umd.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/@nextcloud/capabilities/dist/index.js","webpack:///./node_modules/@nextcloud/initial-state/dist/index.js","webpack:///./node_modules/md5/md5.js","webpack:///./node_modules/crypt/crypt.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/@nextcloud/browser-storage/dist/index.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/path.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/bind-context.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/a-function.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/user-agent.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/@nextcloud/browser-storage/dist/storagebuilder.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/@nextcloud/browser-storage/node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.string.code-point-at.js","webpack:///./node_modules/core-js/modules/es.string.from-code-point.js","webpack:///./node_modules/vue-multiselect/dist/vue-multiselect.min.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///apps/updatenotification/src/components/UpdateNotification.vue","webpack:///./apps/updatenotification/src/components/UpdateNotification.vue?5f97","webpack:///./apps/updatenotification/src/components/UpdateNotification.vue?c4a9","webpack:///./apps/updatenotification/src/components/UpdateNotification.vue?a53e","webpack:///./apps/updatenotification/src/components/UpdateNotification.vue","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./apps/updatenotification/src/components/UpdateNotification.vue?a742","webpack:///./apps/updatenotification/src/init.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","options","source","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","undefined","sham","it","Math","check","globalThis","window","self","this","Function","exec","error","shared","has","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","isObject","TypeError","String","fails","DESCRIPTORS","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","split","state","unsafe","simple","join","toInteger","min","argument","toString","isArray","val","isUndefined","isPlainObject","getPrototypeOf","isFunction","forEach","obj","fn","length","isArrayBuffer","isBuffer","constructor","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","document","merge","result","assignValue","slice","arguments","extend","a","b","thisArg","trim","str","replace","stripBOM","content","charCodeAt","IndexedObject","requireObjectCoercible","definePropertyModule","createPropertyDescriptor","g","e","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","store","wmget","wmhas","wmset","metadata","facade","STATE","getterFor","TYPE","type","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","path","aFunction","variable","namespace","method","cache","thrower","METHOD_NAME","ACCESSORS","argument0","argument1","TO_STRING_TAG","wellKnownSymbol","TAG","configurable","that","apply","getRootUrl","generateFilePath","imagePath","generateUrl","generateOcsUrl","generateRemoteUrl","linkTo","app","file","service","location","protocol","host","linkToRemoteBase","version","url","params","allOptions","assign","escape","noRewrite","_build","text","vars","encodeURIComponent","charAt","OC","config","modRewriteWorking","indexOf","isCore","coreApps","link","substring","appswebroots","encodeURI","webroot","bitmap","writable","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","F","Properties","classof","propertyIsEnumerable","input","PREFERRED_STRING","valueOf","internalObjectKeys","concat","getOwnPropertyNames","ceil","floor","isNaN","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","TO_STRING_TAG_SUPPORT","$","proto","addToUnscopables","Iterators","defineIterator","setInternalState","Array","iterated","kind","index","done","Arguments","Constructor","arg","keys","id","postfix","random","re1","re2","regexpFlags","stickyHelpers","nativeExec","RegExp","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","match","re","sticky","flags","charsAdded","strCopy","multiline","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","R","rf","fixRegExpWellKnownSymbolLogic","toLength","advanceStringIndex","getSubstitution","regExpExec","max","REPLACE","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","regexp","res","rx","S","functionalReplace","fullUnicode","unicode","results","push","accumulatedResult","nextSourcePosition","matched","position","captures","j","namedCaptures","groups","replacerArgs","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","createMethod","CONVERT_TO_STRING","$this","pos","first","second","size","codeAt","point","propertyKey","ITERATOR","toObject","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","callbackfn","specificCreate","boundFunction","map","filter","some","every","find","findIndex","filterOut","V8_VERSION","array","foo","Boolean","userAgent","process","versions","v8","emptyObject","freeze","isUndef","v","isDef","isTrue","isPrimitive","_toString","isRegExp","isValidArrayIndex","parseFloat","isFinite","isPromise","then","catch","JSON","stringify","toNumber","makeMap","expectsLowerCase","list","isReservedAttribute","remove","arr","item","splice","hasOwn","cached","camelizeRE","camelize","_","toUpperCase","capitalize","hyphenateRE","hyphenate","ctx","boundFn","_length","toArray","start","ret","to","_from","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","Date","getTime","keysA","keysB","looseIndexOf","once","called","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","def","bailRE","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","isIE","test","isIE9","isEdge","isIOS","isFF","nativeWatch","watch","supportsPassive","opts","addEventListener","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","add","clear","warn","Dep","subs","addSub","sub","removeSub","depend","addDep","notify","update","targetStack","pushTarget","popTarget","pop","VNode","tag","children","elm","context","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","parent","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","createEmptyVNode","node","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","original","args","len","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","__proto__","protoAugment","copyAugment","walk","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","setter","childOb","dependArray","newVal","del","items","strats","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","hooks","dedupeHooks","mergeAssets","hook","key$1","props","inject","computed","provide","defaultStrat","mergeOptions","normalizeProps","normalized","normalizeInject","dirs","directives","def$$1","normalizeDirectives","_base","extends","mixins","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","prop","absent","booleanIndex","getTypeIndex","stringIndex","default","$options","_props","getType","getPropDefaultValue","prevShouldObserve","isSameType","expectedTypes","handleError","err","info","cur","$parent","errorCaptured","globalHandleError","invokeWithErrorHandling","handler","_handled","logError","console","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","Promise","resolve","setTimeout","MutationObserver","setImmediate","counter","observer","textNode","createTextNode","characterData","nextTick","cb","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","capture","createFnInvoker","fns","invoker","arguments$1","updateListeners","on","oldOn","remove$$1","createOnceHandler","old","event","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","checkProp","hash","altKey","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","last","isTextNode","shift","_isVList","resolveInject","provideKey","_provided","provideDefault","resolveSlots","slots","attrs","slot","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","render","iterator","next","renderSlot","fallback","bindObject","nodes","scopedSlotFn","$scopedSlots","$slots","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","markStatic","staticRenderFns","_renderProxy","markOnce","markStaticNode","bindObjectListeners","existing","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","values","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","_compiled","needNormalization","listeners","injections","scopedSlots","_scopeId","_c","createElement","cloneAndMarkFunctionalResult","renderContext","clone","mergeProps","componentVNodeHooks","init","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","inlineTemplate","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","parentVnode","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","_renderChildren","$vnode","_vnode","$attrs","$listeners","propKeys","_propKeys","oldListeners","_parentListeners","updateComponentListeners","$forceUpdate","updateChildComponent","insert","_isMounted","callHook","_inactive","activatedChildren","activateChildComponent","destroy","deactivateChildComponent","direct","_directInactive","isInInactiveTree","$children","$destroy","hooksToMerge","createComponent","baseCtor","cid","factory","errorComp","resolved","owner","currentRenderingInstance","owners","loading","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","clearTimeout","ensureCtor","reject","component","delay","timeout","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","callback","transformModel","extractPropsFromVNodeData","functional","vnodes","createFunctionalComponent","nativeOn","abstract","toMerge","_merged","mergeHook$1","installComponentHooks","f1","f2","normalizationType","alwaysNormalize","is","simpleNormalizeChildren","pre","applyNS","force","class","registerDeepBindings","_createElement","comp","base","getFirstComponentChild","remove$1","$off","_target","onceHandler","setActiveInstance","prevActiveInstance","handlers","_hasHookEvent","$emit","queue","waiting","flushing","currentFlushTimestamp","getNow","now","createEvent","timeStamp","flushSchedulerQueue","watcher","sort","before","run","activatedQueue","updatedQueue","callActivatedHooks","_watcher","callUpdatedHooks","emit","uid$2","Watcher","expOrFn","isRenderWatcher","_watchers","deep","user","lazy","active","dirty","deps","newDeps","depIds","newDepIds","expression","segments","parsePath","cleanupDeps","tmp","queueWatcher","oldValue","evaluate","teardown","_isBeingDestroyed","sharedPropertyDefinition","sourceKey","initState","propsOptions","initProps","initMethods","_data","getData","initData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed","createWatcher","initWatch","shouldCache","createComputedGetter","createGetterInvoker","$watch","uid$3","super","superOptions","modifiedOptions","modified","latest","sealed","sealedOptions","resolveModifiedOptions","extendOptions","components","Vue","_init","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps$1","initComputed$1","mixin","use","getComponentName","matches","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","current","cached$$1","_uid","vnodeComponentOptions","_componentTag","initInternalComponent","_self","$root","$refs","initLifecycle","_events","initEvents","parentData","initRender","initInjections","initProvide","el","initMixin","dataDef","propsDef","$set","$delete","immediate","stateMixin","hookRE","$once","i$1","cbs","eventsMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","lifecycleMixin","$nextTick","_render","ref","renderMixin","patternTypes","builtInComponents","KeepAlive","include","exclude","Number","created","destroyed","mounted","parseInt","configDef","util","defineReactive","delete","observable","plugin","installedPlugins","_installedPlugins","unshift","install","initUse","initMixin$1","definition","initAssetRegisters","initGlobalAPI","ssrContext","acceptValue","isEnumeratedAttr","isValidContentEditableValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","parentNode","childNode","mergeClassData","staticClass","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","nodeOps","tagName","multiple","setAttribute","createElementNS","createComment","insertBefore","newNode","referenceNode","removeChild","nextSibling","setTextContent","textContent","setStyleScope","scopeId","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","removeAttribute","baseSetAttr","convertEnumeratedValue","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","currentTarget","ownerDocument","updateDOMListeners","change","normalizeEvents","svgContainer","events","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","innerHTML","firstChild","checkVal","composing","notInFocus","activeElement","isNotInFocusAndDirty","_vModifiers","number","isDirtyWithModifiers","parseStyleText","cssText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","getStyle","whitespaceRE","addClass","classList","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","end","onEnd","transformRE","styles","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","nodeType","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","childElm","createRmCb","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","patchable","i$2","createPatchFunction","vmodel","trigger","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","hasNoMatchingOption","actuallySetSelected","isMultiple","selected","option","selectedIndex","initEvent","dispatchEvent","locateNode","platformDirectives","transition$$1","originalDisplay","__vOriginalDisplay","unbind","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","h","rawChild","isNotTextNode","isVShowDirective","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","callPendingCbs","_moveCb","recordPosition","newPos","getBoundingClientRect","applyTranslation","oldPos","dx","left","dy","top","moved","transform","WebkitTransform","transitionDuration","platformComponents","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","c$1","updated","hasMove","_reflow","body","offsetHeight","propertyName","_hasMove","cloneNode","attr","HTMLUnknownElement","HTMLElement","updateComponent","mountComponent","querySelector","query","_typeof","_defineProperties","_defineProperty","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","SVGAnimatedString","convertToArray","addClasses","classes","newClasses","className","baseVal","newClass","SVGElement","removeClasses","_listCacheClear","__data__","eq_1","other","_assocIndexOf","_listCacheDelete","_listCacheGet","_listCacheHas","_listCacheSet","ListCache","entries","entry","_ListCache","_stackClear","_stackDelete","_stackGet","_stackHas","commonjsGlobal","createCommonjsModule","_freeGlobal","freeSelf","_root","_Symbol","objectProto","nativeObjectToString","symToStringTag","_getRawTag","isOwn","unmasked","nativeObjectToString$1","_objectToString","symToStringTag$1","_baseGetTag","isObject_1","isFunction_1","_coreJsData","maskSrcKey","_isMasked","func","funcToString","_toSource","reIsHostCtor","funcProto$1","objectProto$2","funcToString$1","hasOwnProperty$1","reIsNative","_baseIsNative","_getValue","_getNative","_Map","_nativeCreate","_hashClear","_hashDelete","hasOwnProperty$2","_hashGet","hasOwnProperty$3","_hashHas","_hashSet","Hash","_Hash","_mapCacheClear","_isKeyable","_getMapData","_mapCacheDelete","_mapCacheGet","_mapCacheHas","_mapCacheSet","MapCache","_MapCache","_stackSet","pairs","LARGE_ARRAY_SIZE","Stack","_Stack","_setCacheAdd","_setCacheHas","SetCache","_SetCache","_arraySome","predicate","_cacheHas","_equalArrays","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","stacked","arrValue","othValue","compared","othIndex","_Uint8Array","Uint8Array","_mapToArray","_setToArray","symbolProto","symbolValueOf","_equalByTag","byteLength","byteOffset","message","convert","_arrayPush","offset","isArray_1","_baseGetAllKeys","keysFunc","symbolsFunc","_arrayFilter","resIndex","stubArray_1","nativeGetSymbols","_getSymbols","_baseTimes","iteratee","isObjectLike_1","_baseIsArguments","objectProto$6","hasOwnProperty$4","propertyIsEnumerable$1","isArguments_1","stubFalse_1","isBuffer_1","freeExports","freeModule","Buffer","reIsUint","_isIndex","isLength_1","typedArrayTags","_baseIsTypedArray","_baseUnary","_nodeUtil","freeProcess","nodeUtil","types","require","nodeIsTypedArray","isTypedArray","isTypedArray_1","hasOwnProperty$5","_arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","objectProto$8","_isPrototype","_overArg","_nativeKeys","hasOwnProperty$6","_baseKeys","isArrayLike_1","keys_1","_getAllKeys","hasOwnProperty$7","_equalObjects","objProps","objLength","skipCtor","objValue","objCtor","othCtor","_DataView","_Promise","_WeakMap","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","hasOwnProperty$8","_baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqual","baseIsEqual","isEqual_1","DEFAULT_OPTIONS","container","placement","title","template","openTooltips","Tooltip","_reference","_options","_this","instance","_classCallCheck","evt","reference","relatedreference","toElement","relatedTarget","_tooltipNode","contains","evt2","relatedreference2","_scheduleHide","jquery","hide","_isOpen","protoProps","staticProps","_show","_hide","_dispose","_classes","_setContent","classesUpdated","defaultClass","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","tooltipGenerator","tooltipNode","substr","autoHide","_this2","asyncContent","_applyContent","_this3","allowHtml","rootNode","titleNode","innerSelector","loadingClass","loadingContent","asyncResult","innerText","_disposeTimer","updateClasses","_ensureShown","_this4","enableEventListeners","_create","_findContainer","_append","popperOptions","arrow","element","arrowSelector","boundariesElement","preventOverflow","Popper","_this5","_noLongerOpen","disableEventListeners","disposeTime","disposeTimeout","_removeTooltipNode","_this6","_ref","removeOnDestroy","_this7","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this8","computedDelay","_scheduleTimer","_this9","_setTooltipNodeEvent","_onDocumentTouch","enabled","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","getContent","createTooltip","tooltip","_tooltip","_vueEl","targetClasses","_tooltipTargetClasses","destroyTooltip","_tooltipOldShow","setContent","setOptions","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","all","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","abs","screenY","screenX","vclosepopover","_ref2","getDefault","MSStream","openPopovers","Element","script","ResizeObserver","disabled","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","cssClass","popoverId","oldVal","popoverNode","$_findContainer","scheduleUpdate","$_removeEventListeners","$_addEventListeners","$_updatePopper","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","deactivated","beforeDestroy","_ref2$force","skipDelay","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","$_getOffset","hidden","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClose","_loop","__vue_script__","__vue_render__","_vm","_h","tabindex","visibility","keyup","keyCode","_withStripped","__vue_component__","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","shadowRoot","originalRender","beforeCreate","normalizeComponent","_defineProperty$1","_baseAssignValue","_assignMergeValue","_baseFor","fromRight","iterable","_createBaseFor","_cloneBuffer","allocUnsafe","isDeep","copy","_cloneArrayBuffer","arrayBuffer","_cloneTypedArray","typedArray","_copyArray","objectCreate","_baseCreate","_getPrototype","_initCloneObject","isArrayLikeObject_1","funcProto$2","objectProto$c","funcToString$2","hasOwnProperty$9","objectCtorString","isPlainObject_1","_safeGet","hasOwnProperty$a","_assignValue","_copyObject","isNew","newValue","_nativeKeysIn","hasOwnProperty$b","_baseKeysIn","isProto","keysIn_1","toPlainObject_1","_baseMergeDeep","srcIndex","mergeFunc","srcValue","isCommon","isTyped","_baseMerge","baseMerge","identity_1","_apply","nativeMax","_overRest","otherArgs","constant_1","_baseSetToString","nativeNow","_setToString","count","lastCalled","stamp","remaining","_shortOut","_baseRest","_isIterateeCall","merge_1","assigner","sources","guard","_createAssigner","installed","finalOptions","insertAt","head","getElementsByTagName","styleSheet","styleInject","VTooltip","VClosePopover","VPopover","GlobalVue","memo","isOldIE","atob","getTarget","styleTarget","HTMLIFrameElement","contentDocument","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","media","sourceMap","references","updater","addStyle","insertStyleElement","attributes","nonce","Error","textStore","replaceText","applyToSingletonTag","cssNode","applyToTag","btoa","unescape","singleton","singletonCounter","styleIndex","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","_slicedToArray","_arrayWithHoles","_arr","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","_item","cssMapping","base64","sourceMapping","sourceURLs","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","$indexOf","arrayMethodIsStrict","arrayMethodUsesToLength","nativeIndexOf","NEGATIVE_ZERO","STRICT_METHOD","USES_TO_LENGTH","1","searchElement","nativePropertyIsEnumerable","NASHORN_BUG","V","EXISTS","functionToString","IS_PURE","copyright","toAbsoluteIndex","IS_INCLUDES","fromIndex","includes","integer","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","ignoreCase","dotAll","UNSCOPABLES","ArrayPrototype","createIteratorConstructor","setPrototypeOf","setToStringTag","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","argv","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","originalArray","C","getBuiltIn","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","k","E","A","MAX_SAFE_INTEGER","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","isArrayIteratorMethod","getIteratorMethod","iteratorClose","Result","stopped","unboundFunction","iterFn","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","dummy","Wrapper","NewTarget","NewTargetPrototype","CONSTRUCTOR_NAME","MATCH","isBrowser","timeoutDuration","longerTimeoutBrowsers","debounce","scheduled","functionToCheck","getStyleComputedProperty","defaultView","getParentNode","nodeName","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","bottom","right","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","height","width","classCallCheck","createClass","_extends","getClientRect","offsets","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","padding","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","isDestroyed","arrowStyles","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","prefix","toCheck","willChange","getWindow","setupEventListeners","updateBound","scrollElement","attachToScrollParents","scrollParents","isBody","eventsEnabled","cancelAnimationFrame","isNumeric","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","toValue","index2","Defaults","shiftvariation","_data$offsets","isVertical","shiftOffsets","transformProp","popperStyles","priority","primary","escapeWithReference","secondary","keepTogether","opSide","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Utils","PopperUtils","___CSS_LOADER_EXPORT___","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","names","objectKeys","nativeAssign","B","chr","T","argumentsLength","RE","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","aPossiblePrototype","CORRECT_SETTER","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","EOF","USE_NATIVE_URL","anInstance","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","URL","getInternalSearchParamsState","getState","getInternalURLState","pow","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","ipv4","parts","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","specialSchemes","ftp","http","https","ws","wss","scheme","includesCredentials","username","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","port","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParams","searchParamsState","updateSearchParams","updateURL","href","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","pathname","getPathname","getSearch","getSearchParams","getHash","URLPrototype","output","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","toJSON","callWithSafeIterationClosing","arrayLike","mapfn","mapping","iteratorMethod","returnMethod","bus","ProxyBus","SimpleBus","debug","createToken","isGlobal","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","NODE_DEBUG","compareIdentifiers","SemVer","loose","includePrerelease","LOOSE","FULL","major","minor","prerelease","num","build","format","compareMain","comparePre","release","inc","$filter","HAS_SPECIES_SUPPORT","$forEach","FREEZING","METADATA","setMetadata","objectID","weakData","meta","REQUIRED","fastKey","getWeakData","onFreeze","wrappedWellKnownSymbolModule","utils","encode","paramsSerializer","serializedParams","toISOString","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","defaults","XMLHttpRequest","transformRequest","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","request","auth","Authorization","fullPath","baseURL","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","_requesttoken","getRequestToken","onRequestTokenUpdate","_user","getCurrentUser","defaultConstructor","defer","channel","IS_IOS","IS_NODE","clearImmediate","MessageChannel","Dispatch","runner","listener","post","postMessage","port2","port1","onmessage","importScripts","PromiseCapability","$$resolve","$$reject","charenc","utf8","stringToBytes","bin","bytesToString","bytes","decodeURIComponent","fromCharCode","0","$map","nativeKeys","notARegExp","correctIsRegExpLogic","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","searchString","ScopedStorage","scope","wrapped","persistent","GLOBAL_SCOPE_PERSISTENT","GLOBAL_SCOPE_VOLATILE","setItem","scopeKey","getItem","removeItem","return","13","16","19","2","u","nc","20","21","3","_injectStyles","35","6","60","mappings","sourcesContent","61","62","63","74","required","icon","validator","iconIsUrl","action","locals","PopoverMenuItem","download","rel","click","longtext","submit","preventDefault","checked","for","stopPropagation","menu","needQuotes","getGettextBuilder","detectLocale","locale","json","charset","Language","translations","msgid","comments","translator","msgstr","Actions","Activities","Choose","Close","Custom","Flags","Next","Objects","Previous","Search","Settings","Symbols","addTranslation","ngettext","gettext","isMobile","handleWindowResize","onIsMobileChanged","hasStatus","userStatus","fetchUserStatus","regeneratorRuntime","mark","wrap","prev","getCapabilities","user_status","abrupt","sent","ocs","t0","label","avatarUrl","getAvatarUrl","mentionText","contenteditable","backgroundImage","role","userData","renderContent","flat","genSelectTemplate","parseContent","renderComponentHtml","excludeClickOutsideClasses","clickOutsideMiddleware","hasNodeOrAnyParentClass","isFullscreen","_isFullscreen","_onResize","outerHeight","screen","highlight","ranges","chunks","getBuilder","persist","ClickOutside","PopoverMenu","iconClass","showUserStatus","showUserStatusCompact","isGuest","displayName","allowPlaceholder","disableTooltip","disableMenu","tooltipMessage","isNoUser","statusColor","menuPosition","avatarUrlLoaded","avatarSrcSetLoaded","userDoesNotExist","isAvatarLoaded","isMenuLoaded","contactsMenuActions","contactsMenuOpenState","canDisplayUserStatus","showUserStatusIconOnAvatar","getUserIdentifier","isDisplayNameDefined","isUserDefined","isUrlDefined","hasMenu","shouldShowPlaceholder","avatarStyle","lineHeight","fontSize","backgroundColor","initials","fromCodePoint","codePointAt","hyperlink","loadAvatarUrl","subscribe","handleUserStatusUpdated","beforeDestroyed","unsubscribe","userId","toggleMenu","fetchContactsMenu","closeMenu","topAction","actions","updateImageIfValid","avatarUrlGenerator","oc_userconfig","avatar","Image","onload","srcset","M","alt","xmlns","viewBox","fill","stroke","Avatar","Highlight","desc","needsTruncate","part1","part2","highlight1","highlight2","AvatarSelectOption","EllipsisedOption","VueMultiselect","limit","trackBy","userSelect","autoLimit","tagWidth","elWidth","maxOptions","limitString","localValue","updateWidth","getOptionLabel","formatLimitTitle","auto","initCompat","ua","msie","rv","edge","getInternetExplorerVersion","compareAndNotify","_w","addResizeHandlers","_resizeObject","removeResizeHandlers","validate","isServer","vNode","$isServer","elements","composedPath","popupItem","isPopup","__vueClickOutside__","clickHandler","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","tailPos","ENTRIES","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","currentValue","inputLength","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","qMinusT","baseMinusT","encoded","labels","redefineAll","getIterator","$fetch","Headers","getInternalParamsState","getInternalIteratorState","URL_SEARCH_PARAMS","plus","sequences","percentSequence","percentDecode","sequence","deserialize","serialize","parseSearchParams","attribute","validateArgumentsLength","passed","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","fetch","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","attachEvent","task","FunctionPrototype","FunctionPrototypeToString","nameRE","packageJson","er","numeric","anum","bnum","rcompareIdentifiers","Map","collection","collectionStrong","InternalMetadataModule","iterate","checkCorrectnessOfIteration","inheritIfRequired","wrapper","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","getConstructor","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","preventExtensions","setSpecies","internalStateGetterFor","define","previous","getEntry","ITERATOR_NAME","getInternalCollectionState","GettextBuilder","_nodeGettext","_createClass","language","setLanguage","getLanguage","GettextWrapper","gt","sourceLocale","addTranslations","setLocale","translated","placeholders","subtitudePlaceholders","singular","plural","plurals","Gettext","catalogs","eventName","eventData","setTextDomain","dnpgettext","dgettext","msgidPlural","dngettext","pgettext","msgctxt","dpgettext","npgettext","translation","defaultTranslation","_getTranslation","pluralsFunc","getLanguageCode","getComment","textdomain","setlocale","addTextdomain","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","freeGlobal","root","funcProto","coreJsData","objectToString","getNative","nativeCreate","symbolToString","assocIndexOf","baseGet","isSymbol","isKey","stringToPath","toKey","baseIsNative","isHostObject","toSource","getMapData","memoize","baseToString","quote","resolver","memoized","Cache","isObjectLike","defaultValue","ach","examples","sample","nplurals","pluralsText","af","ak","am","an","ar","arn","ast","ay","az","be","bg","bn","bo","br","brx","bs","ca","cgg","cs","csb","cy","da","de","doi","dz","en","eo","es","et","eu","fa","ff","fi","fil","fo","fr","fur","fy","ga","gd","gl","gu","gun","ha","he","hi","hne","hr","hu","hy","ja","jbo","jv","ka","kk","km","kn","ko","ku","kw","ky","lb","ln","lo","lt","lv","mai","mfe","mg","mi","mk","ml","mn","mni","mnk","mr","ms","mt","my","nah","nap","nb","ne","nl","nn","nso","oc","or","pa","pap","pl","pms","ps","pt","ro","ru","rw","sah","sat","sco","sd","se","si","sk","sl","so","son","sq","sr","su","sv","sw","ta","te","tg","th","ti","tk","tr","tt","ug","uk","ur","uz","vi","wa","wo","yo","zh","getLocale","getCanonicalLocale","translate","L10N","translatePlural","textSingular","textPlural","getFirstDay","firstDay","getDayNames","dayNames","getDayNamesShort","dayNamesShort","getDayNamesMin","dayNamesMin","getMonthNames","monthNames","getMonthNamesShort","monthNamesShort","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","HIDDEN","TO_PRIMITIVE","$Symbol","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","space","$replacer","windowNames","getWindowNames","NativeNumber","NumberPrototype","BROKEN_CLASSOF","maxCode","digits","NaN","NumberWrapper","whitespace","ltrim","rtrim","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","native","nativeSlice","fin","_axios","_auth","client","requesttoken","cancelableClient","CancelToken","isCancel","token","_default","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","promises","spread","isAxiosError","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","eject","transformData","throwIfCancellationRequested","throwIfRequested","fileName","lineNumber","columnNumber","expires","secure","cookie","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","line","originURL","urlParsingNode","resolveURL","requestURL","executor","resolvePromise","payload","observers","_eventBus","tokenElement","isAdmin","uidElement","displayNameElement","isUserAdmin","nonNative","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","allowable_tags","tag_replacement","striptags_internal","init_context","tag_set","parse_allowable_tags","tag_buffer","depth","in_quote_char","idx","normalize_tag","init_streaming_mode","msMaxTouchPoints","middleware","isActive","detectIframe","srcTarget","error1","error2","nativeJoin","ES3_STRINGS","separator","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","speciesConstructor","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","isThenable","isReject","notified","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","exit","onUnhandled","isUnhandled","unwrap","internalReject","internalResolve","onFulfilled","onRejected","capability","$promiseResolve","alreadyCalled","race","flush","toggle","macrotask","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","promiseCapability","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isGeneratorFunction","genFun","ctor","awrap","iter","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","accidentalStrictMode","matchHtmlRegExp","callRegExpExec","arrayPush","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","z","_initialState","loadState","elem","crypt","md5","encoding","bytesToWords","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","endian","_blocksize","_digestsize","digestbytes","wordsToBytes","asBytes","asString","bytesToHex","base64map","rotl","rotr","randomBytes","words","hex","hexToBytes","bytesToBase64","triplet","base64ToBytes","imod4","readFloatLE","isSlowBuffer","_isBuffer","flattenIntoArray","depthArg","sourceLen","mapper","targetIndex","sourceIndex","mapFn","getFlags","NativeRegExp","CORRECT_NEW","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","$includes","appId","_storagebuilder","clearAll","sessionStorage","localStorage","clearStorage","clearNonPersistent","_scopedstorage","_interopRequireDefault","storage","pred","StorageBuilder","_persist","persisted","clearedOnLogout","nativeMatch","matcher","matchStr","$reduce","CHROME_VERSION","IS_RIGHT","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","nativeFromCodePoint","__g","G","U","core","W","__e","w","$isLabel","$groupLabel","preferredOpenDirection","optimizedHeight","maxHeight","internalSearch","searchable","clearOnSelect","hideSelected","allowEmpty","resetAfter","closeOnSelect","customLabel","taggable","tagPlaceholder","tagPosition","optionsLimit","groupValues","groupLabel","groupSelect","blockKeys","preserveSearch","preselectFirst","internalValue","select","filteredOptions","filterAndFlat","isSelected","isExistingOption","isTag","valueKeys","optionKeys","flatAndStrip","currentOptionLabel","updateSearch","isOptionDisabled","$isDisabled","selectGroup","pointerDirty","deactivate","removeElement","wholeGroupSelected","wholeGroupDisabled","removeLastElement","adjustPosition","focus","blur","openDirection","showPointer","optionHeight","pointerPosition","visibleElements","pointerAdjust","optionHighlight","groupHighlight","addPointerElement","pointerReset","pointerForward","pointerBackward","pointerSet","selectLabel","selectGroupLabel","selectedLabel","deselectLabel","deselectGroupLabel","showLabels","limitText","showNoOptions","showNoResults","isSingleLabelVisible","singleValue","visibleValues","isPlaceholderVisible","deselectLabelText","deselectGroupLabelText","selectLabelText","selectGroupLabelText","selectedLabelText","inputStyle","contentStyle","isAbove","showSearchInput","hasSingleSelectedSlot","visibleSingleValue","L","D","N","onunhandledrejection","_a","onrejectionhandled","finally","BREAK","RETURN","standalone","esModule","keydown","keypress","mousedown","autocomplete","mouseenter","FAILS_ON_PRIMITIVES","scriptExports","functionalTemplate","injectStyles","newVersionAvailableString","isListFetched","missingAppUpdates","toggleHideMissingUpdates","hideMissingUpdates","appName","availableAppUpdates","toggleHideAvailableUpdates","hideAvailableUpdates","clickUpdaterButton","updaterEnabled","downloadLink","openedWhatsNew","whatsNew","isUpdateChecked","isDefaultUpdateServerURL","updateServerURL","toggleUpdateChannelMenu","localizedChannelName","openedUpdateChannelMenu","channelList","noteDelayedStableString","availableGroups","$$v","notifyGroups","currentChannel","Root"],"mappings":"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","file":"updatenotification.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 309);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = false;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.index-of\");\n\nrequire(\"core-js/modules/es.object.assign\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.replace\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRootUrl = exports.generateFilePath = exports.imagePath = exports.generateUrl = exports.generateOcsUrl = exports.generateRemoteUrl = exports.linkTo = void 0;\n\n/// <reference types=\"@nextcloud/typings\" />\n\n/**\n * Get an absolute url to a file in an app\n *\n * @param {string} app the id of the app the file belongs to\n * @param {string} file the file path relative to the app folder\n * @return {string} Absolute URL to a file\n */\nvar linkTo = function linkTo(app, file) {\n return generateFilePath(app, '', file);\n};\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\n\n\nexports.linkTo = linkTo;\n\nvar linkToRemoteBase = function linkToRemoteBase(service) {\n return getRootUrl() + '/remote.php/' + service;\n};\n/**\n * @brief Creates an absolute url for remote use\n * @param {string} service id\n * @return {string} the url\n */\n\n\nvar generateRemoteUrl = function generateRemoteUrl(service) {\n return window.location.protocol + '//' + window.location.host + linkToRemoteBase(service);\n};\n/**\n * Get the base path for the given OCS API service\n *\n * @param {string} service name\n * @param {int} version OCS API version\n * @return {string} OCS API base path\n */\n\n\nexports.generateRemoteUrl = generateRemoteUrl;\n\nvar generateOcsUrl = function generateOcsUrl(service, version) {\n version = version !== 2 ? 1 : 2;\n return window.location.protocol + '//' + window.location.host + getRootUrl() + '/ocs/v' + version + '.php/' + service + '/';\n};\n\nexports.generateOcsUrl = generateOcsUrl;\n\n/**\n * Generate the absolute url for the given relative url, which can contain parameters\n *\n * Parameters will be URL encoded automatically\n *\n * @return {string} Absolute URL for the given relative URL\n */\nvar generateUrl = function generateUrl(url, params, options) {\n var allOptions = Object.assign({\n escape: true,\n noRewrite: false\n }, options || {});\n\n var _build = function _build(text, vars) {\n vars = vars || {};\n return text.replace(/{([^{}]*)}/g, function (a, b) {\n var r = vars[b];\n\n if (allOptions.escape) {\n return typeof r === 'string' || typeof r === 'number' ? encodeURIComponent(r.toString()) : encodeURIComponent(a);\n } else {\n return typeof r === 'string' || typeof r === 'number' ? r.toString() : a;\n }\n });\n };\n\n if (url.charAt(0) !== '/') {\n url = '/' + url;\n }\n\n if (OC.config.modRewriteWorking === true && !allOptions.noRewrite) {\n return getRootUrl() + _build(url, params || {});\n }\n\n return getRootUrl() + '/index.php' + _build(url, params || {});\n};\n/**\n * Get the absolute path to an image file\n * if no extension is given for the image, it will automatically decide\n * between .png and .svg based on what the browser supports\n *\n * @param {string} app the app id to which the image belongs\n * @param {string} file the name of the image file\n * @return {string}\n */\n\n\nexports.generateUrl = generateUrl;\n\nvar imagePath = function imagePath(app, file) {\n if (file.indexOf('.') === -1) {\n //if no extension is given, use svg\n return generateFilePath(app, 'img', file + '.svg');\n }\n\n return generateFilePath(app, 'img', file);\n};\n/**\n * Get the absolute url for a file in an app\n *\n * @param {string} app the id of the app\n * @param {string} type the type of the file to link to (e.g. css,img,ajax.template)\n * @param {string} file the filename\n * @return {string} Absolute URL for a file in an app\n */\n\n\nexports.imagePath = imagePath;\n\nvar generateFilePath = function generateFilePath(app, type, file) {\n var isCore = OC.coreApps.indexOf(app) !== -1;\n var link = getRootUrl();\n\n if (file.substring(file.length - 3) === 'php' && !isCore) {\n link += '/index.php/apps/' + app;\n\n if (file !== 'index.php') {\n link += '/';\n\n if (type) {\n link += encodeURI(type + '/');\n }\n\n link += file;\n }\n } else if (file.substring(file.length - 3) !== 'php' && !isCore) {\n link = OC.appswebroots[app];\n\n if (type) {\n link += '/' + type + '/';\n }\n\n if (link.substring(link.length - 1) !== '/') {\n link += '/';\n }\n\n link += file;\n } else {\n if ((app === 'settings' || app === 'core' || app === 'search') && type === 'ajax') {\n link += '/index.php/';\n } else {\n link += '/';\n }\n\n if (!isCore) {\n link += 'apps/';\n }\n\n if (app !== '') {\n app += '/';\n link += app;\n }\n\n if (type) {\n link += type + '/';\n }\n\n link += file;\n }\n\n return link;\n};\n/**\n * Return the web root path where this Nextcloud instance\n * is accessible, with a leading slash.\n * For example \"/nextcloud\".\n *\n * @return {string} web root path\n */\n\n\nexports.generateFilePath = generateFilePath;\n\nvar getRootUrl = function getRootUrl() {\n return OC.webroot;\n};\n\nexports.getRootUrl = getRootUrl;\n//# sourceMappingURL=index.js.map","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = {};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = {};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","/*!\n * Vue.js v2.6.12\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.12';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n // allow arbitrary string value for contenteditable\n : key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n createElement: createElement$1,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n};\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (nodeOps.parentNode(ref$$1) === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (\n oldVnode,\n vnode,\n insertedVnodeQueue,\n ownerArray,\n index,\n removeOnly\n ) {\n if (oldVnode === vnode) {\n return\n }\n\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, convertEnumeratedValue(key, value));\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && value !== '' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n};\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n};\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n name,\n handler,\n capture,\n passive\n) {\n // async edge case #6566: inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // the solution is simple: we save the timestamp when a handler is attached,\n // and the handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (useMicrotaskFix) {\n var attachedTimestamp = currentFlushTimestamp;\n var original = handler;\n handler = original._wrapper = function (e) {\n if (\n // no bubbling, should always fire.\n // this is just a safety net in case event.timeStamp is unreliable in\n // certain weird environments...\n e.target === e.currentTarget ||\n // event is fired after handler attachment\n e.timeStamp >= attachedTimestamp ||\n // bail for environments that have buggy event.timeStamp implementations\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n // #9681 QtWebEngine event.timeStamp is negative value\n e.timeStamp <= 0 ||\n // #9448 bail if event is fired in another document in a multi-page\n // electron/nw.js app, since event.timeStamp will be using a different\n // starting reference\n e.target.ownerDocument !== document\n ) {\n return original.apply(this, arguments)\n }\n };\n }\n target$1.addEventListener(\n name,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n name,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n name,\n handler._wrapper || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n};\n\n/* */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (!(key in props)) {\n elm[key] = '';\n }\n }\n\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n // IE doesn't support innerHTML for SVG elements\n svgContainer = svgContainer || document.createElement('div');\n svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n var svg = svgContainer.firstChild;\n while (elm.firstChild) {\n elm.removeChild(elm.firstChild);\n }\n while (svg.firstChild) {\n elm.appendChild(svg.firstChild);\n }\n } else if (\n // skip the update if old and new VDOM state is the same.\n // `value` is handled separately because the DOM value may be temporarily\n // out of sync with VDOM state due to focus, composition and modifiers.\n // This #4521 by skipping the unnecessary `checked` update.\n cur !== oldProps[key]\n ) {\n // some property updates can throw\n // e.g. `value` on <progress> w/ non-finite value\n try {\n elm[key] = cur;\n } catch (e) {}\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n};\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n};\n\n/* */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def$$1) {\n if (!def$$1) {\n return\n }\n /* istanbul ignore else */\n if (typeof def$$1 === 'object') {\n var res = {};\n if (def$$1.css !== false) {\n extend(res, autoCssTransition(def$$1.name || 'v'));\n }\n extend(res, def$$1);\n return res\n } else if (typeof def$$1 === 'string') {\n return autoCssTransition(def$$1)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n context = transitionNode.context;\n transitionNode = transitionNode.parent;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show && el.parentNode) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {};\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n];\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n};\n\nvar platformDirectives = {\n model: directive,\n show: show\n};\n\n/* */\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(isNotTextNode);\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n};\n\n/* */\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n beforeMount: function beforeMount () {\n var this$1 = this;\n\n var update = this._update;\n this._update = function (vnode, hydrating) {\n var restoreActiveInstance = setActiveInstance(this$1);\n // force removing pass\n this$1.__patch__(\n this$1._vnode,\n this$1.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this$1._vnode = this$1.kept;\n restoreActiveInstance();\n update.call(this$1, vnode, hydrating);\n };\n },\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (e && e.target !== el) {\n return\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n};\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n};\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test'\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nexport default Vue;\n","import Popper from 'popper.js';\nimport { ResizeObserver } from 'vue-resize';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nvar _listCacheClear = listCacheClear;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nvar eq_1 = eq;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq_1(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nvar _assocIndexOf = assocIndexOf;\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nvar _listCacheDelete = listCacheDelete;\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nvar _listCacheGet = listCacheGet;\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return _assocIndexOf(this.__data__, key) > -1;\n}\n\nvar _listCacheHas = listCacheHas;\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = _assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nvar _listCacheSet = listCacheSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = _listCacheClear;\nListCache.prototype['delete'] = _listCacheDelete;\nListCache.prototype.get = _listCacheGet;\nListCache.prototype.has = _listCacheHas;\nListCache.prototype.set = _listCacheSet;\n\nvar _ListCache = ListCache;\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new _ListCache;\n this.size = 0;\n}\n\nvar _stackClear = stackClear;\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nvar _stackDelete = stackDelete;\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nvar _stackGet = stackGet;\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nvar _stackHas = stackHas;\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\nvar _freeGlobal = freeGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = _freeGlobal || freeSelf || Function('return this')();\n\nvar _root = root;\n\n/** Built-in value references. */\nvar Symbol$1 = _root.Symbol;\n\nvar _Symbol = Symbol$1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nvar _getRawTag = getRawTag;\n\n/** Used for built-in method references. */\nvar objectProto$1 = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString$1 = objectProto$1.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString$1.call(value);\n}\n\nvar _objectToString = objectToString;\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag$1 && symToStringTag$1 in Object(value))\n ? _getRawTag(value)\n : _objectToString(value);\n}\n\nvar _baseGetTag = baseGetTag;\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nvar isObject_1 = isObject;\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject_1(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = _baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nvar isFunction_1 = isFunction;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = _root['__core-js_shared__'];\n\nvar _coreJsData = coreJsData;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nvar _isMasked = isMasked;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nvar _toSource = toSource;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto$1 = Function.prototype,\n objectProto$2 = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString$1 = funcProto$1.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$1 = objectProto$2.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString$1.call(hasOwnProperty$1).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject_1(value) || _isMasked(value)) {\n return false;\n }\n var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor;\n return pattern.test(_toSource(value));\n}\n\nvar _baseIsNative = baseIsNative;\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nvar _getValue = getValue;\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = _getValue(object, key);\n return _baseIsNative(value) ? value : undefined;\n}\n\nvar _getNative = getNative;\n\n/* Built-in method references that are verified to be native. */\nvar Map = _getNative(_root, 'Map');\n\nvar _Map = Map;\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = _getNative(Object, 'create');\n\nvar _nativeCreate = nativeCreate;\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = _nativeCreate ? _nativeCreate(null) : {};\n this.size = 0;\n}\n\nvar _hashClear = hashClear;\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nvar _hashDelete = hashDelete;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto$3 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$2 = objectProto$3.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (_nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty$2.call(data, key) ? data[key] : undefined;\n}\n\nvar _hashGet = hashGet;\n\n/** Used for built-in method references. */\nvar objectProto$4 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$3 = objectProto$4.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$3.call(data, key);\n}\n\nvar _hashHas = hashHas;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED$1 = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED$1 : value;\n return this;\n}\n\nvar _hashSet = hashSet;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = _hashClear;\nHash.prototype['delete'] = _hashDelete;\nHash.prototype.get = _hashGet;\nHash.prototype.has = _hashHas;\nHash.prototype.set = _hashSet;\n\nvar _Hash = Hash;\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new _Hash,\n 'map': new (_Map || _ListCache),\n 'string': new _Hash\n };\n}\n\nvar _mapCacheClear = mapCacheClear;\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nvar _isKeyable = isKeyable;\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return _isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nvar _getMapData = getMapData;\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = _getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nvar _mapCacheDelete = mapCacheDelete;\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return _getMapData(this, key).get(key);\n}\n\nvar _mapCacheGet = mapCacheGet;\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return _getMapData(this, key).has(key);\n}\n\nvar _mapCacheHas = mapCacheHas;\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = _getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nvar _mapCacheSet = mapCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = _mapCacheClear;\nMapCache.prototype['delete'] = _mapCacheDelete;\nMapCache.prototype.get = _mapCacheGet;\nMapCache.prototype.has = _mapCacheHas;\nMapCache.prototype.set = _mapCacheSet;\n\nvar _MapCache = MapCache;\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof _ListCache) {\n var pairs = data.__data__;\n if (!_Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new _MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nvar _stackSet = stackSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new _ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = _stackClear;\nStack.prototype['delete'] = _stackDelete;\nStack.prototype.get = _stackGet;\nStack.prototype.has = _stackHas;\nStack.prototype.set = _stackSet;\n\nvar _Stack = Stack;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED$2 = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED$2);\n return this;\n}\n\nvar _setCacheAdd = setCacheAdd;\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nvar _setCacheHas = setCacheHas;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new _MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = _setCacheAdd;\nSetCache.prototype.has = _setCacheHas;\n\nvar _SetCache = SetCache;\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nvar _arraySome = arraySome;\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nvar _cacheHas = cacheHas;\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new _SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!_arraySome(other, function(othValue, othIndex) {\n if (!_cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nvar _equalArrays = equalArrays;\n\n/** Built-in value references. */\nvar Uint8Array = _root.Uint8Array;\n\nvar _Uint8Array = Uint8Array;\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nvar _mapToArray = mapToArray;\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nvar _setToArray = setToArray;\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG$1 = 1,\n COMPARE_UNORDERED_FLAG$1 = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol ? _Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new _Uint8Array(object), new _Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq_1(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = _mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1;\n convert || (convert = _setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG$1;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = _equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nvar _equalByTag = equalByTag;\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nvar _arrayPush = arrayPush;\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nvar isArray_1 = isArray;\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray_1(object) ? result : _arrayPush(result, symbolsFunc(object));\n}\n\nvar _baseGetAllKeys = baseGetAllKeys;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nvar _arrayFilter = arrayFilter;\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nvar stubArray_1 = stubArray;\n\n/** Used for built-in method references. */\nvar objectProto$5 = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto$5.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray_1 : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return _arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nvar _getSymbols = getSymbols;\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nvar _baseTimes = baseTimes;\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nvar isObjectLike_1 = isObjectLike;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike_1(value) && _baseGetTag(value) == argsTag;\n}\n\nvar _baseIsArguments = baseIsArguments;\n\n/** Used for built-in method references. */\nvar objectProto$6 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$4 = objectProto$6.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable$1 = objectProto$6.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = _baseIsArguments(function() { return arguments; }()) ? _baseIsArguments : function(value) {\n return isObjectLike_1(value) && hasOwnProperty$4.call(value, 'callee') &&\n !propertyIsEnumerable$1.call(value, 'callee');\n};\n\nvar isArguments_1 = isArguments;\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nvar stubFalse_1 = stubFalse;\n\nvar isBuffer_1 = createCommonjsModule(function (module, exports) {\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse_1;\n\nmodule.exports = isBuffer;\n});\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nvar _isIndex = isIndex;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1;\n}\n\nvar isLength_1 = isLength;\n\n/** `Object#toString` result references. */\nvar argsTag$1 = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag$1 = '[object Boolean]',\n dateTag$1 = '[object Date]',\n errorTag$1 = '[object Error]',\n funcTag$1 = '[object Function]',\n mapTag$1 = '[object Map]',\n numberTag$1 = '[object Number]',\n objectTag = '[object Object]',\n regexpTag$1 = '[object RegExp]',\n setTag$1 = '[object Set]',\n stringTag$1 = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag$1 = '[object ArrayBuffer]',\n dataViewTag$1 = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] =\ntypedArrayTags[dataViewTag$1] = typedArrayTags[dateTag$1] =\ntypedArrayTags[errorTag$1] = typedArrayTags[funcTag$1] =\ntypedArrayTags[mapTag$1] = typedArrayTags[numberTag$1] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag$1] =\ntypedArrayTags[setTag$1] = typedArrayTags[stringTag$1] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike_1(value) &&\n isLength_1(value.length) && !!typedArrayTags[_baseGetTag(value)];\n}\n\nvar _baseIsTypedArray = baseIsTypedArray;\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nvar _baseUnary = baseUnary;\n\nvar _nodeUtil = createCommonjsModule(function (module, exports) {\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && _freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n});\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = _nodeUtil && _nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? _baseUnary(nodeIsTypedArray) : _baseIsTypedArray;\n\nvar isTypedArray_1 = isTypedArray;\n\n/** Used for built-in method references. */\nvar objectProto$7 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$5 = objectProto$7.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray_1(value),\n isArg = !isArr && isArguments_1(value),\n isBuff = !isArr && !isArg && isBuffer_1(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray_1(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? _baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty$5.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n _isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nvar _arrayLikeKeys = arrayLikeKeys;\n\n/** Used for built-in method references. */\nvar objectProto$8 = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$8;\n\n return value === proto;\n}\n\nvar _isPrototype = isPrototype;\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nvar _overArg = overArg;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = _overArg(Object.keys, Object);\n\nvar _nativeKeys = nativeKeys;\n\n/** Used for built-in method references. */\nvar objectProto$9 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$6 = objectProto$9.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!_isPrototype(object)) {\n return _nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$6.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nvar _baseKeys = baseKeys;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength_1(value.length) && !isFunction_1(value);\n}\n\nvar isArrayLike_1 = isArrayLike;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike_1(object) ? _arrayLikeKeys(object) : _baseKeys(object);\n}\n\nvar keys_1 = keys;\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return _baseGetAllKeys(object, keys_1, _getSymbols);\n}\n\nvar _getAllKeys = getAllKeys;\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG$2 = 1;\n\n/** Used for built-in method references. */\nvar objectProto$a = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$7 = objectProto$a.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2,\n objProps = _getAllKeys(object),\n objLength = objProps.length,\n othProps = _getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty$7.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nvar _equalObjects = equalObjects;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = _getNative(_root, 'DataView');\n\nvar _DataView = DataView;\n\n/* Built-in method references that are verified to be native. */\nvar Promise$1 = _getNative(_root, 'Promise');\n\nvar _Promise = Promise$1;\n\n/* Built-in method references that are verified to be native. */\nvar Set = _getNative(_root, 'Set');\n\nvar _Set = Set;\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = _getNative(_root, 'WeakMap');\n\nvar _WeakMap = WeakMap;\n\n/** `Object#toString` result references. */\nvar mapTag$2 = '[object Map]',\n objectTag$1 = '[object Object]',\n promiseTag = '[object Promise]',\n setTag$2 = '[object Set]',\n weakMapTag$1 = '[object WeakMap]';\n\nvar dataViewTag$2 = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = _toSource(_DataView),\n mapCtorString = _toSource(_Map),\n promiseCtorString = _toSource(_Promise),\n setCtorString = _toSource(_Set),\n weakMapCtorString = _toSource(_WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = _baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((_DataView && getTag(new _DataView(new ArrayBuffer(1))) != dataViewTag$2) ||\n (_Map && getTag(new _Map) != mapTag$2) ||\n (_Promise && getTag(_Promise.resolve()) != promiseTag) ||\n (_Set && getTag(new _Set) != setTag$2) ||\n (_WeakMap && getTag(new _WeakMap) != weakMapTag$1)) {\n getTag = function(value) {\n var result = _baseGetTag(value),\n Ctor = result == objectTag$1 ? value.constructor : undefined,\n ctorString = Ctor ? _toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag$2;\n case mapCtorString: return mapTag$2;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag$2;\n case weakMapCtorString: return weakMapTag$1;\n }\n }\n return result;\n };\n}\n\nvar _getTag = getTag;\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG$3 = 1;\n\n/** `Object#toString` result references. */\nvar argsTag$2 = '[object Arguments]',\n arrayTag$1 = '[object Array]',\n objectTag$2 = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto$b = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$8 = objectProto$b.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray_1(object),\n othIsArr = isArray_1(other),\n objTag = objIsArr ? arrayTag$1 : _getTag(object),\n othTag = othIsArr ? arrayTag$1 : _getTag(other);\n\n objTag = objTag == argsTag$2 ? objectTag$2 : objTag;\n othTag = othTag == argsTag$2 ? objectTag$2 : othTag;\n\n var objIsObj = objTag == objectTag$2,\n othIsObj = othTag == objectTag$2,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer_1(object)) {\n if (!isBuffer_1(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new _Stack);\n return (objIsArr || isTypedArray_1(object))\n ? _equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : _equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG$3)) {\n var objIsWrapped = objIsObj && hasOwnProperty$8.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty$8.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new _Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new _Stack);\n return _equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nvar _baseIsEqualDeep = baseIsEqualDeep;\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike_1(value) && !isObjectLike_1(other))) {\n return value !== value && other !== other;\n }\n return _baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nvar _baseIsEqual = baseIsEqual;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return _baseIsEqual(value, other);\n}\n\nvar isEqual_1 = isEqual;\n\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip =\n/*#__PURE__*/\nfunction () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread2({}, DEFAULT_OPTIONS, {}, _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual_1(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', this.hide);\n tooltipNode.addEventListener('click', this.hide);\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this2 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n _this2.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this3._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this3.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this3.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this3._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this3._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this3._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this4 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread2({}, options.popperOptions, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread2({}, popperOptions.modifiers, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this4._isDisposed && _this4.popperInstance) {\n _this4.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this4._isDisposed) {\n _this4._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this4.dispose();\n }\n });\n } else {\n _this4.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this5 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n this.popperInstance.disableEventListeners();\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this5._tooltipNode) {\n _this5._tooltipNode.removeEventListener('mouseenter', _this5.hide);\n\n _this5._tooltipNode.removeEventListener('click', _this5.hide); // Don't remove popper instance, just the HTML element\n\n\n _this5._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this6 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this6.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this7 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this7.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this7.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this7._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this7._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this7._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this7._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this7._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this8 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this8._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this9._isOpen === false) {\n return;\n }\n\n if (!_this9._tooltipNode.ownerDocument.body.contains(_this9._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this9._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this9._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread2({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread2({\n title: content\n }, getOptions(_objectSpread2({}, value, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value,\n oldValue = _ref.oldValue,\n modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread2({}, value, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event,\n _ref2$skipDelay = _ref2.skipDelay,\n _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event,\n _ref3$skipDelay = _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread2({}, this.popperOptions, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread2({}, popperOptions.modifiers, {\n arrow: _objectSpread2({}, popperOptions.modifiers && popperOptions.modifiers.arrow, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread2({}, popperOptions.modifiers && popperOptions.modifiers.offset, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread2({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.popoverId,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\")], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nvar defineProperty = (function() {\n try {\n var func = _getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nvar _defineProperty$1 = defineProperty;\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && _defineProperty$1) {\n _defineProperty$1(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nvar _baseAssignValue = baseAssignValue;\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq_1(object[key], value)) ||\n (value === undefined && !(key in object))) {\n _baseAssignValue(object, key, value);\n }\n}\n\nvar _assignMergeValue = assignMergeValue;\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nvar _createBaseFor = createBaseFor;\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = _createBaseFor();\n\nvar _baseFor = baseFor;\n\nvar _cloneBuffer = createCommonjsModule(function (module, exports) {\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n});\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new _Uint8Array(result).set(new _Uint8Array(arrayBuffer));\n return result;\n}\n\nvar _cloneArrayBuffer = cloneArrayBuffer;\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? _cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nvar _cloneTypedArray = cloneTypedArray;\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nvar _copyArray = copyArray;\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject_1(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nvar _baseCreate = baseCreate;\n\n/** Built-in value references. */\nvar getPrototype = _overArg(Object.getPrototypeOf, Object);\n\nvar _getPrototype = getPrototype;\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !_isPrototype(object))\n ? _baseCreate(_getPrototype(object))\n : {};\n}\n\nvar _initCloneObject = initCloneObject;\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike_1(value) && isArrayLike_1(value);\n}\n\nvar isArrayLikeObject_1 = isArrayLikeObject;\n\n/** `Object#toString` result references. */\nvar objectTag$3 = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto$2 = Function.prototype,\n objectProto$c = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString$2 = funcProto$2.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$9 = objectProto$c.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString$2.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike_1(value) || _baseGetTag(value) != objectTag$3) {\n return false;\n }\n var proto = _getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty$9.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString$2.call(Ctor) == objectCtorString;\n}\n\nvar isPlainObject_1 = isPlainObject;\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nvar _safeGet = safeGet;\n\n/** Used for built-in method references. */\nvar objectProto$d = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$a = objectProto$d.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty$a.call(object, key) && eq_1(objValue, value)) ||\n (value === undefined && !(key in object))) {\n _baseAssignValue(object, key, value);\n }\n}\n\nvar _assignValue = assignValue;\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n _baseAssignValue(object, key, newValue);\n } else {\n _assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nvar _copyObject = copyObject;\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nvar _nativeKeysIn = nativeKeysIn;\n\n/** Used for built-in method references. */\nvar objectProto$e = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$b = objectProto$e.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject_1(object)) {\n return _nativeKeysIn(object);\n }\n var isProto = _isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty$b.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nvar _baseKeysIn = baseKeysIn;\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike_1(object) ? _arrayLikeKeys(object, true) : _baseKeysIn(object);\n}\n\nvar keysIn_1 = keysIn;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return _copyObject(value, keysIn_1(value));\n}\n\nvar toPlainObject_1 = toPlainObject;\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = _safeGet(object, key),\n srcValue = _safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n _assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray_1(srcValue),\n isBuff = !isArr && isBuffer_1(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray_1(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray_1(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject_1(objValue)) {\n newValue = _copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = _cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = _cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject_1(srcValue) || isArguments_1(srcValue)) {\n newValue = objValue;\n if (isArguments_1(objValue)) {\n newValue = toPlainObject_1(objValue);\n }\n else if (!isObject_1(objValue) || isFunction_1(objValue)) {\n newValue = _initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n _assignMergeValue(object, key, newValue);\n}\n\nvar _baseMergeDeep = baseMergeDeep;\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n _baseFor(source, function(srcValue, key) {\n stack || (stack = new _Stack);\n if (isObject_1(srcValue)) {\n _baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(_safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n _assignMergeValue(object, key, newValue);\n }\n }, keysIn_1);\n}\n\nvar _baseMerge = baseMerge;\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nvar identity_1 = identity;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nvar _apply = apply;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return _apply(func, this, otherArgs);\n };\n}\n\nvar _overRest = overRest;\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nvar constant_1 = constant;\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !_defineProperty$1 ? identity_1 : function(func, string) {\n return _defineProperty$1(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant_1(string),\n 'writable': true\n });\n};\n\nvar _baseSetToString = baseSetToString;\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nvar _shortOut = shortOut;\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = _shortOut(_baseSetToString);\n\nvar _setToString = setToString;\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return _setToString(_overRest(func, start, identity_1), func + '');\n}\n\nvar _baseRest = baseRest;\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject_1(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike_1(object) && _isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq_1(object[index], value);\n }\n return false;\n}\n\nvar _isIterateeCall = isIterateeCall;\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return _baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && _isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nvar _createAssigner = createAssigner;\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = _createAssigner(function(object, source, srcIndex) {\n _baseMerge(object, source, srcIndex);\n});\n\nvar merge_1 = merge;\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css = \".resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge_1(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('v-popover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === 'function') {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.8.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#updatenotification[data-v-b45d9efe]{margin-top:-25px;margin-bottom:200px}#updatenotification div.update[data-v-b45d9efe],#updatenotification p[data-v-b45d9efe]:not(.inlineblock){margin-bottom:25px}#updatenotification h2.inlineblock[data-v-b45d9efe]{margin-top:25px}#updatenotification h3[data-v-b45d9efe]{cursor:pointer}#updatenotification h3 .icon[data-v-b45d9efe]{cursor:pointer}#updatenotification h3[data-v-b45d9efe]:first-of-type{margin-top:0}#updatenotification h3.update-channel-selector[data-v-b45d9efe]{display:inline-block;cursor:inherit}#updatenotification .icon[data-v-b45d9efe]{display:inline-block;margin-bottom:-3px}#updatenotification .icon-triangle-s[data-v-b45d9efe],#updatenotification .icon-triangle-n[data-v-b45d9efe]{opacity:0.5}#updatenotification .whatsNew[data-v-b45d9efe]{display:inline-block}#updatenotification .toggleWhatsNew[data-v-b45d9efe]{position:relative}#updatenotification .popovermenu[data-v-b45d9efe]{margin-top:5px;width:300px}#updatenotification .popovermenu p[data-v-b45d9efe]{margin-bottom:0;width:100%}#updatenotification .applist[data-v-b45d9efe]{margin-bottom:25px}#updatenotification .update-menu[data-v-b45d9efe]{position:relative;cursor:pointer;margin-left:3px;display:inline-block}#updatenotification .update-menu .icon-update-menu[data-v-b45d9efe]{cursor:inherit}#updatenotification .update-menu .icon-update-menu .icon-triangle-s[data-v-b45d9efe]{display:inline-block;vertical-align:middle;cursor:inherit;opacity:1}#updatenotification .update-menu .popovermenu[data-v-b45d9efe]{display:none;top:28px}#updatenotification .update-menu .popovermenu.show-menu[data-v-b45d9efe]{display:block}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/updatenotification/src/components/UpdateNotification.vue\"],\"names\":[],\"mappings\":\"AAsbA,qCACC,gBAAiB,CACjB,mBAAoB,CAFrB,yGAKE,kBAAmB,CALrB,oDAQE,eAAgB,CARlB,wCAWE,cAAe,CAXjB,8CAaG,cAAe,CAblB,sDAgBG,YAAa,CAhBhB,gEAmBG,oBAAqB,CACrB,cAAe,CApBlB,2CAwBE,oBAAqB,CACrB,kBAAmB,CAzBrB,4GA4BE,WAAY,CA5Bd,+CA+BE,oBAAqB,CA/BvB,qDAkCE,iBAAkB,CAlCpB,kDAyCE,cAAe,CACf,WAAY,CA1Cd,oDAsCG,eAAgB,CAChB,UAAW,CAvCd,8CA6CE,kBAAmB,CA7CrB,kDAiDE,iBAAkB,CAClB,cAAe,CACf,eAAgB,CAChB,oBAAqB,CApDvB,oEAsDG,cAAe,CAtDlB,qFAwDI,oBAAqB,CACrB,qBAAsB,CACtB,cAAe,CACf,SAAU,CA3Dd,+DA+DG,YAAa,CACb,QAAS,CAhEZ,yEAkEI,aAAc\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n#updatenotification {\\n\\tmargin-top: -25px;\\n\\tmargin-bottom: 200px;\\n\\tdiv.update,\\n\\tp:not(.inlineblock) {\\n\\t\\tmargin-bottom: 25px;\\n\\t}\\n\\th2.inlineblock {\\n\\t\\tmargin-top: 25px;\\n\\t}\\n\\th3 {\\n\\t\\tcursor: pointer;\\n\\t\\t.icon {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\t\\t&:first-of-type {\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t}\\n\\t\\t&.update-channel-selector {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\tcursor: inherit;\\n\\t\\t}\\n\\t}\\n\\t.icon {\\n\\t\\tdisplay: inline-block;\\n\\t\\tmargin-bottom: -3px;\\n\\t}\\n\\t.icon-triangle-s, .icon-triangle-n {\\n\\t\\topacity: 0.5;\\n\\t}\\n\\t.whatsNew {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\t.toggleWhatsNew {\\n\\t\\tposition: relative;\\n\\t}\\n\\t.popovermenu {\\n\\t\\tp {\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\tmargin-top: 5px;\\n\\t\\twidth: 300px;\\n\\t}\\n\\t.applist {\\n\\t\\tmargin-bottom: 25px;\\n\\t}\\n\\n\\t.update-menu {\\n\\t\\tposition: relative;\\n\\t\\tcursor: pointer;\\n\\t\\tmargin-left: 3px;\\n\\t\\tdisplay: inline-block;\\n\\t\\t.icon-update-menu {\\n\\t\\t\\tcursor: inherit;\\n\\t\\t\\t.icon-triangle-s {\\n\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t\\tcursor: inherit;\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.popovermenu {\\n\\t\\t\\tdisplay: none;\\n\\t\\t\\ttop: 28px;\\n\\t\\t\\t&.show-menu {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#updatenotification .popovermenu{margin-top:5px;width:300px}#updatenotification .popovermenu p{margin-top:5px;width:100%}#updatenotification .update-menu .icon-star:hover,#updatenotification .update-menu .icon-star:focus{background-image:var(--icon-star-000)}#updatenotification .topMargin{margin-top:15px}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/updatenotification/src/components/UpdateNotification.vue\"],\"names\":[],\"mappings\":\"AAggBA,iCAKC,cAAe,CACf,WAAY,CANb,mCAEE,cAAe,CACf,UAAW,CACX,oGAOD,qCAAsC,CACtC,+BAEA,eAAgB\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* override needed to make menu wider */\\n#updatenotification .popovermenu {\\n\\tp {\\n\\t\\tmargin-top: 5px;\\n\\t\\twidth: 100%;\\n\\t}\\n\\tmargin-top: 5px;\\n\\twidth: 300px;\\n}\\n/* override needed to replace yellow hover state with a dark one */\\n#updatenotification .update-menu .icon-star:hover,\\n#updatenotification .update-menu .icon-star:focus {\\n\\tbackground-image: var(--icon-star-000);\\n}\\n#updatenotification .topMargin {\\n\\tmargin-top: 15px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","import { EventBus } from \"./EventBus\"\nimport { ProxyBus } from \"./ProxyBus\"\nimport { SimpleBus } from \"./SimpleBus\"\n\ndeclare global {\n interface Window {\n OC: any\n _nc_event_bus: any\n }\n}\n\nfunction getBus(): EventBus {\n if ((typeof window.OC !== 'undefined') && window.OC._eventBus && typeof window._nc_event_bus === 'undefined') {\n console.warn('found old event bus instance at OC._eventBus. Update your version!')\n window._nc_event_bus = window.OC._eventBus\n }\n\n // Either use an existing event bus instance or create one\n if (typeof window._nc_event_bus !== 'undefined') {\n return new ProxyBus(window._nc_event_bus)\n } else {\n return window._nc_event_bus = new SimpleBus()\n }\n}\n\nconst bus = getBus()\n\n/**\n * Register an event listener\n *\n * @param name name of the event\n * @param handler callback invoked for every matching event emitted on the bus\n */\nexport function subscribe(name: string, handler: (string) => void): void {\n bus.subscribe(name, handler)\n}\n\n/**\n * Unregister a previously registered event listener\n *\n * Note: doesn't work with anonymous functions (closures). Use method of an object or store listener function in variable.\n *\n * @param name name of the event\n * @param handler callback passed to `subscribed`\n */\nexport function unsubscribe(name: string, handler: (string) => void): void {\n bus.unsubscribe(name, handler)\n}\n\n/**\n * Emit an event\n *\n * @param name name of the event\n * @param event event payload\n */\nexport function emit(name: string, event: object): void {\n bus.emit(name, event)\n}\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getRequestToken\", {\n enumerable: true,\n get: function get() {\n return _requesttoken.getRequestToken;\n }\n});\nObject.defineProperty(exports, \"onRequestTokenUpdate\", {\n enumerable: true,\n get: function get() {\n return _requesttoken.onRequestTokenUpdate;\n }\n});\nObject.defineProperty(exports, \"getCurrentUser\", {\n enumerable: true,\n get: function get() {\n return _user.getCurrentUser;\n }\n});\n\nvar _requesttoken = require(\"./requesttoken\");\n\nvar _user = require(\"./user\");\n//# sourceMappingURL=index.js.map","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar fails = require('../internals/fails');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () {\n [].filter.call({ length: -1, 0: 1 }, function (it) { throw it; });\n});\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var bind = require('../internals/bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar fails = require('../internals/fails');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () {\n [].map.call({ length: -1, 0: 1 }, function (it) { throw it; });\n});\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.string.starts-with\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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; }\n\nvar ScopedStorage =\n/*#__PURE__*/\nfunction () {\n function ScopedStorage(scope, wrapped, persistent) {\n _classCallCheck(this, ScopedStorage);\n\n _defineProperty(this, \"scope\", void 0);\n\n _defineProperty(this, \"wrapped\", void 0);\n\n this.scope = \"\".concat(persistent ? ScopedStorage.GLOBAL_SCOPE_PERSISTENT : ScopedStorage.GLOBAL_SCOPE_VOLATILE, \"_\").concat(btoa(scope), \"_\");\n this.wrapped = wrapped;\n }\n\n _createClass(ScopedStorage, [{\n key: \"scopeKey\",\n value: function scopeKey(key) {\n return \"\".concat(this.scope).concat(key);\n }\n }, {\n key: \"setItem\",\n value: function setItem(key, value) {\n this.wrapped.setItem(this.scopeKey(key), value);\n }\n }, {\n key: \"getItem\",\n value: function getItem(key) {\n return this.wrapped.getItem(this.scopeKey(key));\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(key) {\n this.wrapped.removeItem(this.scopeKey(key));\n }\n }, {\n key: \"clear\",\n value: function clear() {\n var _this = this;\n\n Object.keys(this.wrapped).filter(function (key) {\n return key.startsWith(_this.scope);\n }).map(this.wrapped.removeItem.bind(this.wrapped));\n }\n }]);\n\n return ScopedStorage;\n}();\n\nexports.default = ScopedStorage;\n\n_defineProperty(ScopedStorage, \"GLOBAL_SCOPE_VOLATILE\", 'nextcloud_vol');\n\n_defineProperty(ScopedStorage, \"GLOBAL_SCOPE_PERSISTENT\", 'nextcloud_per');\n//# sourceMappingURL=scopedstorage.js.map","!function(t,n){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(\"Components/PopoverMenu\",[],n):\"object\"==typeof exports?exports[\"Components/PopoverMenu\"]=n():(t.NextcloudVue=t.NextcloudVue||{},t.NextcloudVue[\"Components/PopoverMenu\"]=n())}(window,(function(){return function(t){var n={};function e(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,e),a.l=!0,a.exports}return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:i})},e.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&\"object\"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(e.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:t}),2&n&&\"string\"!=typeof t)for(var a in t)e.d(i,a,function(n){return t[n]}.bind(null,a));return i},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p=\"/dist/\",e(e.s=74)}({0:function(t,n,e){\"use strict\";function i(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var e=[],i=!0,a=!1,o=void 0;try{for(var r,s=t[Symbol.iterator]();!(i=(r=s.next()).done)&&(e.push(r.value),!n||e.length!==n);i=!0);}catch(t){a=!0,o=t}finally{try{i||null==s.return||s.return()}finally{if(a)throw o}}return e}(t,n)||function(t,n){if(!t)return;if(\"string\"==typeof t)return a(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===e&&t.constructor&&(e=t.constructor.name);if(\"Map\"===e||\"Set\"===e)return Array.from(t);if(\"Arguments\"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return a(t,n)}(t,n)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function a(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,i=new Array(n);e<n;e++)i[e]=t[e];return i}t.exports=function(t){var n=i(t,4),e=n[1],a=n[3];if(\"function\"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),r=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(o),s=\"/*# \".concat(r,\" */\"),l=a.sources.map((function(t){return\"/*# sourceURL=\".concat(a.sourceRoot||\"\").concat(t,\" */\")}));return[e].concat(l).concat([s]).join(\"\\n\")}return[e].join(\"\\n\")}},1:function(t,n,e){\"use strict\";t.exports=function(t){var n=[];return n.toString=function(){return this.map((function(n){var e=t(n);return n[2]?\"@media \".concat(n[2],\" {\").concat(e,\"}\"):e})).join(\"\")},n.i=function(t,e,i){\"string\"==typeof t&&(t=[[null,t,\"\"]]);var a={};if(i)for(var o=0;o<this.length;o++){var r=this[o][0];null!=r&&(a[r]=!0)}for(var s=0;s<t.length;s++){var l=[].concat(t[s]);i&&a[l[0]]||(e&&(l[2]?l[2]=\"\".concat(e,\" and \").concat(l[2]):l[2]=e),n.push(l))}},n}},13:function(t,n){t.exports=require(\"core-js/modules/es.array.index-of\")},16:function(t,n){t.exports=require(\"core-js/modules/es.regexp.to-string\")},19:function(t,n){t.exports=require(\"core-js/modules/es.array.iterator\")},2:function(t,n,e){\"use strict\";var i,a=function(){return void 0===i&&(i=Boolean(window&&document&&document.all&&!window.atob)),i},o=function(){var t={};return function(n){if(void 0===t[n]){var e=document.querySelector(n);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(t){e=null}t[n]=e}return t[n]}}(),r=[];function s(t){for(var n=-1,e=0;e<r.length;e++)if(r[e].identifier===t){n=e;break}return n}function l(t,n){for(var e={},i=[],a=0;a<t.length;a++){var o=t[a],l=n.base?o[0]+n.base:o[0],c=e[l]||0,d=\"\".concat(l,\" \").concat(c);e[l]=c+1;var p=s(d),u={css:o[1],media:o[2],sourceMap:o[3]};-1!==p?(r[p].references++,r[p].updater(u)):r.push({identifier:d,updater:h(u,n),references:1}),i.push(d)}return i}function c(t){var n=document.createElement(\"style\"),i=t.attributes||{};if(void 0===i.nonce){var a=e.nc;a&&(i.nonce=a)}if(Object.keys(i).forEach((function(t){n.setAttribute(t,i[t])})),\"function\"==typeof t.insert)t.insert(n);else{var r=o(t.insert||\"head\");if(!r)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");r.appendChild(n)}return n}var d,p=(d=[],function(t,n){return d[t]=n,d.filter(Boolean).join(\"\\n\")});function u(t,n,e,i){var a=e?\"\":i.media?\"@media \".concat(i.media,\" {\").concat(i.css,\"}\"):i.css;if(t.styleSheet)t.styleSheet.cssText=p(n,a);else{var o=document.createTextNode(a),r=t.childNodes;r[n]&&t.removeChild(r[n]),r.length?t.insertBefore(o,r[n]):t.appendChild(o)}}function m(t,n,e){var i=e.css,a=e.media,o=e.sourceMap;if(a?t.setAttribute(\"media\",a):t.removeAttribute(\"media\"),o&&\"undefined\"!=typeof btoa&&(i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o)))),\" */\")),t.styleSheet)t.styleSheet.cssText=i;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(i))}}var b=null,f=0;function h(t,n){var e,i,a;if(n.singleton){var o=f++;e=b||(b=c(n)),i=u.bind(null,e,o,!1),a=u.bind(null,e,o,!0)}else e=c(n),i=m.bind(null,e,n),a=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)};return i(t),function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap)return;i(t=n)}else a()}}t.exports=function(t,n){(n=n||{}).singleton||\"boolean\"==typeof n.singleton||(n.singleton=a());var e=l(t=t||[],n);return function(t){if(t=t||[],\"[object Array]\"===Object.prototype.toString.call(t)){for(var i=0;i<e.length;i++){var a=s(e[i]);r[a].references--}for(var o=l(t,n),c=0;c<e.length;c++){var d=s(e[c]);0===r[d].references&&(r[d].updater(),r.splice(d,1))}e=o}}}},20:function(t,n){t.exports=require(\"core-js/modules/es.string.iterator\")},21:function(t,n){t.exports=require(\"core-js/modules/web.dom-collections.iterator\")},3:function(t,n,e){\"use strict\";function i(t,n,e,i,a,o,r,s){var l,c=\"function\"==typeof t?t.options:t;if(n&&(c.render=n,c.staticRenderFns=e,c._compiled=!0),i&&(c.functional=!0),o&&(c._scopeId=\"data-v-\"+o),r?(l=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__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=l):a&&(l=s?function(){a.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:a),l)if(c.functional){c._injectStyles=l;var d=c.render;c.render=function(t,n){return l.call(n),d(t,n)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:t,options:c}}e.d(n,\"a\",(function(){return i}))},35:function(t,n){t.exports=require(\"core-js/modules/web.url\")},6:function(t,n){t.exports=require(\"core-js/modules/es.object.to-string\")},60:function(t,n,e){\"use strict\";var i=e(0),a=e.n(i),o=e(1),r=e.n(o)()(a.a);r.push([t.i,\"\\nbutton.menuitem[data-v-3ad7b73b] {\\n\\ttext-align: left;\\n}\\nbutton.menuitem *[data-v-3ad7b73b] {\\n\\tcursor: pointer;\\n}\\nbutton.menuitem[data-v-3ad7b73b]:disabled {\\n\\topacity: 0.5 !important;\\n\\tcursor: default;\\n}\\nbutton.menuitem:disabled *[data-v-3ad7b73b] {\\n\\tcursor: default;\\n}\\n.menuitem.active[data-v-3ad7b73b] {\\n\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\tborder-radius: 0;\\n}\\n\",\"\",{version:3,sources:[\"webpack://./PopoverMenuItem.vue\"],names:[],mappings:\";AA4HA;CACA,gBAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,uBAAA;CACA,eAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,4CAAA;CACA,gBAAA;AACA\",sourcesContent:['\\x3c!--\\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @author John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n --\\x3e\\n\\n<template>\\n\\t<li>\\n\\t\\t\\x3c!-- If item.href is set, a link will be directly used --\\x3e\\n\\t\\t<a v-if=\"item.href\"\\n\\t\\t\\t:href=\"(item.href) ? item.href : \\'#\\' \"\\n\\t\\t\\t:target=\"(item.target) ? item.target : \\'\\' \"\\n\\t\\t\\t:download=\"item.download\"\\n\\t\\t\\tclass=\"focusable\"\\n\\t\\t\\trel=\"noreferrer noopener\"\\n\\t\\t\\t@click=\"action\">\\n\\t\\t\\t<span v-if=\"!iconIsUrl\" :class=\"item.icon\" />\\n\\t\\t\\t<img v-else :src=\"item.icon\">\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</a>\\n\\n\\t\\t\\x3c!-- If item.input is set instead, an put will be used --\\x3e\\n\\t\\t<span v-else-if=\"item.input\" class=\"menuitem\" :class=\"{active: item.active}\">\\n\\t\\t\\t\\x3c!-- does not show if input is checkbox --\\x3e\\n\\t\\t\\t<span v-if=\"item.input !== \\'checkbox\\'\" :class=\"item.icon\" />\\n\\n\\t\\t\\t\\x3c!-- only shows if input is text --\\x3e\\n\\t\\t\\t<form v-if=\"item.input === \\'text\\'\"\\n\\t\\t\\t\\t:class=\"item.input\"\\n\\t\\t\\t\\t@submit.prevent=\"item.action\">\\n\\t\\t\\t\\t<input :type=\"item.input\"\\n\\t\\t\\t\\t\\t:value=\"item.value\"\\n\\t\\t\\t\\t\\t:placeholder=\"item.text\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\\n\\t\\t\\t</form>\\n\\n\\t\\t\\t\\x3c!-- checkbox --\\x3e\\n\\t\\t\\t<template v-else>\\n\\t\\t\\t\\t<input :id=\"key\"\\n\\t\\t\\t\\t\\tv-model=\"item.model\"\\n\\t\\t\\t\\t\\t:type=\"item.input\"\\n\\t\\t\\t\\t\\t:class=\"item.input\"\\n\\t\\t\\t\\t\\t@change=\"item.action\">\\n\\t\\t\\t\\t<label :for=\"key\" @click.stop.prevent=\"item.action\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t</template>\\n\\t\\t</span>\\n\\n\\t\\t\\x3c!-- If item.action is set instead, a button will be used --\\x3e\\n\\t\\t<button v-else-if=\"item.action\"\\n\\t\\t\\tclass=\"menuitem focusable\"\\n\\t\\t\\t:class=\"{active: item.active}\"\\n\\t\\t\\t:disabled=\"item.disabled\"\\n\\t\\t\\t@click.stop.prevent=\"item.action\">\\n\\t\\t\\t<span :class=\"item.icon\" />\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</button>\\n\\n\\t\\t\\x3c!-- If item.longtext is set AND the item does not have an action --\\x3e\\n\\t\\t<span v-else class=\"menuitem\" :class=\"{active: item.active}\">\\n\\t\\t\\t<span :class=\"item.icon\" />\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</span>\\n\\t</li>\\n</template>\\n\\n<style scoped>\\n\\tbutton.menuitem {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\tbutton.menuitem * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\tbutton.menuitem:disabled {\\n\\t\\topacity: 0.5 !important;\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\tbutton.menuitem:disabled * {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.menuitem.active {\\n\\t\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\t\\tborder-radius: 0;\\n\\t}\\n</style>\\n\\n<script>\\nexport default {\\n\\tname: \\'PopoverMenuItem\\',\\n\\tprops: {\\n\\t\\titem: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t\\tdefault: () => {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tkey: \\'nextcloud-link\\',\\n\\t\\t\\t\\t\\thref: \\'https://nextcloud.com\\',\\n\\t\\t\\t\\t\\ticon: \\'icon-links\\',\\n\\t\\t\\t\\t\\ttext: \\'Nextcloud\\',\\n\\t\\t\\t\\t}\\n\\t\\t\\t},\\n\\t\\t\\t// check the input types\\n\\t\\t\\t// TODO: add more validation of types\\n\\t\\t\\tvalidator: item => {\\n\\t\\t\\t\\t// TODO: support radio\\n\\t\\t\\t\\tif (item.input) {\\n\\t\\t\\t\\t\\treturn [\\'text\\', \\'checkbox\\'].indexOf(item.input) !== -1\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t},\\n\\t\\t},\\n\\t},\\n\\tcomputed: {\\n\\t\\t// random key for inputs binding if not provided\\n\\t\\tkey() {\\n\\t\\t\\treturn this.item.key\\n\\t\\t\\t\\t? this.item.key\\n\\t\\t\\t\\t: Math.round(Math.random() * 16 * 1000000).toString(16)\\n\\t\\t},\\n\\t\\ticonIsUrl() {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\t// eslint-disable-next-line no-new\\n\\t\\t\\t\\tnew URL(this.item.icon)\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t} catch (_) {\\n\\t\\t\\t\\treturn false\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\t// allow us to use both link and an action on `a`\\n\\t\\t// we still need to make sure item.action exists\\n\\t\\taction(event) {\\n\\t\\t\\tif (this.item.action) {\\n\\t\\t\\t\\tthis.item.action(event)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n<\\/script>\\n<style lang=\"scss\" scoped>\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^=\\'icon-\\'],\\n\\t\\tspan[class*=\\' icon-\\'],\\n\\t\\t&[class^=\\'icon-\\'],\\n\\t\\t&[class*=\\' icon-\\'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^=\\'icon-\\'],\\n\\t\\tspan[class*=\\' icon-\\'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^=\\'icon-\\']):not([class*=\\'icon-\\']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^=\\'icon-\\']):not([class*=\\'icon-\\']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^=\\'icon-\\'],\\n\\t\\t&[class*=\\' icon-\\'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\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// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\tpadding: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*=\\'display:none\\'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*=\\'display:none\\']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n</style>\\n'],sourceRoot:\"\"}]),n.a=r},61:function(t,n,e){\"use strict\";var i=e(0),a=e.n(i),o=e(1),r=e.n(o)()(a.a);r.push([t.i,\"li[data-v-3ad7b73b]{display:flex;flex:0 0 auto}li.hidden[data-v-3ad7b73b]{display:none}li>button[data-v-3ad7b73b],li>a[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{padding:0 14px 0 44px}li>button[data-v-3ad7b73b]:not(:disabled):hover,li>button[data-v-3ad7b73b]:not(:disabled):focus,li>button:not(:disabled).active[data-v-3ad7b73b],li>a[data-v-3ad7b73b]:not(:disabled):hover,li>a[data-v-3ad7b73b]:not(:disabled):focus,li>a:not(:disabled).active[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]:not(:disabled):hover,li>.menuitem[data-v-3ad7b73b]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-3ad7b73b]{opacity:1 !important}li>button.action[data-v-3ad7b73b],li>a.action[data-v-3ad7b73b],li>.menuitem.action[data-v-3ad7b73b]{padding:inherit !important}li>button>span[data-v-3ad7b73b],li>a>span[data-v-3ad7b73b],li>.menuitem>span[data-v-3ad7b73b]{cursor:pointer;white-space:nowrap}li>button>p[data-v-3ad7b73b],li>a>p[data-v-3ad7b73b],li>.menuitem>p[data-v-3ad7b73b]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-3ad7b73b],li>a>select[data-v-3ad7b73b],li>.menuitem>select[data-v-3ad7b73b]{margin:0;margin-left:6px}li>button[data-v-3ad7b73b]:not(:empty),li>a[data-v-3ad7b73b]:not(:empty),li>.menuitem[data-v-3ad7b73b]:not(:empty){padding-right:14px !important}li>button>img[data-v-3ad7b73b],li>a>img[data-v-3ad7b73b],li>.menuitem>img[data-v-3ad7b73b]{width:44px;padding:14px}li>button>input.radio+label[data-v-3ad7b73b],li>button>input.checkbox+label[data-v-3ad7b73b],li>a>input.radio+label[data-v-3ad7b73b],li>a>input.checkbox+label[data-v-3ad7b73b],li>.menuitem>input.radio+label[data-v-3ad7b73b],li>.menuitem>input.checkbox+label[data-v-3ad7b73b]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-3ad7b73b]::before,li>a>input.checkbox+label[data-v-3ad7b73b]::before,li>.menuitem>input.checkbox+label[data-v-3ad7b73b]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-3ad7b73b]::before,li>a>input.radio+label[data-v-3ad7b73b]::before,li>.menuitem>input.radio+label[data-v-3ad7b73b]::before{margin:-2px 12px 0}li>button>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-3ad7b73b],li>a form[data-v-3ad7b73b],li>.menuitem form[data-v-3ad7b73b]{display:flex;flex:1 1 auto}li>button form[data-v-3ad7b73b]:not(:first-child),li>a form[data-v-3ad7b73b]:not(:first-child),li>.menuitem form[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-3ad7b73b],li>button>span[style*='display:none']+form[data-v-3ad7b73b],li>a>span.hidden+form[data-v-3ad7b73b],li>a>span[style*='display:none']+form[data-v-3ad7b73b],li>.menuitem>span.hidden+form[data-v-3ad7b73b],li>.menuitem>span[style*='display:none']+form[data-v-3ad7b73b]{margin-left:0}li>button input[data-v-3ad7b73b],li>a input[data-v-3ad7b73b],li>.menuitem input[data-v-3ad7b73b]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-3ad7b73b]:not(:first-child),li>a input[data-v-3ad7b73b]:not(:first-child),li>.menuitem input[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-3ad7b73b]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-3ad7b73b]{margin-bottom:12px}li>button[data-v-3ad7b73b]{padding:0}li>button span[data-v-3ad7b73b]{opacity:1}\\n\",\"\",{version:3,sources:[\"webpack://./PopoverMenuItem.vue\",\"webpack://./../../assets/variables.scss\"],names:[],mappings:\"AA2MA,oBACC,YAAa,CACb,aAAc,CAFf,2BAKE,YAAa,CALf,+EAWE,cAAe,CACf,gBC9LmB,CD+LnB,QAAS,CACT,eAAgB,CAChB,4BAA6B,CAC7B,YAAa,CACb,sBAAuB,CACvB,WAAY,CACZ,QAAS,CACT,SAAU,CACV,kBAAmB,CACnB,eAAgB,CAChB,UAAW,CACX,4BAA6B,CAC7B,kBAAmB,CACnB,UC1LiB,CDgKnB,giBAiCG,WAAY,CACZ,YAAa,CACb,+BAA2C,CAC3C,oBClNa,CD8KhB,+RA2CG,wBC7NkB,CDkLrB,iqCAoDK,gBCtOgB,CDkLrB,iQA2DG,qBC7OkB,CDkLrB,6aAiEG,oBAAiC,CAjEpC,oGAsEG,0BAA2B,CAtE9B,8FA0EG,cAAe,CACf,kBAAmB,CA3EtB,qFAgFG,WAAY,CACZ,iBAAkB,CAClB,aAAc,CACd,kBAAmB,CAnFtB,oGAwFG,QAAS,CACT,eAAgB,CAzFnB,mHA8FG,6BAAsC,CA9FzC,2FAoGG,UCtRkB,CDuRlB,YC/Q6C,CD0KhD,mRA2GG,oBAAqB,CACrB,UAAW,CA5Gd,sKA+GG,kBAAmB,CA/GtB,6JAkHG,kBAAmB,CAlHtB,4QAqHG,WAAY,CArHf,8FA0HG,YAAa,CACb,aAAc,CA3HjB,oJA+HI,eAAgB,CA/HpB,oTAqIG,aAAc,CArIjB,iGAyIG,cC3TkB,CD4TlB,eAAY,CACZ,YAAa,CACb,aAAc,CA5IjB,uJA+II,eAAgB,CA/IpB,+gBA0JK,eAA8B,CA1JnC,ygBAiKK,kBAAiC,CAjKtC,2BAuKE,SAAU,CAvKZ,gCAyKG,SCxUa\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'],\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^='icon-']):not([class*='icon-']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^='icon-']):not([class*='icon-']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\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// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\tpadding: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*='display:none'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*='display:none']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($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\"],sourceRoot:\"\"}]),n.a=r},62:function(t,n,e){\"use strict\";var i=e(0),a=e.n(i),o=e(1),r=e.n(o)()(a.a);r.push([t.i,\"ul[data-v-81c2afc0]{display:flex;flex-direction:column}\\n\",\"\",{version:3,sources:[\"webpack://./PopoverMenu.vue\"],names:[],mappings:\"AA0DA,oBACC,YAAa,CACb,qBAAsB\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nul {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\"],sourceRoot:\"\"}]),n.a=r},63:function(t,n){},74:function(t,n,e){\"use strict\";e.r(n);e(13),e(19),e(6),e(16),e(20),e(21),e(35);var i={name:\"PopoverMenuItem\",props:{item:{type:Object,required:!0,default:function(){return{key:\"nextcloud-link\",href:\"https://nextcloud.com\",icon:\"icon-links\",text:\"Nextcloud\"}},validator:function(t){return!t.input||-1!==[\"text\",\"checkbox\"].indexOf(t.input)}}},computed:{key:function(){return this.item.key?this.item.key:Math.round(16*Math.random()*1e6).toString(16)},iconIsUrl:function(){try{return new URL(this.item.icon),!0}catch(t){return!1}}},methods:{action:function(t){this.item.action&&this.item.action(t)}}},a=e(2),o=e.n(a),r=e(60),s={insert:\"head\",singleton:!1},l=(o()(r.a,s),r.a.locals,e(61)),c={insert:\"head\",singleton:!1},d=(o()(l.a,c),l.a.locals,e(3)),p={name:\"PopoverMenu\",components:{PopoverMenuItem:Object(d.a)(i,(function(){var t=this,n=t.$createElement,e=t._self._c||n;return e(\"li\",[t.item.href?e(\"a\",{staticClass:\"focusable\",attrs:{href:t.item.href?t.item.href:\"#\",target:t.item.target?t.item.target:\"\",download:t.item.download,rel:\"noreferrer noopener\"},on:{click:t.action}},[t.iconIsUrl?e(\"img\",{attrs:{src:t.item.icon}}):e(\"span\",{class:t.item.icon}),t._v(\" \"),t.item.text&&t.item.longtext?e(\"p\",[e(\"strong\",{staticClass:\"menuitem-text\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\\t\")]),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"menuitem-text-detail\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\\t\")])]):t.item.text?e(\"span\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\")]):t.item.longtext?e(\"p\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\")]):t._e()]):t.item.input?e(\"span\",{staticClass:\"menuitem\",class:{active:t.item.active}},[\"checkbox\"!==t.item.input?e(\"span\",{class:t.item.icon}):t._e(),t._v(\" \"),\"text\"===t.item.input?e(\"form\",{class:t.item.input,on:{submit:function(n){return n.preventDefault(),t.item.action(n)}}},[e(\"input\",{attrs:{type:t.item.input,placeholder:t.item.text,required:\"\"},domProps:{value:t.item.value}}),t._v(\" \"),e(\"input\",{staticClass:\"icon-confirm\",attrs:{type:\"submit\",value:\"\"}})]):[\"checkbox\"===t.item.input?e(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.item.model,expression:\"item.model\"}],class:t.item.input,attrs:{id:t.key,type:\"checkbox\"},domProps:{checked:Array.isArray(t.item.model)?t._i(t.item.model,null)>-1:t.item.model},on:{change:[function(n){var e=t.item.model,i=n.target,a=!!i.checked;if(Array.isArray(e)){var o=t._i(e,null);i.checked?o<0&&t.$set(t.item,\"model\",e.concat([null])):o>-1&&t.$set(t.item,\"model\",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.item,\"model\",a)},t.item.action]}}):\"radio\"===t.item.input?e(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.item.model,expression:\"item.model\"}],class:t.item.input,attrs:{id:t.key,type:\"radio\"},domProps:{checked:t._q(t.item.model,null)},on:{change:[function(n){return t.$set(t.item,\"model\",null)},t.item.action]}}):e(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:t.item.model,expression:\"item.model\"}],class:t.item.input,attrs:{id:t.key,type:t.item.input},domProps:{value:t.item.model},on:{change:t.item.action,input:function(n){n.target.composing||t.$set(t.item,\"model\",n.target.value)}}}),t._v(\" \"),e(\"label\",{attrs:{for:t.key},on:{click:function(n){return n.stopPropagation(),n.preventDefault(),t.item.action(n)}}},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\\t\")])]],2):t.item.action?e(\"button\",{staticClass:\"menuitem focusable\",class:{active:t.item.active},attrs:{disabled:t.item.disabled},on:{click:function(n){return n.stopPropagation(),n.preventDefault(),t.item.action(n)}}},[e(\"span\",{class:t.item.icon}),t._v(\" \"),t.item.text&&t.item.longtext?e(\"p\",[e(\"strong\",{staticClass:\"menuitem-text\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\\t\")]),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"menuitem-text-detail\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\\t\")])]):t.item.text?e(\"span\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\")]):t.item.longtext?e(\"p\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\")]):t._e()]):e(\"span\",{staticClass:\"menuitem\",class:{active:t.item.active}},[e(\"span\",{class:t.item.icon}),t._v(\" \"),t.item.text&&t.item.longtext?e(\"p\",[e(\"strong\",{staticClass:\"menuitem-text\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\\t\")]),e(\"br\"),t._v(\" \"),e(\"span\",{staticClass:\"menuitem-text-detail\"},[t._v(\"\\n\\t\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\\t\")])]):t.item.text?e(\"span\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.text)+\"\\n\\t\\t\")]):t.item.longtext?e(\"p\",[t._v(\"\\n\\t\\t\\t\"+t._s(t.item.longtext)+\"\\n\\t\\t\")]):t._e()])])}),[],!1,null,\"3ad7b73b\",null).exports},props:{menu:{type:Array,default:function(){return[{href:\"https://nextcloud.com\",icon:\"icon-links\",text:\"Nextcloud\"}]},required:!0}}},u=e(62),m={insert:\"head\",singleton:!1},b=(o()(u.a,m),u.a.locals,e(63)),f=e.n(b),h=Object(d.a)(p,(function(){var t=this.$createElement,n=this._self._c||t;return n(\"ul\",this._l(this.menu,(function(t,e){return n(\"PopoverMenuItem\",{key:e,attrs:{item:t}})})),1)}),[],!1,null,\"81c2afc0\",null);\"function\"==typeof f.a&&f()(h);var v=h.exports;\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */n.default=v}})}));\n//# sourceMappingURL=PopoverMenu.js.map","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"Components/Multiselect\",[],t):\"object\"==typeof exports?exports[\"Components/Multiselect\"]=t():(e.NextcloudVue=e.NextcloudVue||{},e.NextcloudVue[\"Components/Multiselect\"]=t())}(window,(function(){return function(e){var t={};function n(s){if(t[s])return t[s].exports;var o=t[s]={i:s,l:!1,exports:{}};return e[s].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,s){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(s,o,function(t){return e[t]}.bind(null,o));return s},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"/dist/\",n(n.s=130)}([function(e,t,n){\"use strict\";function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],s=!0,o=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(s=(i=a.next()).done)&&(n.push(i.value),!t||n.length!==t);s=!0);}catch(e){o=!0,r=e}finally{try{s||null==a.return||a.return()}finally{if(o)throw r}}return n}(e,t)||function(e,t){if(!e)return;if(\"string\"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,s=new Array(t);n<t;n++)s[n]=e[n];return s}e.exports=function(e){var t=s(e,4),n=t[1],o=t[3];if(\"function\"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),i=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),a=\"/*# \".concat(i,\" */\"),c=o.sources.map((function(e){return\"/*# sourceURL=\".concat(o.sourceRoot||\"\").concat(e,\" */\")}));return[n].concat(c).concat([a]).join(\"\\n\")}return[n].join(\"\\n\")}},function(e,t,n){\"use strict\";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?\"@media \".concat(t[2],\" {\").concat(n,\"}\"):n})).join(\"\")},t.i=function(e,n,s){\"string\"==typeof e&&(e=[[null,e,\"\"]]);var o={};if(s)for(var r=0;r<this.length;r++){var i=this[r][0];null!=i&&(o[i]=!0)}for(var a=0;a<e.length;a++){var c=[].concat(e[a]);s&&o[c[0]]||(n&&(c[2]?c[2]=\"\".concat(n,\" and \").concat(c[2]):c[2]=n),t.push(c))}},t}},function(e,t,n){\"use strict\";var s,o=function(){return void 0===s&&(s=Boolean(window&&document&&document.all&&!window.atob)),s},r=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function a(e){for(var t=-1,n=0;n<i.length;n++)if(i[n].identifier===e){t=n;break}return t}function c(e,t){for(var n={},s=[],o=0;o<e.length;o++){var r=e[o],c=t.base?r[0]+t.base:r[0],m=n[c]||0,A=\"\".concat(c,\" \").concat(m);n[c]=m+1;var l=a(A),g={css:r[1],media:r[2],sourceMap:r[3]};-1!==l?(i[l].references++,i[l].updater(g)):i.push({identifier:A,updater:v(g,t),references:1}),s.push(A)}return s}function m(e){var t=document.createElement(\"style\"),s=e.attributes||{};if(void 0===s.nonce){var o=n.nc;o&&(s.nonce=o)}if(Object.keys(s).forEach((function(e){t.setAttribute(e,s[e])})),\"function\"==typeof e.insert)e.insert(t);else{var i=r(e.insert||\"head\");if(!i)throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");i.appendChild(t)}return t}var A,l=(A=[],function(e,t){return A[e]=t,A.filter(Boolean).join(\"\\n\")});function g(e,t,n,s){var o=n?\"\":s.media?\"@media \".concat(s.media,\" {\").concat(s.css,\"}\"):s.css;if(e.styleSheet)e.styleSheet.cssText=l(t,o);else{var r=document.createTextNode(o),i=e.childNodes;i[t]&&e.removeChild(i[t]),i.length?e.insertBefore(r,i[t]):e.appendChild(r)}}function u(e,t,n){var s=n.css,o=n.media,r=n.sourceMap;if(o?e.setAttribute(\"media\",o):e.removeAttribute(\"media\"),r&&\"undefined\"!=typeof btoa&&(s+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r)))),\" */\")),e.styleSheet)e.styleSheet.cssText=s;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(s))}}var d=null,p=0;function v(e,t){var n,s,o;if(t.singleton){var r=p++;n=d||(d=m(t)),s=g.bind(null,n,r,!1),o=g.bind(null,n,r,!0)}else n=m(t),s=u.bind(null,n,t),o=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return s(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;s(e=t)}else o()}}e.exports=function(e,t){(t=t||{}).singleton||\"boolean\"==typeof t.singleton||(t.singleton=o());var n=c(e=e||[],t);return function(e){if(e=e||[],\"[object Array]\"===Object.prototype.toString.call(e)){for(var s=0;s<n.length;s++){var o=a(n[s]);i[o].references--}for(var r=c(e,t),m=0;m<n.length;m++){var A=a(n[m]);0===i[A].references&&(i[A].updater(),i.splice(A,1))}n=r}}}},function(e,t,n){\"use strict\";function s(e,t,n,s,o,r,i,a){var c,m=\"function\"==typeof e?e.options:e;if(t&&(m.render=t,m.staticRenderFns=n,m._compiled=!0),s&&(m.functional=!0),r&&(m._scopeId=\"data-v-\"+r),i?(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__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},m._ssrRegister=c):o&&(c=a?function(){o.call(this,(m.functional?this.parent:this).$root.$options.shadowRoot)}:o),c)if(m.functional){m._injectStyles=c;var A=m.render;m.render=function(e,t){return c.call(t),A(e,t)}}else{var l=m.beforeCreate;m.beforeCreate=l?[].concat(l,c):[c]}return{exports:e,options:m}}n.d(t,\"a\",(function(){return s}))},function(e,t,n){\"use strict\";e.exports=function(e,t){return t||(t={}),\"string\"!=typeof(e=e&&e.__esModule?e.default:e)?e:(/^['\"].*['\"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/[\"'() \\t\\n]/.test(e)||t.needQuotes?'\"'.concat(e.replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\"),'\"'):e)}},function(e,t){e.exports=require(\"vue\")},function(e,t){e.exports=require(\"core-js/modules/es.object.to-string\")},function(e,t,n){\"use strict\";t.a=\"data:application/vnd.ms-fontobject;base64,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\"},function(e,t,n){\"use strict\";t.a=\"data:font/woff;base64,d09GRgABAAAAAA8sAAoAAAAADuQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgdOOP0WNtYXAAAAFUAAABQgAAAUIADeu4Z2x5ZgAAApgAAAf8AAAH/MdHOUxoZWFkAAAKlAAAADYAAAA2Kd5WPmhoZWEAAArMAAAAJAAAACQm/ROFaG10eAAACvAAAAA0AAAANGe+//9sb2NhAAALJAAAACgAAAAoDbwPZm1heHAAAAtMAAAAIAAAACABIABXbmFtZQAAC2wAAAKmAAACphEg7MBwb3N0AAAOFAAAARYAAAEWP1S+1wAEEsoBkAAFAAAMZQ2sAAACvAxlDawAAAlgAPUFCgAAAgAFAwAAAAAAAAAAAAAQAAAAAAAAAAAAAABQZkVkAEDqAeoSE4gAAAHCE4gAAAAAAAEAAAAAAAAAAAAAACAAAAAAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAABAAEAAEAAOoS//8AAOoB//8WAAABAAAAAAAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAA6mD0MABQALAAAJAhEJBBEJAQ6m+oIFfvu6BEb6gvqCBX77ugRGD0L6gvqCATgERgRGATj6gvqCATgERgRGAAEAAAAADW4SUAAFAAAJAREJAREGGwdT93QIjAnE+K3+yAiLCIz+xwACAAAAAA/fD0MABQALAAAJAhEJBBEJAQTiBX76ggRG+7oFfgV/+oEERvu6BEYFfgV+/sj7uvu6/sgFfgV+/sj7uvu6AAEAAAAADqYSUAAFAAAJAREJARENbvitCIv3dQnEB1MBOfd093UBOAABAAAAAAY3E4gABQAAEwcJARcBlJQFcvqOlAWjE4hV9pH2kVUJxAAAAQAAAAARhw+DAAUAAAkFD8338/v7/kYFvwnHD4P38wQF/kf6QQnGAAEAAAAAERcRFwALAAAJCxEX/e36wPrA/e0FQPrAAhMFQAVAAhP6wASE/e0FQPrAAhMFQAVAAhP6wAVA/e36wAAB//8AABOTEuwAMwAAASIHDgEXFhcBISYHBgcGBwYUFxYXFhcWNyEBBgcGFxYXHgEXFhcWNzY3ATY3NicmJwEuAQpgZU9KRhASSAXX8eBNPjopJxQUFBQnKTo+TQ4g+ik3GhgDAxsZVjU3Oz46PzUH7TsVFRQVPPgTLHQS7Dk0rFlgR/oqARsYLiw5OHg4OSwuGBsC+ik1Pzs+Ojc2VhkaAwMYGTgH7DxRUE9SPAfsLTIAAAACAAAAAA6mElAAGABGAAABIgcOAQcGFBceARcWMjc+ATc2NCcuAScmASIHBgcGFBcWFxYzIREhIgcGBwYUFxYXFjchMjc2NzY0JyYnJiMhETQnJicmIwl2b2ZimCkrKymYYmbeZmKXKisrKpdiZvw2VkhHKSsrKUdIVgJx/Y9WSEcpKyspR0hWB1NVSEcpKyspR0hV/Y8rKUdJVRJQKyqXY2XfZWKYKSsrKZhiZd9lY5cqK/nlKylHSKtIRykr+eYrKUdJqklHKSsBKilHSapJRykrB1NVSEcpKwAAAwAAAAARFxEXAAMABwALAAABESERAREhEQERIRECcQ6m8VoOpvFaDqYRF/2PAnH55v2PAnH55f2PAnEAAwAAAAASngvnABgAMQBKAAABMhceARcWFAcOAQcGIicuAScmNDc+ATc2ITIXHgEXFhQHDgEHBiInLgEnJjQ3PgE3NiEyFx4BFxYUBw4BBwYiJy4BJyY0Nz4BNzYDDXBlYpgpKyspmGJl32ZilyorKyqXYmYHJm9mYpcqKysql2Jm3mZilyorKyqXYmYHJm9mYpcqKysql2Jm32VimCkrKymYYmUL5ysql2Jm3mZilyorKyqXYmbeZmKXKisrKpdiZt5mYpcqKysql2Jm3mZilyorKyqXYmbeZmKXKisrKpdiZt5mYpcqKwAAAAACAAAAAA/fD98AAwAHAAABESERIREhEQOqBOICcQTiD9/zyww188sMNQAAAAEAAAAAERcRFwACAAAJAgJxDqbxWhEX+K34rQABAAAAAA6mDDUAAgAACQIE4gTiBOIMNfseBOAAAf/gAAATaRNpADEAAAEEBQQFBAMCAwIREBMSExIFBAUEISAlJCUkExITEhMGAAUEISAlJCcmJyYDAhEQExIACGz+mP6x/rr+7f7uxsprboB76eUBOQE8AXIBfgGWAXEBYQFWAS4BKuvsmZw4vP4p/vn+8/7q/r7+zv7Z/fu4u2NnUE4BJxNpLpeT6ef+1/7T/qv+n/6P/mr+gv6O/sT+x+XofIBraMXCAQ0BDgFDAUsBacz+2k5QZ2O7uPv9AScBMgFCASUBEwENAcsAAgAAAAATiBOIACQAQAAAASAFBAUEAwIDAhATEhMSBQQFBCAlJCUkExITEhADAgMCJSQlJAEhMhceARcWFAcOAQcGIyEiJy4BJyY0Nz4BNzYJxP5q/oL+jv7E/sfl6HyAgHzo5QE5ATwBcgF+AywBfgFyATwBOeXofICAfOjl/sf+xP6O/oL6wQdTW1dUhCQmJiSEVFdb+K1cV1SEJCYmJIRUVxOIgHzo5f7H/sT+jv6C/NT+gv6O/sT+x+XofICAfOjlATkBPAFyAX4DLAF+AXIBPAE55eh8gPgRJiWEU1e4V1OEJSYmJYRTV7hXU4QlJgAAAAIAAAAAE4gTiAAkAD0AAAEgBQQFBAMCAwIQExITEgUEBQQgJSQlJBMSExIQAwIDAiUkJSQBIAUEABMSEAMCAAUEICUkAAMCEBMSACUkCcT+av6C/o7+xP7H5eh8gIB86OUBOQE8AXIBfgMsAX4BcgE8ATnl6HyAgHzo5f7H/sT+jv6C/moBNwEXAQ8Bm3B0dHD+Zf7x/un9kv7p/vH+ZXB0dHABmwEPARcTiIB86OX+x/7E/o7+gvzU/oL+jv7E/sfl6HyAgHzo5QE5ATwBcgF+AywBfgFyATwBOeXofID8GHRw/mX+8f7p/ZL+6f7x/mVwdHRwAZsBDwEXAm4BFwEPAZtwdAAAAAIAAAAAE4gTiAADACgAAAEhESEBIAUEBQQDAgMCEBMSExIFBAUEICUkJSQTEhMSEAMCAwIlJCUkBdwH0PgwA+j+av6C/o7+xP7H5eh8gIB86OUBOQE8AXIBfgMsAX4BcgE8ATnl6HyAgHzo5f7H/sT+jv6CBdwH0AXcgHzo5f7H/sT+jv6C/NT+gv6O/sT+x+XofICAfOjlATkBPAFyAX4DLAF+AXIBPAE55eh8gAAAAQAAAAEAAP1OmNVfDzz1AAsTiAAAAADbzucYAAAAANt+Cxn/4AAAE5MTiAAAAAgAAgAAAAAAAAABAAATiAAAAAATiP/g//UTkwABAAAAAAAAAAAAAAAAAAAABwAAAAATiAAAE4gAABOIAAATiAAABjYAABOIAAAAAP//AAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAACIANgBYAGwAgACUALQBDgF8AZoCEAImAjQCQgKoAyIDpgP+AAEAAAATAEsAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAAAQAMYAAQAAAAAAAQAUAAAAAQAAAAAAAgAHABQAAQAAAAAAAwAUABsAAQAAAAAABAAUAC8AAQAAAAAABQALAEMAAQAAAAAABgAUAE4AAQAAAAAACgArAGIAAQAAAAAACwATAI0AAwABBAkAAQAoAKAAAwABBAkAAgAOAMgAAwABBAkAAwAoANYAAwABBAkABAAoAP4AAwABBAkABQAWASYAAwABBAkABgAoATwAAwABBAkACgBWAWQAAwABBAkACwAmAbppY29uZm9udC12dWUtNTlmMTIxNFJlZ3VsYXJpY29uZm9udC12dWUtNTlmMTIxNGljb25mb250LXZ1ZS01OWYxMjE0VmVyc2lvbiAxLjBpY29uZm9udC12dWUtNTlmMTIxNEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtADUAOQBmADEAMgAxADQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAACAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAATABMAAAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBExFhcnJvdy1sZWZ0LWRvdWJsZQphcnJvdy1sZWZ0EmFycm93LXJpZ2h0LWRvdWJsZQthcnJvdy1yaWdodApicmVhZGNydW1iCWNoZWNrbWFyawVjbG9zZQdjb25maXJtBGluZm8EbWVudQRtb3JlBXBhdXNlBHBsYXkKdHJpYW5nbGUtcxB1c2VyLXN0YXR1cy1hd2F5D3VzZXItc3RhdHVzLWRuZBV1c2VyLXN0YXR1cy1pbnZpc2libGUSdXNlci1zdGF0dXMtb25saW5lAAA=\"},function(e,t,n){\"use strict\";t.a=\"data:font/ttf;base64,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AAATiP/g//UTkwABAAAAAAAAAAAAAAAAAAAABwAAAAATiAAAE4gAABOIAAATiAAABjYAABOIAAAAAP//AAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAACIANgBYAGwAgACUALQBDgF8AZoCEAImAjQCQgKoAyIDpgP+AAEAAAATAEsAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAAAQAMYAAQAAAAAAAQAUAAAAAQAAAAAAAgAHABQAAQAAAAAAAwAUABsAAQAAAAAABAAUAC8AAQAAAAAABQALAEMAAQAAAAAABgAUAE4AAQAAAAAACgArAGIAAQAAAAAACwATAI0AAwABBAkAAQAoAKAAAwABBAkAAgAOAMgAAwABBAkAAwAoANYAAwABBAkABAAoAP4AAwABBAkABQAWASYAAwABBAkABgAoATwAAwABBAkACgBWAWQAAwABBAkACwAmAbppY29uZm9udC12dWUtNTlmMTIxNFJlZ3VsYXJpY29uZm9udC12dWUtNTlmMTIxNGljb25mb250LXZ1ZS01OWYxMjE0VmVyc2lvbiAxLjBpY29uZm9udC12dWUtNTlmMTIxNEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABSAGUAZwB1AGwAYQByAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABpAGMAbwBuAGYAbwBuAHQALQB2AHUAZQAtADUAOQBmADEAMgAxADQAVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0ANQA5AGYAMQAyADEANABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAACAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAATABMAAAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBExFhcnJvdy1sZWZ0LWRvdWJsZQphcnJvdy1sZWZ0EmFycm93LXJpZ2h0LWRvdWJsZQthcnJvdy1yaWdodApicmVhZGNydW1iCWNoZWNrbWFyawVjbG9zZQdjb25maXJtBGluZm8EbWVudQRtb3JlBXBhdXNlBHBsYXkKdHJpYW5nbGUtcxB1c2VyLXN0YXR1cy1hd2F5D3VzZXItc3RhdHVzLWRuZBV1c2VyLXN0YXR1cy1pbnZpc2libGUSdXNlci1zdGF0dXMtb25saW5lAAA=\"},function(e,t,n){\"use strict\";t.a=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48bWV0YWRhdGE+PC9tZXRhZGF0YT48ZGVmcz48Zm9udCBpZD0iaWNvbmZvbnQtdnVlLTU5ZjEyMTQiIGhvcml6LWFkdi14PSI1MDAwIj48Zm9udC1mYWNlIGZvbnQtZmFtaWx5PSJpY29uZm9udC12dWUtNTlmMTIxNCIgZm9udC13ZWlnaHQ9IjQwMCIgZm9udC1zdHJldGNoPSJub3JtYWwiIHVuaXRzLXBlci1lbT0iNTAwMCIgcGFub3NlLTE9IjIgMCA1IDMgMCAwIDAgMCAwIDAiIGFzY2VudD0iNTAwMCIgZGVzY2VudD0iMCIgeC1oZWlnaHQ9IjAiIGJib3g9Ii0zMiAwIDUwMTEgNTAwMCIgdW5kZXJsaW5lLXRoaWNrbmVzcz0iMCIgdW5kZXJsaW5lLXBvc2l0aW9uPSI1MCIgdW5pY29kZS1yYW5nZT0iVStlYTAxLWVhMTIiIC8+PG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjAiICAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1sZWZ0LWRvdWJsZSIgdW5pY29kZT0iJiN4ZWEwMTsiIGQ9Ik0zNzUwIDM5MDYgbC0xNDA2IC0xNDA2IGwxNDA2IC0xNDA2IGwwIDMxMiBsLTEwOTQgMTA5NCBsMTA5NCAxMDk0IGwwIDMxMiBaTTIzNDQgMzkwNiBsLTE0MDYgLTE0MDYgbDE0MDYgLTE0MDYgbDAgMzEyIGwtMTA5NCAxMDk0IGwxMDk0IDEwOTQgbDAgMzEyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LWxlZnQiIHVuaWNvZGU9IiYjeGVhMDI7IiBkPSJNMTU2MyAyNTAwIGwxODc1IC0xODc1IGwwIC0zMTIgbC0yMTg4IDIxODcgbDIxODggMjE4OCBsMCAtMzEzIGwtMTg3NSAtMTg3NSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1yaWdodC1kb3VibGUiIHVuaWNvZGU9IiYjeGVhMDM7IiBkPSJNMTI1MCAxMDk0IGwxNDA2IDE0MDYgbC0xNDA2IDE0MDYgbDAgLTMxMiBsMTA5NCAtMTA5NCBsLTEwOTQgLTEwOTQgbDAgLTMxMiBaTTI2NTYgMTA5NCBsMTQwNyAxNDA2IGwtMTQwNyAxNDA2IGwwIC0zMTIgbDEwOTQgLTEwOTQgbC0xMDk0IC0xMDk0IGwwIC0zMTIgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctcmlnaHQiIHVuaWNvZGU9IiYjeGVhMDQ7IiBkPSJNMzQzOCAyNTAwIGwtMTg3NSAxODc1IGwwIDMxMyBsMjE4NyAtMjE4OCBsLTIxODcgLTIxODcgbDAgMzEyIGwxODc1IDE4NzUgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYnJlYWRjcnVtYiIgdW5pY29kZT0iJiN4ZWEwNTsiIGQ9Ik0xNDggNTAwMCBsLTE0OCAtODUgbDEzOTQgLTI0MTUgbC0xMzk0IC0yNDE1IGwxNDggLTg1IGwxNDQzIDI1MDAgbC0xNDQzIDI1MDAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2ttYXJrIiB1bmljb2RlPSImI3hlYTA2OyIgZD0iTTQwNDUgMzk3MSBsLTIwNjEgLTIwNjEgbC0xMDI5IDEwMjkgbC00NDIgLTQ0MSBsMTQ3MSAtMTQ3MSBsMjUwMyAyNTAyIGwtNDQyIDQ0MiBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJjbG9zZSIgdW5pY29kZT0iJiN4ZWEwNzsiIGQ9Ik00Mzc1IDExNTYgbC01MzEgLTUzMSBsLTEzNDQgMTM0NCBsLTEzNDQgLTEzNDQgbC01MzEgNTMxIGwxMzQ0IDEzNDQgbC0xMzQ0IDEzNDQgbDUzMSA1MzEgbDEzNDQgLTEzNDQgbDEzNDQgMTM0NCBsNTMxIC01MzEgbC0xMzQ0IC0xMzQ0IGwxMzQ0IC0xMzQ0IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImNvbmZpcm0iIHVuaWNvZGU9IiYjeGVhMDg7IiBkPSJNMjY1NiA0ODQ0IHEtMTAxIDAgLTE4MCAtNTcgcS03NCAtNTIgLTEwOSAtMTM4IHEtMzUgLTg2IC0xOSAtMTc1IHExOCAtOTYgOTAgLTE2NyBsMTQ5NSAtMTQ5NCBsLTM2MTYgMCBxLTc3IDEgLTEzOSAtMjYgcS01OCAtMjQgLTk5IC03MCBxLTM5IC00NCAtNTkgLTEwMSBxLTIwIC01NiAtMjAgLTExNiBxMCAtNjAgMjAgLTExNiBxMjAgLTU3IDU5IC0xMDEgcTQxIC00NiA5OSAtNzAgcTYyIC0yNyAxMzkgLTI1IGwzNjE2IDAgbC0xNDk1IC0xNDk1IHEtNTUgLTUzIC04MSAtMTE2IHEtMjQgLTU5IC0yMSAtMTIxIHEzIC01OCAzMCAtMTEzIHEyNSAtNTQgNjggLTk3IHE0MyAtNDMgOTYgLTY4IHE1NSAtMjYgMTE0IC0yOSBxNjIgLTMgMTIwIDIxIHE2MyAyNSAxMTYgODEgbDIwMjkgMjAyOCBxNTkgNjAgODAgMTQxIHEyMSA4MCAxIDE1OSBxLTIxIDgyIC04MSAxNDIgbC0yMDI5IDIwMjggcS00NCA0NSAtMTAyIDcwIHEtNTggMjUgLTEyMiAyNSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJpbmZvIiB1bmljb2RlPSImI3hlYTA5OyIgZD0iTTI0MjIgNDY4OCBxLTExMSAwIC0yMTMgLTQzIHEtOTggLTQyIC0xNzQgLTExNy41IHEtNzYgLTc1LjUgLTExNyAtMTc0LjUgcS00MyAtMTAxIC00MyAtMjEyLjUgcTAgLTExMS41IDQzIC0yMTIuNSBxNDEgLTk4IDExNyAtMTc0IHE3NiAtNzYgMTc0IC0xMTcgcTEwMiAtNDMgMjEzIC00MyBxMTExIDAgMjEzIDQzIHE5OCA0MSAxNzMuNSAxMTcgcTc1LjUgNzYgMTE3LjUgMTc0IHE0MyAxMDEgNDMgMjEyLjUgcTAgMTExLjUgLTQzIDIxMi41IHEtNDIgOTkgLTExNy41IDE3NC41IHEtNzUuNSA3NS41IC0xNzMuNSAxMTcuNSBxLTEwMiA0MyAtMjEzIDQzIFpNMTU2MyAzMTI1IHEtODYgMCAtMTU4IC00MyBxLTcxIC00MSAtMTEyIC0xMTIgcS00MyAtNzIgLTQzIC0xNTcuNSBxMCAtODUuNSA0MyAtMTU3LjUgcTQxIC03MSAxMTIgLTExMiBxNzIgLTQzIDE1OCAtNDMgbDYyNSAwIGwwIC0xNTYyIGwtNjI1IDAgcS04NiAwIC0xNTggLTQzIHEtNzEgLTQxIC0xMTIgLTExMiBxLTQzIC03MyAtNDMgLTE1OCBxMCAtODUgNDMgLTE1OCBxNDEgLTcxIDExMiAtMTEyIHE3MiAtNDMgMTU4IC00MiBsMTg3NSAwIHE4NSAwIDE1NyA0MiBxNzEgNDEgMTEyIDExMiBxNDMgNzMgNDMgMTU4IHEwIDg1IC00MyAxNTggcS00MSA3MSAtMTEyIDExMiBxLTcyIDQzIC0xNTcgNDMgbC02MjUgMCBsMCAxODc1IHEwIDg1IC00MyAxNTcgcS00MSA3MSAtMTEyIDExMiBxLTczIDQzIC0xNTggNDMgbC05MzcgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJtZW51IiB1bmljb2RlPSImI3hlYTBhOyIgZD0iTTYyNSA0Mzc1IGwwIC02MjUgbDM3NTAgMCBsMCA2MjUgbC0zNzUwIDAgWk02MjUgMjgxMyBsMCAtNjI1IGwzNzUwIDAgbDAgNjI1IGwtMzc1MCAwIFpNNjI1IDEyNTAgbDAgLTYyNSBsMzc1MCAwIGwwIDYyNSBsLTM3NTAgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJtb3JlIiB1bmljb2RlPSImI3hlYTBiOyIgZD0iTTc4MSAzMDQ3IHExMTIgMCAyMTMgLTQzIHE5OCAtNDIgMTc0IC0xMTcuNSBxNzYgLTc1LjUgMTE3IC0xNzMuNSBxNDMgLTEwMiA0MyAtMjEzIHEwIC0xMTEgLTQzIC0yMTMgcS00MSAtOTggLTExNyAtMTczLjUgcS03NiAtNzUuNSAtMTc0IC0xMTcuNSBxLTEwMSAtNDMgLTIxMi41IC00MyBxLTExMS41IDAgLTIxMy41IDQzIHEtOTggNDIgLTE3My41IDExNy41IHEtNzUuNSA3NS41IC0xMTcuNSAxNzMuNSBxLTQzIDEwMiAtNDMgMjEzIHEwIDExMSA0MyAyMTMgcTQyIDk4IDExNy41IDE3My41IHE3NS41IDc1LjUgMTczLjUgMTE3LjUgcTEwMiA0MyAyMTMgNDMgWk0yNTAwIDMwNDcgcTExMSAwIDIxMyAtNDMgcTk4IC00MiAxNzMuNSAtMTE3LjUgcTc1LjUgLTc1LjUgMTE3LjUgLTE3My41IHE0MyAtMTAyIDQzIC0yMTMgcTAgLTExMSAtNDMgLTIxMyBxLTQyIC05OCAtMTE3LjUgLTE3My41IHEtNzUuNSAtNzUuNSAtMTczLjUgLTExNy41IHEtMTAyIC00MyAtMjEzIC00MyBxLTExMSAwIC0yMTMgNDMgcS05OCA0MiAtMTczLjUgMTE3LjUgcS03NS41IDc1LjUgLTExNy41IDE3My41IHEtNDMgMTAyIC00MyAyMTMgcTAgMTExIDQzIDIxMyBxNDIgOTggMTE3LjUgMTczLjUgcTc1LjUgNzUuNSAxNzMuNSAxMTcuNSBxMTAyIDQzIDIxMyA0MyBaTTQyMTkgMzA0NyBxMTExIDAgMjEzIC00MyBxOTggLTQyIDE3My41IC0xMTcuNSBxNzUuNSAtNzUuNSAxMTcuNSAtMTczLjUgcTQzIC0xMDIgNDMgLTIxMyBxMCAtMTExIC00MyAtMjEzIHEtNDIgLTk4IC0xMTcuNSAtMTczLjUgcS03NS41IC03NS41IC0xNzMuNSAtMTE3LjUgcS0xMDIgLTQzIC0yMTMuNSAtNDMgcS0xMTEuNSAwIC0yMTIuNSA0MyBxLTk4IDQyIC0xNzQgMTE3LjUgcS03NiA3NS41IC0xMTcgMTczLjUgcS00MyAxMDIgLTQzIDIxMyBxMCAxMTEgNDMgMjEzIHE0MSA5OCAxMTcgMTczLjUgcTc2IDc1LjUgMTc0IDExNy41IHExMDEgNDMgMjEzIDQzIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InBhdXNlIiB1bmljb2RlPSImI3hlYTBjOyIgZD0iTTkzOCA0MDYzIGwwIC0zMTI1IGwxMjUwIDAgbDAgMzEyNSBsLTEyNTAgMCBaTTI4MTMgNDA2MyBsMCAtMzEyNSBsMTI1MCAwIGwwIDMxMjUgbC0xMjUwIDAgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0icGxheSIgdW5pY29kZT0iJiN4ZWEwZDsiIGQ9Ik02MjUgNDM3NSBsMzc1MCAtMTg3NSBsLTM3NTAgLTE4NzUgbDAgMzc1MCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJ0cmlhbmdsZS1zIiB1bmljb2RlPSImI3hlYTBlOyIgZD0iTTEyNTAgMzEyNSBsMTI1MCAtMTI1MCBsMTI1MCAxMjQ4IGwtMjUwMCAyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InVzZXItc3RhdHVzLWF3YXkiIHVuaWNvZGU9IiYjeGVhMGY7IiBkPSJNMjE1NiA0OTY5IHEtMzYwIC00NiAtNjk1IC0xOTcgcS0zMjYgLTE0NyAtNjAxIC0zODAgcS0yNzQgLTIzMSAtNDcyIC01MjggcS0yMDIgLTMwMSAtMzA5IC02NDIgcS0xMTAgLTM1MyAtMTEwIC03MjIgcTAgLTQwNiAxMjggLTc4OCBxMTIzIC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTM2OSAwIDcyMiAxMDcgcTM0MiAxMDQgNjQ0IDMwMSBxMjk4IDE5NCA1MzMgNDYzIHEyMzYgMjcwIDM4OSA1OTMgcTE1NiAzMzEgMjEyIDY5MiBxLTE4OCAtMjA0IC00MjMuNSAtMzUxIHEtMjM1LjUgLTE0NyAtNDk4LjUgLTIyNSBxLTI2OSAtODAgLTU0NyAtODAgcS0zMjIgMCAtNjI4IDEwMyBxLTI5NSA5OSAtNTQ4IDI4NiBxLTI1MSAxODQgLTQzNSA0MzUgcS0xODcgMjUzIC0yODYgNTQ4IHEtMTAzIDMwNiAtMTAzIDYyOCBxMCAyOTMgODAgNTY4IHE3OCAyNjkgMjI1LjUgNDk4LjUgcTE0Ny41IDIyOS41IDM1MC41IDQwMi41IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InVzZXItc3RhdHVzLWRuZCIgdW5pY29kZT0iJiN4ZWExMDsiIGQ9Ik0yNTAwIDUwMDAgcS00MDYgMCAtNzg4IC0xMjggcS0zNzAgLTEyNCAtNjg2IC0zNTYgcS0zMTMgLTIyOSAtNTQyIC01NDIgcS0yMzIgLTMxNiAtMzU2IC02ODYgcS0xMjggLTM4MiAtMTI4IC03ODggcTAgLTQwNiAxMjggLTc4OCBxMTI0IC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTQwNiAwIDc4OCAxMjggcTM3MCAxMjQgNjg2IDM1NiBxMzEzIDIyOSA1NDIgNTQyIHEyMzIgMzE2IDM1NiA2ODYgcTEyOCAzODIgMTI4IDc4OCBxMCA0MDYgLTEyOCA3ODggcS0xMjQgMzcwIC0zNTYgNjg2IHEtMjI5IDMxMyAtNTQyIDU0MiBxLTMxNiAyMzIgLTY4NiAzNTYgcS0zODIgMTI4IC03ODggMTI4IFpNMTU2MyAyOTY5IGwxODc1IDAgcTkxIDAgMTc4IC0zOCBxODQgLTM3IDE1MCAtMTAzIHE2NiAtNjYgMTAyIC0xNDkgcTM4IC04NyAzOCAtMTc5IHEwIC05MiAtMzggLTE3OSBxLTM2IC04MyAtMTAyIC0xNDkgcS02NiAtNjYgLTE1MCAtMTAzIHEtODcgLTM4IC0xNzggLTM4IGwtMTg3NSAwIHEtOTIgMCAtMTc5IDM4IHEtODQgMzcgLTE1MCAxMDMgcS02NiA2NiAtMTAyIDE0OSBxLTM4IDg3IC0zOCAxNzkgcTAgOTIgMzggMTc5IHEzNiA4MyAxMDIgMTQ5IHE2NiA2NiAxNTAgMTAzIHE4NyAzOCAxNzkgMzggWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0idXNlci1zdGF0dXMtaW52aXNpYmxlIiB1bmljb2RlPSImI3hlYTExOyIgZD0iTTI1MDAgNTAwMCBxLTQwNiAwIC03ODggLTEyOCBxLTM3MCAtMTI0IC02ODYgLTM1NiBxLTMxMyAtMjI5IC01NDIgLTU0MiBxLTIzMiAtMzE2IC0zNTYgLTY4NiBxLTEyOCAtMzgyIC0xMjggLTc4OCBxMCAtNDA2IDEyOCAtNzg4IHExMjQgLTM3MCAzNTYgLTY4NiBxMjI5IC0zMTMgNTQyIC01NDIgcTMxNiAtMjMyIDY4NiAtMzU2IHEzODIgLTEyOCA3ODggLTEyOCBxNDA2IDAgNzg4IDEyOCBxMzcwIDEyNCA2ODYgMzU2IHEzMTMgMjI5IDU0MiA1NDIgcTIzMiAzMTYgMzU2IDY4NiBxMTI4IDM4MiAxMjggNzg4IHEwIDQwNiAtMTI4IDc4OCBxLTEyNCAzNzAgLTM1NiA2ODYgcS0yMjkgMzEzIC01NDIgNTQyIHEtMzE2IDIzMiAtNjg2IDM1NiBxLTM4MiAxMjggLTc4OCAxMjggWk0yNTAwIDQwMDAgcTMxMSAwIDU5MCAtMTE2IHEyNzEgLTExMiA0NzYuNSAtMzE3LjUgcTIwNS41IC0yMDUuNSAzMTcuNSAtNDc2LjUgcTExNiAtMjc5IDExNiAtNTkwIHEwIC0zMTEgLTExNiAtNTkwIHEtMTEyIC0yNzEgLTMxNy41IC00NzYuNSBxLTIwNS41IC0yMDUuNSAtNDc2LjUgLTMxNy41IHEtMjc5IC0xMTYgLTU5MCAtMTE2IHEtMzExIDAgLTU5MCAxMTYgcS0yNzEgMTEyIC00NzYuNSAzMTcuNSBxLTIwNS41IDIwNS41IC0zMTcuNSA0NzYuNSBxLTExNiAyNzkgLTExNiA1OTAgcTAgMzExIDExNiA1OTAgcTExMiAyNzEgMzE3LjUgNDc2LjUgcTIwNS41IDIwNS41IDQ3Ni41IDMxNy41IHEyNzkgMTE2IDU5MCAxMTYgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0idXNlci1zdGF0dXMtb25saW5lIiB1bmljb2RlPSImI3hlYTEyOyIgZD0iTTE1MDAgMTUwMCBsMjAwMCAwIGwwIDIwMDAgbC0yMDAwIDAgbDAgLTIwMDAgWk0yNTAwIDUwMDAgcS00MDYgMCAtNzg4IC0xMjggcS0zNzAgLTEyNCAtNjg2IC0zNTYgcS0zMTMgLTIyOSAtNTQyIC01NDIgcS0yMzIgLTMxNiAtMzU2IC02ODYgcS0xMjggLTM4MiAtMTI4IC03ODggcTAgLTQwNiAxMjggLTc4OCBxMTI0IC0zNzAgMzU2IC02ODYgcTIyOSAtMzEzIDU0MiAtNTQyIHEzMTYgLTIzMiA2ODYgLTM1NiBxMzgyIC0xMjggNzg4IC0xMjggcTQwNiAwIDc4OCAxMjggcTM3MCAxMjQgNjg2IDM1NiBxMzEzIDIyOSA1NDIgNTQyIHEyMzIgMzE2IDM1NiA2ODYgcTEyOCAzODIgMTI4IDc4OCBxMCA0MDYgLTEyOCA3ODggcS0xMjQgMzcwIC0zNTYgNjg2IHEtMjI5IDMxMyAtNTQyIDU0MiBxLTMxNiAyMzIgLTY4NiAzNTYgcS0zODIgMTI4IC03ODggMTI4IFoiIC8+PC9mb250PjwvZGVmcz48L3N2Zz4=\"},function(e,t,n){\"use strict\";n.d(t,\"b\",(function(){return a})),n.d(t,\"a\",(function(){return i}));n(15);var s=n(28),o=Object(s.getGettextBuilder)().detectLocale();[{locale:\"br\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Kervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020\",\"Language-Team\":\"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"br\",\"Plural-Forms\":\"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nKervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020\\n\"},msgstr:[\"Last-Translator: Kervoas-Le Nabat Ewen <ewenkervoas@free.fr>, 2020\\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: br\\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (diwelus)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (bevennet)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:249\"},msgstr:[\"Oberioù\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Oberiantizoù\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Loened & Natur\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Dibab\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Serriñ\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Personelañ\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Bannieloù\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Boued & Evajoù\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Implijet alies\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Da heul\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Emoji ebet kavet\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Disoc'h ebet\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Traoù\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Arsav an diaporama\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Tud & Korf\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Choaz un emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"A-raok\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Klask\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Disoc'hoù an enklask\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Choaz ur c'hlav\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Arventennoù\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Smileyioù & Fromoù\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Kregiñ an diaporama\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Arouezioù\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Beaj & Lec'hioù\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Dibosupl eo klask ar strollad\"]}}}}},{locale:\"ca\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"David Jacovkis <david@freeknowledge.eu>, 2020\",\"Language-Team\":\"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ca\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nCarles Ferrando Garcia <carles.ferrando@gnuescultura.eu>, 2020\\nMarc Riera <marcriera@softcatala.org>, 2020\\nToni Hermoso Pulido <toniher@softcatala.cat>, 2020\\nDavid Jacovkis <david@freeknowledge.eu>, 2020\\n\"},msgstr:[\"Last-Translator: David Jacovkis <david@freeknowledge.eu>, 2020\\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (invisible)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (restringit)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Accions\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Activitats\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Animals i natura\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Tria\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Tanca\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Personalitzat\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Marques\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Menjar i begudes\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Utilitzats recentment\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:255\"},msgstr:[\"S'ha arribat al límit de {count} caràcters per missatge\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Següent\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"No s'ha trobat cap emoji\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Sense resultats\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Objectes\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Atura la presentació\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Persones i cos\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Trieu un emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Anterior\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Cerca\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Resultats de cerca\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Selecciona una etiqueta\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Paràmetres\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Navegació d'opcions\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Cares i emocions\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Inicia la presentació\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Símbols\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Viatges i llocs\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"No es pot cercar el grup\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:152\"},msgstr:[\"Escriu un missatge, @ per mencionar algú...\"]}}}}},{locale:\"cs_CZ\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Pavel Borecki <pavel.borecki@gmail.com>, 2020\",\"Language-Team\":\"Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"cs_CZ\",\"Plural-Forms\":\"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nPavel Borecki <pavel.borecki@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2020\\nLanguage-Team: Czech (Czech Republic) (https://www.transifex.com/nextcloud/teams/64236/cs_CZ/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cs_CZ\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (neviditelný)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (omezený)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Akce\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Aktivity\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Zvířata a příroda\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Zvolit\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Zavřít\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Uživatelsky určené\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Příznaky\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Jídlo a pití\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Často používané\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"Dosaženo limitu počtu znaků {count}\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Následující\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Nenalezeno žádné emoji\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Žádné výsledky\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Objekty\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pozastavit prezentaci\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Lidé a tělo\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Vyberte emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Předchozí\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Hledat\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Výsledky hledání\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Vybrat štítek\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Nastavení\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Pohyb po nastavení\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Úsměvy a emoce\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Spustit prezentaci\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Symboly\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Cestování a místa\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Nedaří se hledat skupinu\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"Pište zprávu, pokud chcete někoho zmínit, použijte @ …\"]}}}}},{locale:\"da\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Thomas Nielsen <thsnielsen@gmail.com>, 2020\",\"Language-Team\":\"Danish (https://www.transifex.com/nextcloud/teams/64236/da/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"da\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nThomas Nielsen <thsnielsen@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Thomas Nielsen <thsnielsen@gmail.com>, 2020\\nLanguage-Team: Danish (https://www.transifex.com/nextcloud/teams/64236/da/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: da\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (usynlig)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (begrænset)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:247\"},msgstr:[\"Handlinger\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Vælg\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Luk\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Videre\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:172\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\"Ingen resultater\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Suspender fremvisning\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Forrige\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Vælg et mærke\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Indstillinger\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Start fremvisning\"]}}}}},{locale:\"de\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Mario Siegmann <mario_siegmann@web.de>, 2020\",\"Language-Team\":\"German (https://www.transifex.com/nextcloud/teams/64236/de/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"de\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nPhilipp Fischbeck <pfischbeck@googlemail.com>, 2020\\nAndreas Eitel <github-aneitel@online.de>, 2020\\nJoachim Sokolowski, 2020\\nMark Ziegler <mark.ziegler@rakekniven.de>, 2020\\nMario Siegmann <mario_siegmann@web.de>, 2020\\n\"},msgstr:[\"Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2020\\nLanguage-Team: German (https://www.transifex.com/nextcloud/teams/64236/de/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (unsichtbar)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (eingeschränkt)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Aktionen\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Aktivitäten\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Tiere & Natur\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Auswählen\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Schließen\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Benutzerdefiniert\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Flaggen\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Essen & Trinken\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Häufig verwendet\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Weiter\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Kein Emoji gefunden\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Keine Ergebnisse\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Gegenstände\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Diashow pausieren\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Menschen & Körper\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Ein Emoji auswählen\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Vorherige\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Suche\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Suchergebnisse\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Schlagwort auswählen\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Einstellungen\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Einstellungen-Navigation\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Smileys & Emotionen\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Diashow starten\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Symbole\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Reisen & Orte\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Die Gruppe konnte nicht durchsucht werden\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:126\"},msgstr:[\"Nachricht schreiben, @ um jemanden zu erwähnen ...\"]}}}}},{locale:\"de_DE\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Mario Siegmann <mario_siegmann@web.de>, 2020\",\"Language-Team\":\"German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"de_DE\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nPhilipp Fischbeck <pfischbeck@googlemail.com>, 2020\\nProfDrJones <jones@fs.cs.hm.edu>, 2020\\nMark Ziegler <mark.ziegler@rakekniven.de>, 2020\\nMario Siegmann <mario_siegmann@web.de>, 2020\\n\"},msgstr:[\"Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2020\\nLanguage-Team: German (Germany) (https://www.transifex.com/nextcloud/teams/64236/de_DE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de_DE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (unsichtbar)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (eingeschränkt)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Aktionen\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Aktivitäten\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Tiere & Natur\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Auswählen\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Schließen\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Benutzerdefiniert\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Flaggen\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Essen & Trinken\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Häufig verwendet\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"Nachrichtenlimit von {count} Zeichen erreicht\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Weiter\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Kein Emoji gefunden\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Keine Ergebnisse\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Gegenstände\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Diashow pausieren\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Menschen & Körper\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Ein Emoji auswählen\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Vorherige\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Suche\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Suchergebnisse\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Schlagwort auswählen\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Einstellungen\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Einstellungen-Navigation\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Smileys & Emotionen\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Diashow starten\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Symbole\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Reisen & Orte\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Die Gruppe kann nicht durchsucht werden\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"Nachricht schreiben, @ um jemanden zu erwähnen ...\"]}}}}},{locale:\"el\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Efstathios Iosifidis <iefstathios@gmail.com>, 2020\",\"Language-Team\":\"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"el\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\ngeorge k <norhorn@gmail.com>, 2020\\nEfstathios Iosifidis <iefstathios@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>, 2020\\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (αόρατο)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (περιορισμένο)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:249\"},msgstr:[\"Ενέργειες\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Δραστηριότητες\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Ζώα & Φύση\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Επιλογή\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Κλείσιμο\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Προσαρμογή\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Σημαίες\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Φαγητό & Ποτό\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Συχνά χρησιμοποιούμενο\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Επόμενο\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Δεν βρέθηκε emoji\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Κανένα αποτέλεσμα\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Αντικείμενα\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Παύση προβολής διαφανειών\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Άνθρωποι & Σώμα\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Επιλέξτε ένα emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Προηγούμενο\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Αναζήτηση\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Αποτελέσματα αναζήτησης\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Επιλογή ετικέτας\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Ρυθμίσεις\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Φατσούλες & Συναίσθημα\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Έναρξη προβολής διαφανειών\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Σύμβολα\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Ταξίδια & Τοποθεσίες\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Δεν είναι δυνατή η αναζήτηση της ομάδας\"]}}}}},{locale:\"es\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"asd fgh <c1@cgps.xyz>, 2020\",\"Language-Team\":\"Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"es\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\njavier san felipe <jsanfe@gmail.com>, 2020\\nasd fgh <c1@cgps.xyz>, 2020\\n\"},msgstr:[\"Last-Translator: asd fgh <c1@cgps.xyz>, 2020\\nLanguage-Team: Spanish (https://www.transifex.com/nextcloud/teams/64236/es/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{etiqueta} (invisible)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{etiqueta} (restringido)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:247\"},msgstr:[\"acciones\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Elige\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Cierra\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Siguiente\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:172\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\" Ningún resultado\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pausa la presentación \"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Anterior\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Selecciona una etiqueta\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Ajustes\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Comienza la presentación \"]}}}}},{locale:\"eu\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020\",\"Language-Team\":\"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"eu\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nAsier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2020\\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eu\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:169\"},msgstr:[\"{tag} (ikusezina)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:172\"},msgstr:[\"{tag} (mugatua)\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Aukeratu\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:109\"},msgstr:[\"Itxi\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:154\"},msgstr:[\"Hurrengoa\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:169\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\"Emaitzarik ez\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:290\"},msgstr:[\"Pausatu diaporama\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:134\"},msgstr:[\"Aurrekoa\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Hautatu etiketa bat\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Ezarpenak\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:290\"},msgstr:[\"Hasi diaporama\"]}}}}},{locale:\"fi_FI\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"teemue, 2020\",\"Language-Team\":\"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"fi_FI\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nRobin Lahtinen <robin.lahtinen@gmail.com>, 2020\\nteemue, 2020\\n\"},msgstr:[\"Last-Translator: teemue, 2020\\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fi_FI\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (näkymätön)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (rajoitettu)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Toiminnot\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Aktiviteetit\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Eläimet & luonto\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Valitse\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Sulje\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Mukautettu\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Liput\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Ruoka & juoma\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Usein käytetyt\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:255\"},msgstr:[\"Viestin maksimimerkkimäärä {count} täynnä \"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Seuraava\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Emojia ei löytynyt\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Ei tuloksia\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Esineet & asiat\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Keskeytä diaesitys\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Ihmiset & keho\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Valitse emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Edellinen\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Etsi\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Hakutulokset\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Valitse tagi\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Asetukset\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Asetusnavigaatio\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Hymiöt ja & tunteet\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Aloita diaesitys\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Symbolit\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Matkustus & kohteet\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Ryhmää ei voi hakea\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:152\"},msgstr:[\"Kirjoita viesti, @ mainitaksesi jonkun...\"]}}}}},{locale:\"fr\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Julien Veyssier <eneiluj@gmx.fr>, 2020\",\"Language-Team\":\"French (https://www.transifex.com/nextcloud/teams/64236/fr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"fr\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nBrendan Abolivier <transifex@brendanabolivier.com>, 2020\\ngud bes <gudbes@protonmail.com>, 2020\\nGreg Greg <grena@grenabox.fr>, 2020\\nLuclu7 <theluc7andcompagnie@gmail.com>, 2020\\nJulien Veyssier <eneiluj@gmx.fr>, 2020\\n\"},msgstr:[\"Last-Translator: Julien Veyssier <eneiluj@gmx.fr>, 2020\\nLanguage-Team: French (https://www.transifex.com/nextcloud/teams/64236/fr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (invisible)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (restreint)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:249\"},msgstr:[\"Actions\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Activités\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Animaux & Nature\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Choisir\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Fermer\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Personnalisé\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Drapeaux\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Nourriture & Boissons\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Utilisés fréquemment\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Suivant\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Pas d’émoji trouvé\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Aucun résultat\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Objets\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Mettre le diaporama en pause\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Personnes & Corps\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Choisissez un émoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Précédent\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Chercher\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Résultats de recherche\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Sélectionnez une balise\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Paramètres\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Smileys & Émotions\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Démarrer le diaporama\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Symboles\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Voyage & Lieux\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Impossible de chercher le groupe\"]}}}}},{locale:\"gl\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2020\",\"Language-Team\":\"Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"gl\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2020\\nLanguage-Team: Galician (https://www.transifex.com/nextcloud/teams/64236/gl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (invisíbel)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (restrinxido)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Accións\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Actividades\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Animais e natureza\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Escoller\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Pechar\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Personalizado\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Bandeiras\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Comida e bebida\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Usado con frecuencia\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"Acadouse o límite de {count} caracteres por mensaxe\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Seguinte\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Non se atopou ningún «emoji»\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Sen resultados\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Obxectos\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pausar o diaporama\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Persoas e corpo\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Escolla un «emoji»\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Anterir\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Buscar\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Resultados da busca\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Seleccione unha etiqueta\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Axustes\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Navegación de axustes\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Sorrisos e emocións\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Iniciar o diaporama\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Símbolos\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Viaxes e lugares\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Non foi posíbel buscar o grupo\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"Escriba a mensaxe, @ para mencionar a alguén…\"]}}}}},{locale:\"he\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Yaron Shahrabani <sh.yaron@gmail.com>, 2020\",\"Language-Team\":\"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"he\",\"Plural-Forms\":\"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nYaron Shahrabani <sh.yaron@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>, 2020\\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: he\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (נסתר)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (מוגבל)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:249\"},msgstr:[\"פעולות\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"פעילויות\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"חיות וטבע\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"בחירה\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"סגירה\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"בהתאמה אישית\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"דגלים\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"מזון ומשקאות\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"בשימוש תדיר\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"הבא\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"לא נמצא אמוג׳י\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"אין תוצאות\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"חפצים\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"השהיית מצגת\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"אנשים וגוף\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"נא לבחור אמוג׳י\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"הקודם\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"חיפוש\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"תוצאות חיפוש\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"בחירת תגית\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"הגדרות\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"חייכנים ורגשונים\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"התחלת המצגת\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"סמלים\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"טיולים ומקומות\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"לא ניתן לחפש בקבוצה\"]}}}}},{locale:\"hu_HU\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"asbot10 <asbot000@gmail.com>, 2020\",\"Language-Team\":\"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"hu_HU\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nBalázs Meskó <mesko.balazs@fsf.hu>, 2020\\nasbot10 <asbot000@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: asbot10 <asbot000@gmail.com>, 2020\\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hu_HU\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (láthatatlan)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (korlátozott)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:197\"},msgstr:[\"Műveletek\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Válassszon\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Bezárás\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Következő\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:172\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\"Nincs találat\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Diavetítés szüneteltetése\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Előző\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Válasszon címkét\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Beállítások\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Diavetítés indítása\"]}}}}},{locale:\"is\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Sveinn í Felli <sv1@fellsnet.is>, 2020\",\"Language-Team\":\"Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"is\",\"Plural-Forms\":\"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nSveinn í Felli <sv1@fellsnet.is>, 2020\\n\"},msgstr:[\"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2020\\nLanguage-Team: Icelandic (https://www.transifex.com/nextcloud/teams/64236/is/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: is\\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (ósýnilegt)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (takmarkað)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Aðgerðir\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Aðgerðir\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Dýr og náttúra\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Velja\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Loka\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Sérsniðið\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Flögg\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Matur og drykkur\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Oftast notað\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Næsta\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Ekkert tjáningartákn fannst\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Engar niðurstöður\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Hlutir\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Gera hlé á skyggnusýningu\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Fólk og líkami\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Veldu tjáningartákn\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Fyrri\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Leita\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Leitarniðurstöður\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Veldu merki\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Stillingar\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Broskallar og tilfinningar\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Byrja skyggnusýningu\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Tákn\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Staðir og ferðalög\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Get ekki leitað í hópnum\"]}}}}},{locale:\"it\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Vincenzo Reale <vinx.reale@gmail.com>, 2020\",\"Language-Team\":\"Italian (https://www.transifex.com/nextcloud/teams/64236/it/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"it\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nRandom_R, 2020\\nVincenzo Reale <vinx.reale@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>, 2020\\nLanguage-Team: Italian (https://www.transifex.com/nextcloud/teams/64236/it/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: it\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (invisibile)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (limitato)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Azioni\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Attività\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Animali e natura\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Scegli\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Chiudi\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Personalizzato\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Bandiere\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Cibo e bevande\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Usati di frequente\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"Limite dei messaggi di {count} caratteri raggiunto\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Successivo\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Nessun emoji trovato\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Nessun risultato\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Oggetti\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Presentazione in pausa\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Persone e corpo\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Scegli un emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Precedente\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Cerca\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Risultati di ricerca\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Seleziona un'etichetta\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Impostazioni\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Navigazione delle impostazioni\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Faccine ed emozioni\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Avvia presentazione\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Simboli\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Viaggi e luoghi\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Impossibile cercare il gruppo\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"Scrivi messaggio, @ per menzionare qualcuno…\"]}}}}},{locale:\"ja_JP\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"YANO Tetsu <tetuyano+transi@gmail.com>, 2020\",\"Language-Team\":\"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ja_JP\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nYANO Tetsu <tetuyano+transi@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: YANO Tetsu <tetuyano+transi@gmail.com>, 2020\\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ja_JP\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{タグ} (不可視)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{タグ} (制限付)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:249\"},msgstr:[\"操作\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"アクティビティ\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"動物と自然\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"選択\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"閉じる\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"カスタム\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"国旗\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"食べ物と飲み物\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"よく使うもの\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"次\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"絵文字が見つかりません\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"なし\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"物\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"スライドショーを一時停止\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"様々な人と体の部位\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"絵文字を選択\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"前\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"検索\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"検索結果\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"タグを選択\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"設定\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"笑顔と気持ち\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"スライドショーを開始\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"記号\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"旅行と場所\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"グループを検索できません\"]}}}}},{locale:\"lt_LT\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Moo, 2020\",\"Language-Team\":\"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"lt_LT\",\"Plural-Forms\":\"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nMoo, 2020\\n\"},msgstr:[\"Last-Translator: Moo, 2020\\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lt_LT\\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (nematoma)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (apribota)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Veiksmai\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Veiklos\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Gyvūnai ir gamta\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Pasirinkti\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Užverti\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Tinkinti\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Vėliavos\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Maistas ir gėrimai\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Dažniausiai naudoti\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Kitas\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Nerasta jaustukų\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Nėra rezultatų\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Objektai\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pristabdyti skaidrių rodymą\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Žmonės ir kūnas\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Pasirinkti jaustuką\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Ankstesnis\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Ieškoti\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Paieškos rezultatai\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Pasirinkti žymę\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Nustatymai\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Šypsenos ir emocijos\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pradėti skaidrių rodymą\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Simboliai\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Kelionės ir vietos\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Nepavyko atlikti paiešką grupėje\"]}}}}},{locale:\"lv\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"stendec <stendec@inbox.lv>, 2020\",\"Language-Team\":\"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"lv\",\"Plural-Forms\":\"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nstendec <stendec@inbox.lv>, 2020\\n\"},msgstr:[\"Last-Translator: stendec <stendec@inbox.lv>, 2020\\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lv\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:169\"},msgstr:[\"{tag} (neredzams)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:172\"},msgstr:[\"{tag} (ierobežots)\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Izvēlēties\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:109\"},msgstr:[\"Aizvērt\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:154\"},msgstr:[\"Nākamais\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:169\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\"Nav rezultātu\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:290\"},msgstr:[\"Pauzēt slaidrādi\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:134\"},msgstr:[\"Iepriekšējais\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Izvēlēties birku\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Iestatījumi\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:290\"},msgstr:[\"Sākt slaidrādi\"]}}}}},{locale:\"mk\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Сашко Тодоров, 2020\",\"Language-Team\":\"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"mk\",\"Plural-Forms\":\"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nСашко Тодоров, 2020\\n\"},msgstr:[\"Last-Translator: Сашко Тодоров, 2020\\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mk\\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (невидливо)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (ограничено)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Акции\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Активности\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Животни & Природа\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Избери\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Затвори\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Прилагодени\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Знамиња\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Храна & Пијалоци\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Најчесто користени\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"Ограничувањето на должината на пораката од {count} карактери е надминато\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Следно\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Не се пронајдени емотикони\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Нема резултати\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Објекти\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Пузирај слајдшоу\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Луѓе & Тело\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Избери емотикон\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Предходно\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Барај\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Резултати од барувањето\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Избери ознака\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Параметри\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Параметри за навигација\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Смешковци & Емотикони\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Стартувај слајдшоу\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Симболи\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Патувања & Места\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Неможе да се принајде групата\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"Напиши порака, @ за да спомнеш некој …\"]}}}}},{locale:\"nb_NO\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"sverre.vikan <sverre.vikan@gmail.com>, 2020\",\"Language-Team\":\"Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"nb_NO\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nOle Jakob Brustad <ole.jakob@brustadbuss.no>, 2020\\nsverre.vikan <sverre.vikan@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: sverre.vikan <sverre.vikan@gmail.com>, 2020\\nLanguage-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/nextcloud/teams/64236/nb_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nb_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (usynlig)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (beskyttet)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Handlinger\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Aktiviteter\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Dyr og natur\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Velg\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Lukk\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Selvvalgt\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Flagg\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Mat og drikke\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Ofte brukt\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Neste\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Fant ingen emoji\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Ingen resultater\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Objekter\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pause lysbildefremvisning\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Mennesker og kropp\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Velg en emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Forrige\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Søk\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Søkeresultater\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Velg en merkelapp\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Innstillinger\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Smilefjes og følelser\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Start lysbildefremvisning\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Symboler\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Reise og steder\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Kunne ikke søke i gruppen\"]}}}}},{locale:\"nl\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Arjan van S, 2020\",\"Language-Team\":\"Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"nl\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nRoeland Jago Douma <roeland@famdouma.nl>, 2020\\nArjan van S, 2020\\n\"},msgstr:[\"Last-Translator: Arjan van S, 2020\\nLanguage-Team: Dutch (https://www.transifex.com/nextcloud/teams/64236/nl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (onzichtbaar)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (beperkt)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:196\"},msgstr:[\"Acties\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Kies\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Sluiten\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Volgende\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:172\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\"Geen resultaten\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pauzeer diavoorstelling\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Vorige\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Selecteer een label\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Instellingen\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Start diavoorstelling\"]}}}}},{locale:\"oc\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Quentin PAGÈS, 2020\",\"Language-Team\":\"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"oc\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nQuentin PAGÈS, 2020\\n\"},msgstr:[\"Last-Translator: Quentin PAGÈS, 2020\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (invisible)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (limit)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:194\"},msgstr:[\"Accions\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Causir\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Tampar\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Seguent\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:172\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\"Cap de resultat\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Metre en pausa lo diaporama\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Precedent\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Seleccionar una etiqueta\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Paramètres\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Lançar lo diaporama\"]}}}}},{locale:\"pl\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Valdnet, 2020\",\"Language-Team\":\"Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"pl\",\"Plural-Forms\":\"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nArtur Skoczylas <art.skoczylas@gmail.com>, 2020\\nValdnet, 2020\\n\"},msgstr:[\"Last-Translator: Valdnet, 2020\\nLanguage-Team: Polish (https://www.transifex.com/nextcloud/teams/64236/pl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pl\\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (niewidoczna)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (ograniczona)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Działania\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Aktywność\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Zwierzęta i natura\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Wybierz\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Zamknij\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Zwyczajne\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Flagi\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Jedzenie i picie\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Często używane\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"Przekroczono limit wiadomości wynoszący {count} znaków\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Następny\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Nie znaleziono emotikonów\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Brak wyników\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Obiekty\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Wstrzymaj pokaz slajdów\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Ludzie i ciało\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Wybierz emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Poprzedni\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Szukaj\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Wyniki wyszukiwania\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Wybierz etykietę\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Ustawienia\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Nawigacja ustawień\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Buźki i emotikony\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Rozpocznij pokaz slajdów\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Symbole\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Podróże i miejsca\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Nie można przeszukać grupy\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"Napisz wiadomość, aby wspomnieć o kimś użyj @…\"]}}}}},{locale:\"pt_BR\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatica@protonmail.com>, 2020\",\"Language-Team\":\"Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"pt_BR\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nMaurício Gardini <accounts@mauriciogardini.com>, 2020\\nPaulo Schopf, 2020\\nRodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatica@protonmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Rodrigo de Almeida Sottomaior Macedo <rmsolucoeseminformatica@protonmail.com>, 2020\\nLanguage-Team: Portuguese (Brazil) (https://www.transifex.com/nextcloud/teams/64236/pt_BR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_BR\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (invisível)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (restrito) \"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Ações\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Atividades\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Animais & Natureza\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Escolher\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Fechar\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Personalizado\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Bandeiras\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Comida & Bebida\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Mais usados\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"Limite de mensagem de {count} caracteres atingido\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Próximo\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Nenhum emoji encontrado\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Sem resultados\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Objetos\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pausar apresentação de slides\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Pessoas & Corpo\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Escolha um emoji\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Anterior\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Pesquisar\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Resultados da pesquisa\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Selecionar uma tag\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Configurações\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Navegação nas configurações\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Smiles & Emoções\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Iniciar apresentação de slides\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Símbolo\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Viagem & Lugares\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Não foi possível pesquisar o grupo\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"Escreva mensagem, @ para mencionar alguém ...\"]}}}}},{locale:\"pt_PT\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Manuela Silva <manuelarodsilva@gmail.com>, 2020\",\"Language-Team\":\"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"pt_PT\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nfpapoila <fpapoila@gmail.com>, 2020\\nManuela Silva <manuelarodsilva@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Manuela Silva <manuelarodsilva@gmail.com>, 2020\\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_PT\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (invisivel)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (restrito)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:249\"},msgstr:[\"Ações\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Escolher\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Fechar\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Seguinte\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Sem resultados\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pausar diaporama\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Anterior\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Selecionar uma etiqueta\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Definições\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Iniciar diaporama\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Não é possível pesquisar o grupo\"]}}}}},{locale:\"ru\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Alex <kekcuha@gmail.com>, 2020\",\"Language-Team\":\"Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"ru\",\"Plural-Forms\":\"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nAlex <kekcuha@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Alex <kekcuha@gmail.com>, 2020\\nLanguage-Team: Russian (https://www.transifex.com/nextcloud/teams/64236/ru/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ru\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:169\"},msgstr:[\"{tag} (невидимое)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:172\"},msgstr:[\"{tag} (ограниченное)\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Выберите\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:109\"},msgstr:[\"Закрыть\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:154\"},msgstr:[\"Следующее\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:169\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\"Результаты отсуствуют\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:290\"},msgstr:[\"Приостановить показ слйдов\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:134\"},msgstr:[\"Предыдущее\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Выберите метку\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Параметры\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:290\"},msgstr:[\"Начать показ слайдов\"]}}}}},{locale:\"sk_SK\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Anton Kuchár <tonokuc@pobox.sk>, 2020\",\"Language-Team\":\"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"sk_SK\",\"Plural-Forms\":\"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nAnton Kuchár <tonokuc@pobox.sk>, 2020\\n\"},msgstr:[\"Last-Translator: Anton Kuchár <tonokuc@pobox.sk>, 2020\\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sk_SK\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (neviditeľný)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (obmedzený)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:249\"},msgstr:[\"Akcie\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Aktivity\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Zvieratá a príroda\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Vybrať\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Zatvoriť\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Zvyk\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Vlajky\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Jedlo a nápoje\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Často používané\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Ďalší\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Nenašli sa žiadne emodži\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Žiadne výsledky\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Objekty\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pozastaviť prezentáciu\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Ľudia a telo\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Vyberte si emodži\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Predchádzajúci\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Hľadať\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Výsledky vyhľadávania\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Vybrať štítok\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Nastavenia\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Smajlíky a emócie\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Začať prezentáciu\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Symboly\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Cestovanie a miesta\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Skupinu sa nepodarilo nájsť\"]}}}}},{locale:\"sl\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Matej Urbančič <>, 2020\",\"Language-Team\":\"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"sl\",\"Plural-Forms\":\"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nMatej Urbančič <>, 2020\\n\"},msgstr:[\"Last-Translator: Matej Urbančič <>, 2020\\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sl\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (nevidno)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (omejeno)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"Dejanja\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Dejavnosti\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Živali in Narava\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Izbor\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Zapri\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Po meri\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Zastavice\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Hrana in Pijača\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Pogostost uporabe\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Naslednji\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Ni najdenih izraznih ikon\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Ni zadetkov\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Predmeti\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Ustavi predstavitev\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Ljudje in Telo\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Izbor izrazne ikone\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Predhodni\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Iskanje\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Zadetki iskanja\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Izbor oznake\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Nastavitve\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Krmarjenje nastavitev\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Izrazne ikone\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Začni predstavitev\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Simboli\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Potovanja in Kraji\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Ni mogoče iskati po skuspini\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:126\"},msgstr:[\"Napišite sporočilo, z @ omenite osebo ...\"]}}}}},{locale:\"sv\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Jonatan Nyberg, 2020\",\"Language-Team\":\"Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"sv\",\"Plural-Forms\":\"nplurals=2; plural=(n != 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"Translators:\\nGabriel Ekström <gabriel.ekstrom06@gmail.com>, 2020\\nErik Lennartsson, 2020\\nJonatan Nyberg, 2020\\n\"},msgstr:[\"Last-Translator: Jonatan Nyberg, 2020\\nLanguage-Team: Swedish (https://www.transifex.com/nextcloud/teams/64236/sv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sv\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (osynlig)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (begränsad)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:194\"},msgstr:[\"Åtgärder\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Välj\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Stäng\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Nästa\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:172\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\"},msgstr:[\"Inga resultat\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Pausa bildspel\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Föregående\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Välj en tag\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Inställningar\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Starta bildspel\"]}}}}},{locale:\"tr\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Kaya Zeren <kayazeren@gmail.com>, 2020\",\"Language-Team\":\"Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"tr\",\"Plural-Forms\":\"nplurals=2; plural=(n > 1);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nKemal Oktay Aktoğan <oktayaktogan@gmail.com>, 2020\\nabc Def <hdogan1974@gmail.com>, 2020\\nKaya Zeren <kayazeren@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2020\\nLanguage-Team: Turkish (https://www.transifex.com/nextcloud/teams/64236/tr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (görünmez)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (kısıtlı)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"İşlemler\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Etkinlikler\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Hayvanlar ve Doğa\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Seçin\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Kapat\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Özel\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Bayraklar\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Yeme ve İçme\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Sık kullanılanlar\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"{count} karakter ileti sınırına ulaşıldı\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Sonraki\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Herhangi bir emoji bulunamadı\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Herhangi bir sonuç bulunamadı\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Nesneler\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Slayt sunumunu duraklat\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"İnsanlar ve Beden\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Bir emoji seçin\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Önceki\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Arama\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Arama sonuçları\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Bir etiket seçin\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"Ayarlar\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"Gezinme ayarları\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"İfadeler ve Duygular\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Slayt sunumunu başlat\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Simgeler\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Gezi ve Yerler\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Grupta arama yapılamadı\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"İletiyi yazın. Birini anmak için @ kullanın …\"]}}}}},{locale:\"uk\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Oleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\",\"Language-Team\":\"Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"uk\",\"Plural-Forms\":\"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nOleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Oleksa Stasevych <oleksiy.stasevych@gmail.com>, 2020\\nLanguage-Team: Ukrainian (https://www.transifex.com/nextcloud/teams/64236/uk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uk\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (invisible)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (restricted)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:249\"},msgstr:[\"Дії\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"Діяльність\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"Тварини та природа\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"Виберіть\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"Закрити\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"Власне\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"Прапори\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"Їжа та напитки\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"Найчастіші\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"Вперед\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"Емоційки відсутні\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"Відсутні результати\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"Об'єкти\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Пауза у показі слайдів\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"Люди та жести\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"Виберіть емоційку\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"Назад\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"Пошук\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"Результати пошуку\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"Виберіть позначку\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:53\"},msgstr:[\"Налаштування\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"Усміхайлики та емоційки\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"Почати показ слайдів\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"Символи\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"Поїздки та місця\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"Неможливо шукати в групі\"]}}}}},{locale:\"zh_CN\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"tranxde, 2020\",\"Language-Team\":\"Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"zh_CN\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nSleepyJesse <Jesse_Xu@live.com>, 2020\\nJianming Liang <fuufuukun@163.com>, 2020\\nPascal Janus <pascal_janus@163.com>, 2020\\nToms Project <tom@projectoms.com>, 2020\\ntranxde, 2020\\n\"},msgstr:[\"Last-Translator: tranxde, 2020\\nLanguage-Team: Chinese (China) (https://www.transifex.com/nextcloud/teams/64236/zh_CN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_CN\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (不可见)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (受限)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"行为\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"活动\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"动物 & 自然\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"选择\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"关闭\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"自定义\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"旗帜\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"食物 & 饮品\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"经常使用\"]},\"Message limit of {count} characters reached\":{msgid:\"Message limit of {count} characters reached\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:254\"},msgstr:[\"已达到 {count} 个字符的消息限制\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"下一个\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"表情未找到\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"无结果\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"物体\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"暂停幻灯片\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"人 & 身体\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"选择一个表情\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"上一个\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"搜索\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"搜索结果\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"选择一个标签\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"设置\"]},\"Settings navigation\":{msgid:\"Settings navigation\",comments:{reference:\"src/components/AppSettingsDialog/AppSettingsDialog.vue:106\"},msgstr:[\"设置向导\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"笑脸 & 情感\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"开始幻灯片\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"符号\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"旅游 & 地点\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"无法搜索分组\"]},\"Write message, @ to mention someone …\":{msgid:\"Write message, @ to mention someone …\",comments:{reference:\"src/components/RichContenteditable/RichContenteditable.vue:151\"},msgstr:[\"输入消息,输入 @ 来提醒某人\"]}}}}},{locale:\"zh_TW\",json:{charset:\"utf-8\",headers:{\"Last-Translator\":\"Natashia Maxins <railroad1987@gmail.com>, 2020\",\"Language-Team\":\"Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)\",\"Content-Type\":\"text/plain; charset=UTF-8\",Language:\"zh_TW\",\"Plural-Forms\":\"nplurals=1; plural=0;\"},translations:{\"\":{\"\":{msgid:\"\",comments:{translator:\"\\nTranslators:\\nbyStarTW (pan93412) <pan93412@gmail.com>, 2020\\nNatashia Maxins <railroad1987@gmail.com>, 2020\\n\"},msgstr:[\"Last-Translator: Natashia Maxins <railroad1987@gmail.com>, 2020\\nLanguage-Team: Chinese (Taiwan) (https://www.transifex.com/nextcloud/teams/64236/zh_TW/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_TW\\nPlural-Forms: nplurals=1; plural=0;\\n\"]},\"{tag} (invisible)\":{msgid:\"{tag} (invisible)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:170\"},msgstr:[\"{tag} (隱藏)\"]},\"{tag} (restricted)\":{msgid:\"{tag} (restricted)\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:173\"},msgstr:[\"{tag} (受限)\"]},Actions:{msgid:\"Actions\",comments:{reference:\"src/components/Actions/Actions.vue:254\"},msgstr:[\"動作\"]},Activities:{msgid:\"Activities\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:176\"},msgstr:[\"活動\"]},\"Animals & Nature\":{msgid:\"Animals & Nature\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:174\"},msgstr:[\"動物與自然\"]},Choose:{msgid:\"Choose\",comments:{reference:\"src/components/ColorPicker/ColorPicker.vue:145\"},msgstr:[\"選擇\"]},Close:{msgid:\"Close\",comments:{reference:\"src/components/Modal/Modal.vue:117\"},msgstr:[\"關閉\"]},Custom:{msgid:\"Custom\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:181\"},msgstr:[\"自定義\"]},Flags:{msgid:\"Flags\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:180\"},msgstr:[\"旗幟\"]},\"Food & Drink\":{msgid:\"Food & Drink\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:175\"},msgstr:[\"食物與飲料\"]},\"Frequently used\":{msgid:\"Frequently used\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:171\"},msgstr:[\"最近使用\"]},Next:{msgid:\"Next\",comments:{reference:\"src/components/Modal/Modal.vue:166\"},msgstr:[\"下一個\"]},\"No emoji found\":{msgid:\"No emoji found\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:168\"},msgstr:[\"未找到表情符號\"]},\"No results\":{msgid:\"No results\",comments:{reference:\"src/components/Multiselect/Multiselect.vue:174\\nsrc/components/MultiselectTags/MultiselectTags.vue:78\\nsrc/components/SettingsSelectGroup/SettingsSelectGroup.vue:38\"},msgstr:[\"無結果\"]},Objects:{msgid:\"Objects\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:178\"},msgstr:[\"物件\"]},\"Pause slideshow\":{msgid:\"Pause slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"暫停幻燈片\"]},\"People & Body\":{msgid:\"People & Body\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:173\"},msgstr:[\"人物\"]},\"Pick an emoji\":{msgid:\"Pick an emoji\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:153\"},msgstr:[\"選擇表情符號\"]},Previous:{msgid:\"Previous\",comments:{reference:\"src/components/Modal/Modal.vue:144\"},msgstr:[\"上一個\"]},Search:{msgid:\"Search\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:167\"},msgstr:[\"搜尋\"]},\"Search results\":{msgid:\"Search results\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:170\"},msgstr:[\"搜尋結果\"]},\"Select a tag\":{msgid:\"Select a tag\",comments:{reference:\"src/components/MultiselectTags/MultiselectTags.vue:100\"},msgstr:[\"選擇標籤\"]},Settings:{msgid:\"Settings\",comments:{reference:\"src/components/AppNavigationSettings/AppNavigationSettings.vue:57\"},msgstr:[\"設定\"]},\"Smileys & Emotion\":{msgid:\"Smileys & Emotion\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:172\"},msgstr:[\"表情\"]},\"Start slideshow\":{msgid:\"Start slideshow\",comments:{reference:\"src/components/Modal/Modal.vue:302\"},msgstr:[\"開始幻燈片\"]},Symbols:{msgid:\"Symbols\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:179\"},msgstr:[\"標誌\"]},\"Travel & Places\":{msgid:\"Travel & Places\",comments:{reference:\"src/components/EmojiPicker/EmojiPicker.vue:177\"},msgstr:[\"旅遊與景點\"]},\"Unable to search the group\":{msgid:\"Unable to search the group\",comments:{reference:\"src/components/SettingsSelectGroup/SettingsSelectGroup.vue:143\"},msgstr:[\"無法搜尋群組\"]}}}}}].map((function(e){return o.addTranslation(e.locale,e.json)}));var r=o.build(),i=r.ngettext.bind(r),a=r.gettext.bind(r)},function(e,t){e.exports=require(\"v-tooltip\")},function(e,t){e.exports=require(\"core-js/modules/es.array.index-of\")},function(e,t){e.exports=require(\"core-js/modules/es.function.name\")},function(e,t){e.exports=require(\"core-js/modules/es.array.map\")},function(e,t){e.exports=require(\"core-js/modules/es.regexp.to-string\")},function(e,t){e.exports=require(\"core-js/modules/es.regexp.exec\")},function(e,t){e.exports=require(\"@nextcloud/router\")},function(e,t){e.exports=require(\"core-js/modules/es.array.iterator\")},function(e,t){e.exports=require(\"core-js/modules/es.string.iterator\")},function(e,t){e.exports=require(\"core-js/modules/web.dom-collections.iterator\")},function(e,t,n){\"use strict\";n.r(t);var s=n(12),o=n(2),r=n.n(o),i=n(24),a={insert:\"head\",singleton:!1};r()(i.a,a),i.a.locals;\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\ns.VTooltip.options.defaultTemplate='<div class=\"vue-tooltip\" role=\"tooltip\" data-v-'.concat(\"59f1214\",'><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>'),s.VTooltip.options.defaultHtml=!1;t.default=s.VTooltip},function(e,t){e.exports=require(\"core-js/modules/es.string.replace\")},function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r)()(o.a);i.push([e.i,\".vue-tooltip[data-v-59f1214]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 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))}.vue-tooltip[data-v-59f1214][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-59f1214][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-59f1214][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-59f1214][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-59f1214][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-59f1214][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-59f1214] .tooltip-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)}.vue-tooltip[data-v-59f1214] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\",\"\",{version:3,sources:[\"webpack://./index.scss\"],names:[],mappings:\"AAeA,6BACC,iBAAkB,CAClB,cAAe,CACf,UAAW,CACX,SAAU,CACV,aAAc,CACd,QAAS,CAET,eAAgB,CAChB,cAAe,CACf,eAAgB,CAChB,gBAAiB,CACjB,SAAU,CACV,eAAgB,CAEhB,eAAgB,CAChB,sDAAuD,CAhBxD,gEAqBG,QAAS,CACT,YAAa,CACb,eAAgB,CAChB,6BA1Be,CA2Bf,8BAA+B,CAC/B,+BAAgC,CAChC,6BAA8B,CA3BjC,mEAkCG,KAAM,CACN,YAAa,CACb,eAAgB,CAChB,6BAvCe,CAwCf,4BAA6B,CAC7B,8BAA+B,CAC/B,6BAA8B,CAxCjC,kEA+CG,UAAW,CACX,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,4BAA6B,CAC7B,+BAAgC,CAChC,6BAA8B,CArDjC,iEA4DG,SAAU,CACV,cAAe,CACf,aAAc,CACd,6BAjEe,CAkEf,4BAA6B,CAC7B,8BAA+B,CAC/B,+BAAgC,CAlEnC,iDAwEE,iBAAkB,CAClB,wCAAyC,CACzC,SAAU,CA1EZ,kDA6EE,kBAAmB,CACnB,uBAAwB,CACxB,SAAU,CA/EZ,4CAoFE,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,4BAA6B,CAC7B,kCAAmC,CACnC,6CAA8C,CAzFhD,4CA8FE,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,QAAS,CACT,kBAAmB,CACnB,yCAA0C\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\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.vue-tooltip[data-v-#{$scope_version}] {\\n\\tposition: absolute;\\n\\tz-index: 100000;\\n\\tright: auto;\\n\\tleft: auto;\\n\\tdisplay: block;\\n\\tmargin: 0;\\n\\t/* default to top */\\n\\tmargin-top: -3px;\\n\\tpadding: 10px 0;\\n\\ttext-align: left;\\n\\ttext-align: start;\\n\\topacity: 0;\\n\\tline-height: 1.6;\\n\\n\\tline-break: auto;\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t// TOP\\n\\t&[x-placement^='top'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// BOTTOM\\n\\t&[x-placement^='bottom'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// RIGHT\\n\\t&[x-placement^='right'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// LEFT\\n\\t&[x-placement^='left'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// HIDDEN / SHOWN\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\topacity: 0;\\n\\t}\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity .15s;\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t// CONTENT\\n\\t.tooltip-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.tooltip-arrow {\\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: var(--color-main-background);\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),t.a=i},,function(e,t){e.exports=require(\"core-js/modules/es.array.concat\")},function(e,t){e.exports=require(\"@nextcloud/event-bus\")},function(e,t){e.exports=require(\"@nextcloud/l10n/dist/gettext\")},,,function(e,t){e.exports=require(\"core-js/modules/es.symbol\")},,function(e,t){e.exports=require(\"core-js/modules/es.number.constructor\")},,function(e,t){e.exports=require(\"core-js/modules/web.url\")},,function(e,t,n){\"use strict\";var s=n(11);t.a={methods:{n:s.a,t:s.b}}},function(e,t){e.exports=require(\"core-js/modules/es.symbol.description\")},,function(e,t){e.exports=require(\"core-js/modules/es.array.slice\")},function(e,t){e.exports=require(\"@nextcloud/axios\")},function(e,t){e.exports=require(\"@nextcloud/auth\")},function(e,t,n){\"use strict\";n.r(t);var s=n(5),o=new(n.n(s).a)({data:function(){return{isMobile:!1}},watch:{isMobile:function(e){this.$emit(\"changed\",e)}},created:function(){window.addEventListener(\"resize\",this.handleWindowResize),this.handleWindowResize()},beforeDestroy:function(){window.removeEventListener(\"resize\",this.handleWindowResize)},methods:{handleWindowResize:function(){this.isMobile=document.documentElement.clientWidth<1024}}});t.default={data:function(){return{isMobile:!1}},mounted:function(){o.$on(\"changed\",this.onIsMobileChanged),this.isMobile=o.isMobile},beforeDestroy:function(){o.$off(\"changed\",this.onIsMobileChanged)},methods:{onIsMobileChanged:function(e){this.isMobile=e}}}},,function(e,t){e.exports=require(\"core-js/modules/es.symbol.iterator\")},function(e,t){e.exports=require(\"striptags\")},function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r)()(o.a);i.push([e.i,\".mention-bubble--primary .mention-bubble__content[data-v-724f9d58]{color:var(--color-primary-text);background-color:var(--color-primary-element)}.mention-bubble__wrapper[data-v-724f9d58]{max-width:150px;height:18px;vertical-align:text-bottom;display:inline-flex;align-items:center}.mention-bubble__content[data-v-724f9d58]{display:inline-flex;overflow:hidden;align-items:center;max-width:100%;height:20px;-webkit-user-select:none;user-select:none;padding-right:6px;padding-left:2px;border-radius:10px;background-color:var(--color-background-dark)}.mention-bubble__icon[data-v-724f9d58]{position:relative;width:16px;height:16px;border-radius:8px;background-color:var(--color-background-darker);background-repeat:no-repeat;background-position:center;background-size:12px}.mention-bubble__icon--with-avatar[data-v-724f9d58]{color:inherit;background-size:cover}.mention-bubble__title[data-v-724f9d58]{overflow:hidden;margin-left:2px;white-space:nowrap;text-overflow:ellipsis}.mention-bubble__title[data-v-724f9d58]::before{content:attr(title)}.mention-bubble__select[data-v-724f9d58]{position:absolute;z-index:-1;left:-1000px}\\n\",\"\",{version:3,sources:[\"webpack://./MentionBubble.vue\"],names:[],mappings:\"AAsGC,mEACC,+BAAgC,CAChC,6CAA8C,CAC9C,0CAGA,eAXsB,CAatB,WAAwC,CACxC,0BAA2B,CAC3B,mBAAoB,CACpB,kBAAmB,CACnB,0CAGA,mBAAoB,CACpB,eAAgB,CAChB,kBAAmB,CACnB,cAAe,CACf,WAzBkB,CA0BlB,wBAAyB,CACzB,gBAAiB,CACjB,iBAAkC,CAClC,gBA3BkB,CA4BlB,kBAAiC,CACjC,6CAA8C,CAC9C,uCAGA,iBAAkB,CAClB,UAjCuD,CAkCvD,WAlCuD,CAmCvD,iBAAsC,CACtC,+CAAgD,CAChD,2BAA4B,CAC5B,0BAA2B,CAC3B,oBAA0D,CAE1D,oDACC,aAAc,CACd,qBAAsB,CACtB,wCAID,eAAgB,CAChB,eAlDkB,CAmDlB,kBAAmB,CACnB,sBAAuB,CAJvB,gDAOC,mBAAoB,CACpB,yCAKD,iBAAkB,CAClB,UAAW,CACX,YAAa\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$bubble-height: 20px;\\n$bubble-max-width: 150px;\\n$bubble-padding: 2px;\\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\\n\\n.mention-bubble {\\n\\t&--primary &__content {\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tmax-width: $bubble-max-width;\\n\\t\\t// Align with text\\n\\t\\theight: $bubble-height - $bubble-padding;\\n\\t\\tvertical-align: text-bottom;\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: inline-flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tmax-width: 100%;\\n\\t\\theight: $bubble-height ;\\n\\t\\t-webkit-user-select: none;\\n\\t\\tuser-select: none;\\n\\t\\tpadding-right: $bubble-padding * 3;\\n\\t\\tpadding-left: $bubble-padding;\\n\\t\\tborder-radius: $bubble-height / 2;\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tposition: relative;\\n\\t\\twidth: $bubble-avatar-size;\\n\\t\\theight: $bubble-avatar-size;\\n\\t\\tborder-radius: $bubble-avatar-size / 2;\\n\\t\\tbackground-color: var(--color-background-darker);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\\n\\n\\t\\t&--with-avatar {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-left: $bubble-padding;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Put label in ::before so it is not selectable\\n\\t\\t&::before {\\n\\t\\t\\tcontent: attr(title);\\n\\t\\t}\\n\\t}\\n\\n\\t// Hide the mention id so it is selectable\\n\\t&__select {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: -1;\\n\\t\\tleft: -1000px;\\n\\t}\\n}\\n\\n\"],sourceRoot:\"\"}]),t.a=i},function(e,t){e.exports=require(\"core-js/modules/es.array.filter\")},function(e,t){e.exports=require(\"core-js/modules/es.array.from\")},function(e,t){e.exports=require(\"v-click-outside\")},function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return s.default})),n.d(t,\"b\",(function(){return o.default})),n.d(t,\"c\",(function(){return r.default})),n.d(t,\"d\",(function(){return i.default})),n.d(t,\"e\",(function(){return u}));var s=n(70),o=n(71),r=n(43),i=n(59),a=(n(6),n(57),n(58),n(41)),c=n.n(a),m=n(18),A=n(77),l=n(42);function g(e,t,n,s,o,r,i){try{var a=e[r](i),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(s,o)}\n/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */var u={data:function(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{fetchUserStatus:function(e){var t,n=this;return(t=regeneratorRuntime.mark((function t(){var s,o,r,i,a,g,u,d,p;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(s=Object(A.getCapabilities)(),Object.prototype.hasOwnProperty.call(s,\"user_status\")&&s.user_status.enabled){t.next=3;break}return t.abrupt(\"return\");case 3:if(Object(l.getCurrentUser)()){t.next=5;break}return t.abrupt(\"return\");case 5:return t.prev=5,t.next=8,c.a.get(Object(m.generateOcsUrl)(\"apps/user_status/api/v1\",2)+\"statuses/\".concat(encodeURIComponent(e)));case 8:o=t.sent,r=o.data,i=r.ocs.data,a=i.status,g=i.message,u=i.icon,n.userStatus.status=a,n.userStatus.message=g||\"\",n.userStatus.icon=u||\"\",n.hasStatus=!0,t.next=22;break;case 17:if(t.prev=17,t.t0=t.catch(5),404!==t.t0.response.status||0!==(null===(d=t.t0.response.data.ocs)||void 0===d||null===(p=d.data)||void 0===p?void 0:p.length)){t.next=21;break}return t.abrupt(\"return\");case 21:console.error(t.t0);case 22:case\"end\":return t.stop()}}),t,null,[[5,17]])})),function(){var e=this,n=arguments;return new Promise((function(s,o){var r=t.apply(e,n);function i(e){g(r,s,o,i,a,\"next\",e)}function a(e){g(r,s,o,i,a,\"throw\",e)}i(void 0)}))})()}}};\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */},,,,function(e,t){e.exports=require(\"core-js/modules/es.string.starts-with\")},function(e,t){e.exports=require(\"core-js/modules/es.array.join\")},function(e,t){e.exports=require(\"core-js/modules/es.promise\")},function(e,t){e.exports=require(\"regenerator-runtime/runtime\")},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"USERID_REGEX\",(function(){return f})),n.d(t,\"USERID_REGEX_WITH_SPACE\",(function(){return h}));n(86),n(13),n(56),n(15),n(87),n(88),n(17),n(16),n(23),n(73),n(55);var s=n(5),o=n.n(s),r=n(46),i=n.n(r),a=n(64),c=n.n(a),m=n(18),A={name:\"MentionBubble\",props:{id:{type:String,required:!0},label:{type:String,required:!0},icon:{type:String,required:!0},source:{type:String,required:!0},primary:{type:Boolean,default:!1}},computed:{avatarUrl:function(){return this.id&&\"users\"===this.source?this.getAvatarUrl(this.id,44):null},mentionText:function(){return-1===this.id.indexOf(\" \")?\"@\".concat(this.id):'@\"'.concat(this.id,'\"')}},methods:{getAvatarUrl:function(e,t){return Object(m.generateUrl)(\"/avatar/{user}/{size}\",{user:e,size:t})}}},l=n(2),g=n.n(l),u=n(47),d={insert:\"head\",singleton:!1},p=(g()(u.a,d),u.a.locals,n(3)),v=Object(p.a)(A,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"span\",{staticClass:\"mention-bubble\",class:{\"mention-bubble--primary\":e.primary},attrs:{contenteditable:\"false\"}},[n(\"span\",{staticClass:\"mention-bubble__wrapper\"},[n(\"span\",{staticClass:\"mention-bubble__content\"},[n(\"span\",{staticClass:\"mention-bubble__icon\",class:[e.icon,\"mention-bubble__icon--\"+(e.avatarUrl?\"with-avatar\":\"\")],style:e.avatarUrl?{backgroundImage:\"url(\"+e.avatarUrl+\")\"}:null}),e._v(\" \"),n(\"span\",{staticClass:\"mention-bubble__title\",attrs:{role:\"heading\",title:e.label}})]),e._v(\" \"),n(\"span\",{staticClass:\"mention-bubble__select\",attrs:{role:\"none\"}},[e._v(e._s(e.mentionText))])])])}),[],!1,null,\"724f9d58\",null).exports,f=new RegExp(\"\".concat(\"(?:^|\\\\s)\",\"(@[a-zA-Z0-9_.@\\\\-']+)(\").concat(\"(?:[^a-z]|$)\",\")\"),\"gi\"),h=new RegExp(\"\".concat(\"(?:^|\\\\s)\",'(@\"[a-zA-Z0-9 _.@\\\\-\\']+\")(').concat(\"(?:[^a-z]|$)\",\")\"),\"gi\");t.default={props:{userData:{type:Object,default:function(){return{}}}},methods:{renderContent:function(e){var t=this;return c()(e).split(f).map((function(e){return e.split(h)})).flat().map((function(e){if(!e.startsWith(\"@\"))return e;var n=e.replace(/[@\"]/gi,\"\");return\" \"+t.genSelectTemplate(n)})).join(\"\").replace(/\\n/gm,\"<br>\")},parseContent:function(e){var t=e.replace(/<br>/g,\"\\n\");return t=(t=t.replace(/&nbsp;/g,\" \")).replace(/<\\/div>/gim,\"\\n\"),t=i()(t,\"<div>\"),t=i()(t)},genSelectTemplate:function(e){var t=this.userData[e];return t?this.renderComponentHtml(t,v).replace(/[\\n\\t]/g,\"\"):-1===e.indexOf(\" \")?\"@\".concat(e):'@\"'.concat(e,'\"')},renderComponentHtml:function(e,t){var n=new(o.a.extend(t))({propsData:e}),s=document.createElement(\"div\"),r=document.createElement(\"div\");s.style.display=\"none\",s.appendChild(r),document.body.appendChild(s),n.$mount(r);var i=s.innerHTML;return n.$destroy(),s.remove(),i}}}},function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r)()(o.a);i.push([e.i,\"\\nbutton.menuitem[data-v-3ad7b73b] {\\n\\ttext-align: left;\\n}\\nbutton.menuitem *[data-v-3ad7b73b] {\\n\\tcursor: pointer;\\n}\\nbutton.menuitem[data-v-3ad7b73b]:disabled {\\n\\topacity: 0.5 !important;\\n\\tcursor: default;\\n}\\nbutton.menuitem:disabled *[data-v-3ad7b73b] {\\n\\tcursor: default;\\n}\\n.menuitem.active[data-v-3ad7b73b] {\\n\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\tborder-radius: 0;\\n}\\n\",\"\",{version:3,sources:[\"webpack://./PopoverMenuItem.vue\"],names:[],mappings:\";AA4HA;CACA,gBAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,uBAAA;CACA,eAAA;AACA;AAEA;CACA,eAAA;AACA;AAEA;CACA,4CAAA;CACA,gBAAA;AACA\",sourcesContent:['\\x3c!--\\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @author John Molakvoæ <skjnldsv@protonmail.com>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n --\\x3e\\n\\n<template>\\n\\t<li>\\n\\t\\t\\x3c!-- If item.href is set, a link will be directly used --\\x3e\\n\\t\\t<a v-if=\"item.href\"\\n\\t\\t\\t:href=\"(item.href) ? item.href : \\'#\\' \"\\n\\t\\t\\t:target=\"(item.target) ? item.target : \\'\\' \"\\n\\t\\t\\t:download=\"item.download\"\\n\\t\\t\\tclass=\"focusable\"\\n\\t\\t\\trel=\"noreferrer noopener\"\\n\\t\\t\\t@click=\"action\">\\n\\t\\t\\t<span v-if=\"!iconIsUrl\" :class=\"item.icon\" />\\n\\t\\t\\t<img v-else :src=\"item.icon\">\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</a>\\n\\n\\t\\t\\x3c!-- If item.input is set instead, an put will be used --\\x3e\\n\\t\\t<span v-else-if=\"item.input\" class=\"menuitem\" :class=\"{active: item.active}\">\\n\\t\\t\\t\\x3c!-- does not show if input is checkbox --\\x3e\\n\\t\\t\\t<span v-if=\"item.input !== \\'checkbox\\'\" :class=\"item.icon\" />\\n\\n\\t\\t\\t\\x3c!-- only shows if input is text --\\x3e\\n\\t\\t\\t<form v-if=\"item.input === \\'text\\'\"\\n\\t\\t\\t\\t:class=\"item.input\"\\n\\t\\t\\t\\t@submit.prevent=\"item.action\">\\n\\t\\t\\t\\t<input :type=\"item.input\"\\n\\t\\t\\t\\t\\t:value=\"item.value\"\\n\\t\\t\\t\\t\\t:placeholder=\"item.text\"\\n\\t\\t\\t\\t\\trequired>\\n\\t\\t\\t\\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\\n\\t\\t\\t</form>\\n\\n\\t\\t\\t\\x3c!-- checkbox --\\x3e\\n\\t\\t\\t<template v-else>\\n\\t\\t\\t\\t<input :id=\"key\"\\n\\t\\t\\t\\t\\tv-model=\"item.model\"\\n\\t\\t\\t\\t\\t:type=\"item.input\"\\n\\t\\t\\t\\t\\t:class=\"item.input\"\\n\\t\\t\\t\\t\\t@change=\"item.action\">\\n\\t\\t\\t\\t<label :for=\"key\" @click.stop.prevent=\"item.action\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</label>\\n\\t\\t\\t</template>\\n\\t\\t</span>\\n\\n\\t\\t\\x3c!-- If item.action is set instead, a button will be used --\\x3e\\n\\t\\t<button v-else-if=\"item.action\"\\n\\t\\t\\tclass=\"menuitem focusable\"\\n\\t\\t\\t:class=\"{active: item.active}\"\\n\\t\\t\\t:disabled=\"item.disabled\"\\n\\t\\t\\t@click.stop.prevent=\"item.action\">\\n\\t\\t\\t<span :class=\"item.icon\" />\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</button>\\n\\n\\t\\t\\x3c!-- If item.longtext is set AND the item does not have an action --\\x3e\\n\\t\\t<span v-else class=\"menuitem\" :class=\"{active: item.active}\">\\n\\t\\t\\t<span :class=\"item.icon\" />\\n\\t\\t\\t<p v-if=\"item.text && item.longtext\">\\n\\t\\t\\t\\t<strong class=\"menuitem-text\">\\n\\t\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t\\t</strong><br>\\n\\t\\t\\t\\t<span class=\"menuitem-text-detail\">\\n\\t\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t\\t</span>\\n\\t\\t\\t</p>\\n\\t\\t\\t<span v-else-if=\"item.text\">\\n\\t\\t\\t\\t{{ item.text }}\\n\\t\\t\\t</span>\\n\\t\\t\\t<p v-else-if=\"item.longtext\">\\n\\t\\t\\t\\t{{ item.longtext }}\\n\\t\\t\\t</p>\\n\\t\\t</span>\\n\\t</li>\\n</template>\\n\\n<style scoped>\\n\\tbutton.menuitem {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\tbutton.menuitem * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\tbutton.menuitem:disabled {\\n\\t\\topacity: 0.5 !important;\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\tbutton.menuitem:disabled * {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.menuitem.active {\\n\\t\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\t\\tborder-radius: 0;\\n\\t}\\n</style>\\n\\n<script>\\nexport default {\\n\\tname: \\'PopoverMenuItem\\',\\n\\tprops: {\\n\\t\\titem: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t\\tdefault: () => {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tkey: \\'nextcloud-link\\',\\n\\t\\t\\t\\t\\thref: \\'https://nextcloud.com\\',\\n\\t\\t\\t\\t\\ticon: \\'icon-links\\',\\n\\t\\t\\t\\t\\ttext: \\'Nextcloud\\',\\n\\t\\t\\t\\t}\\n\\t\\t\\t},\\n\\t\\t\\t// check the input types\\n\\t\\t\\t// TODO: add more validation of types\\n\\t\\t\\tvalidator: item => {\\n\\t\\t\\t\\t// TODO: support radio\\n\\t\\t\\t\\tif (item.input) {\\n\\t\\t\\t\\t\\treturn [\\'text\\', \\'checkbox\\'].indexOf(item.input) !== -1\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t},\\n\\t\\t},\\n\\t},\\n\\tcomputed: {\\n\\t\\t// random key for inputs binding if not provided\\n\\t\\tkey() {\\n\\t\\t\\treturn this.item.key\\n\\t\\t\\t\\t? this.item.key\\n\\t\\t\\t\\t: Math.round(Math.random() * 16 * 1000000).toString(16)\\n\\t\\t},\\n\\t\\ticonIsUrl() {\\n\\t\\t\\ttry {\\n\\t\\t\\t\\t// eslint-disable-next-line no-new\\n\\t\\t\\t\\tnew URL(this.item.icon)\\n\\t\\t\\t\\treturn true\\n\\t\\t\\t} catch (_) {\\n\\t\\t\\t\\treturn false\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\t// allow us to use both link and an action on `a`\\n\\t\\t// we still need to make sure item.action exists\\n\\t\\taction(event) {\\n\\t\\t\\tif (this.item.action) {\\n\\t\\t\\t\\tthis.item.action(event)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n<\\/script>\\n<style lang=\"scss\" scoped>\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^=\\'icon-\\'],\\n\\t\\tspan[class*=\\' icon-\\'],\\n\\t\\t&[class^=\\'icon-\\'],\\n\\t\\t&[class*=\\' icon-\\'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^=\\'icon-\\'],\\n\\t\\tspan[class*=\\' icon-\\'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^=\\'icon-\\']):not([class*=\\'icon-\\']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^=\\'icon-\\']):not([class*=\\'icon-\\']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^=\\'icon-\\'],\\n\\t\\t&[class*=\\' icon-\\'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\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// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\tpadding: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*=\\'display:none\\'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*=\\'display:none\\']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n</style>\\n'],sourceRoot:\"\"}]),t.a=i},function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r)()(o.a);i.push([e.i,\"li[data-v-3ad7b73b]{display:flex;flex:0 0 auto}li.hidden[data-v-3ad7b73b]{display:none}li>button[data-v-3ad7b73b],li>a[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-3ad7b73b],li>button span[class*=' icon-'][data-v-3ad7b73b],li>a span[class^='icon-'][data-v-3ad7b73b],li>a span[class*=' icon-'][data-v-3ad7b73b],li>.menuitem span[class^='icon-'][data-v-3ad7b73b],li>.menuitem span[class*=' icon-'][data-v-3ad7b73b]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-3ad7b73b]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-3ad7b73b],li>button[class*=' icon-'][data-v-3ad7b73b],li>a[class^='icon-'][data-v-3ad7b73b],li>a[class*=' icon-'][data-v-3ad7b73b],li>.menuitem[class^='icon-'][data-v-3ad7b73b],li>.menuitem[class*=' icon-'][data-v-3ad7b73b]{padding:0 14px 0 44px}li>button[data-v-3ad7b73b]:not(:disabled):hover,li>button[data-v-3ad7b73b]:not(:disabled):focus,li>button:not(:disabled).active[data-v-3ad7b73b],li>a[data-v-3ad7b73b]:not(:disabled):hover,li>a[data-v-3ad7b73b]:not(:disabled):focus,li>a:not(:disabled).active[data-v-3ad7b73b],li>.menuitem[data-v-3ad7b73b]:not(:disabled):hover,li>.menuitem[data-v-3ad7b73b]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-3ad7b73b]{opacity:1 !important}li>button.action[data-v-3ad7b73b],li>a.action[data-v-3ad7b73b],li>.menuitem.action[data-v-3ad7b73b]{padding:inherit !important}li>button>span[data-v-3ad7b73b],li>a>span[data-v-3ad7b73b],li>.menuitem>span[data-v-3ad7b73b]{cursor:pointer;white-space:nowrap}li>button>p[data-v-3ad7b73b],li>a>p[data-v-3ad7b73b],li>.menuitem>p[data-v-3ad7b73b]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-3ad7b73b],li>a>select[data-v-3ad7b73b],li>.menuitem>select[data-v-3ad7b73b]{margin:0;margin-left:6px}li>button[data-v-3ad7b73b]:not(:empty),li>a[data-v-3ad7b73b]:not(:empty),li>.menuitem[data-v-3ad7b73b]:not(:empty){padding-right:14px !important}li>button>img[data-v-3ad7b73b],li>a>img[data-v-3ad7b73b],li>.menuitem>img[data-v-3ad7b73b]{width:44px;padding:14px}li>button>input.radio+label[data-v-3ad7b73b],li>button>input.checkbox+label[data-v-3ad7b73b],li>a>input.radio+label[data-v-3ad7b73b],li>a>input.checkbox+label[data-v-3ad7b73b],li>.menuitem>input.radio+label[data-v-3ad7b73b],li>.menuitem>input.checkbox+label[data-v-3ad7b73b]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-3ad7b73b]::before,li>a>input.checkbox+label[data-v-3ad7b73b]::before,li>.menuitem>input.checkbox+label[data-v-3ad7b73b]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-3ad7b73b]::before,li>a>input.radio+label[data-v-3ad7b73b]::before,li>.menuitem>input.radio+label[data-v-3ad7b73b]::before{margin:-2px 12px 0}li>button>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-3ad7b73b]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-3ad7b73b],li>a form[data-v-3ad7b73b],li>.menuitem form[data-v-3ad7b73b]{display:flex;flex:1 1 auto}li>button form[data-v-3ad7b73b]:not(:first-child),li>a form[data-v-3ad7b73b]:not(:first-child),li>.menuitem form[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-3ad7b73b],li>button>span[style*='display:none']+form[data-v-3ad7b73b],li>a>span.hidden+form[data-v-3ad7b73b],li>a>span[style*='display:none']+form[data-v-3ad7b73b],li>.menuitem>span.hidden+form[data-v-3ad7b73b],li>.menuitem>span[style*='display:none']+form[data-v-3ad7b73b]{margin-left:0}li>button input[data-v-3ad7b73b],li>a input[data-v-3ad7b73b],li>.menuitem input[data-v-3ad7b73b]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-3ad7b73b]:not(:first-child),li>a input[data-v-3ad7b73b]:not(:first-child),li>.menuitem input[data-v-3ad7b73b]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-3ad7b73b]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-3ad7b73b],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-3ad7b73b]{margin-bottom:12px}li>button[data-v-3ad7b73b]{padding:0}li>button span[data-v-3ad7b73b]{opacity:1}\\n\",\"\",{version:3,sources:[\"webpack://./PopoverMenuItem.vue\",\"webpack://./../../assets/variables.scss\"],names:[],mappings:\"AA2MA,oBACC,YAAa,CACb,aAAc,CAFf,2BAKE,YAAa,CALf,+EAWE,cAAe,CACf,gBC9LmB,CD+LnB,QAAS,CACT,eAAgB,CAChB,4BAA6B,CAC7B,YAAa,CACb,sBAAuB,CACvB,WAAY,CACZ,QAAS,CACT,SAAU,CACV,kBAAmB,CACnB,eAAgB,CAChB,UAAW,CACX,4BAA6B,CAC7B,kBAAmB,CACnB,UC1LiB,CDgKnB,giBAiCG,WAAY,CACZ,YAAa,CACb,+BAA2C,CAC3C,oBClNa,CD8KhB,+RA2CG,wBC7NkB,CDkLrB,iqCAoDK,gBCtOgB,CDkLrB,iQA2DG,qBC7OkB,CDkLrB,6aAiEG,oBAAiC,CAjEpC,oGAsEG,0BAA2B,CAtE9B,8FA0EG,cAAe,CACf,kBAAmB,CA3EtB,qFAgFG,WAAY,CACZ,iBAAkB,CAClB,aAAc,CACd,kBAAmB,CAnFtB,oGAwFG,QAAS,CACT,eAAgB,CAzFnB,mHA8FG,6BAAsC,CA9FzC,2FAoGG,UCtRkB,CDuRlB,YC/Q6C,CD0KhD,mRA2GG,oBAAqB,CACrB,UAAW,CA5Gd,sKA+GG,kBAAmB,CA/GtB,6JAkHG,kBAAmB,CAlHtB,4QAqHG,WAAY,CArHf,8FA0HG,YAAa,CACb,aAAc,CA3HjB,oJA+HI,eAAgB,CA/HpB,oTAqIG,aAAc,CArIjB,iGAyIG,cC3TkB,CD4TlB,eAAY,CACZ,YAAa,CACb,aAAc,CA5IjB,uJA+II,eAAgB,CA/IpB,+gBA0JK,eAA8B,CA1JnC,ygBAiKK,kBAAiC,CAjKtC,2BAuKE,SAAU,CAvKZ,gCAyKG,SCxUa\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nli {\\n\\tdisplay: flex;\\n\\tflex: 0 0 auto;\\n\\n\\t&.hidden {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t> button,\\n\\t> a,\\n\\t> .menuitem {\\n\\t\\tcursor: pointer;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tfont-weight: normal;\\n\\t\\tbox-shadow: none;\\n\\t\\twidth: 100%;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\twhite-space: nowrap;\\n\\t\\topacity: $opacity_normal;\\n\\n\\t\\t// TODO split into individual components for readability\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'],\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tmin-width: 0; /* Overwrite icons*/\\n\\t\\t\\tmin-height: 0;\\n\\t\\t\\tbackground-position: #{$icon-margin} center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t}\\n\\n\\t\\tspan[class^='icon-'],\\n\\t\\tspan[class*=' icon-'] {\\n\\t\\t\\t/* Keep padding to define the width to\\n\\t\\t\\t\\tassure correct position of a possible text */\\n\\t\\t\\tpadding: #{$clickable-area / 2} 0 #{$clickable-area / 2} $clickable-area;\\n\\t\\t}\\n\\n\\t\\t// If no icons set, force left margin to align\\n\\t\\t&:not([class^='icon-']):not([class*='icon-']) {\\n\\t\\t\\t> span,\\n\\t\\t\\t> input,\\n\\t\\t\\t> form {\\n\\t\\t\\t\\t&:not([class^='icon-']):not([class*='icon-']):first-child {\\n\\t\\t\\t\\t\\tmargin-left: $clickable-area;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&[class^='icon-'],\\n\\t\\t&[class*=' icon-'] {\\n\\t\\t\\tpadding: 0 $icon-margin 0 $clickable-area;\\n\\t\\t}\\n\\n\\t\\t&:not(:disabled):hover,\\n\\t\\t&:not(:disabled):focus,\\n\\t\\t&:not(:disabled).active {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t}\\n\\n\\t\\t/* prevent .action class to break the design */\\n\\t\\t&.action {\\n\\t\\t\\tpadding: inherit !important;\\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// long text area\\n\\t\\t> p {\\n\\t\\t\\twidth: 150px;\\n\\t\\t\\tline-height: 1.6em;\\n\\t\\t\\tpadding: 8px 0;\\n\\t\\t\\twhite-space: normal;\\n\\t\\t}\\n\\n\\t\\t// TODO: do we really supports it?\\n\\t\\t> select {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tmargin-left: 6px;\\n\\t\\t}\\n\\n\\t\\t/* Add padding if contains icon+text */\\n\\t\\t&:not(:empty) {\\n\\t\\t\\tpadding-right: $icon-margin !important;\\n\\t\\t}\\n\\n\\t\\t/* DEPRECATED! old img in popover fallback\\n\\t\\t\\t* TODO: to remove */\\n\\t\\t> img {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\tpadding: $icon-margin;\\n\\t\\t}\\n\\n\\t\\t/* checkbox/radio fixes */\\n\\t\\t> input.radio + label,\\n\\t\\t> input.checkbox + label {\\n\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\t\\t> input.checkbox + label::before {\\n\\t\\t\\tmargin: -2px 13px 0;\\n\\t\\t}\\n\\t\\t> input.radio + label::before {\\n\\t\\t\\tmargin: -2px 12px 0;\\n\\t\\t}\\n\\t\\t> input:not([type=radio]):not([type=checkbox]):not([type=image]) {\\n\\t\\t\\twidth: 150px;\\n\\t\\t}\\n\\n\\t\\t// Forms & text inputs\\n\\t\\tform {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t/* put a small space between text and form\\n\\t\\t\\t\\tif there is an element before */\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t/* no margin if hidden span before */\\n\\t\\t> span.hidden + form,\\n\\t\\t> span[style*='display:none'] + form {\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t}\\n\\t\\t/* Inputs inside popover supports text, submit & reset */\\n\\t\\tinput {\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\tmax-height: #{$clickable-area - 4px}; /* twice the element margin-y */\\n\\t\\t\\tmargin: 2px 0;\\n\\t\\t\\tflex: 1 1 auto;\\n\\t\\t\\t// space between inline inputs\\n\\t\\t\\t&:not(:first-child) {\\n\\t\\t\\t\\tmargin-left: 5px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t// TODO: do that in js, should be cleaner\\n\\t/* css hack, only first not hidden */\\n\\t&:not(.hidden):not([style*='display:none']) {\\n\\t\\t&:first-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-top: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:last-of-type {\\n\\t\\t\\t> button, > a, > .menuitem {\\n\\t\\t\\t\\t> form, > input {\\n\\t\\t\\t\\t\\tmargin-bottom: $icon-margin - 2px; // minus the input margin\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t> button {\\n\\t\\tpadding: 0;\\n\\t\\tspan {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($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\"],sourceRoot:\"\"}]),t.a=i},function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r)()(o.a);i.push([e.i,\"ul[data-v-81c2afc0]{display:flex;flex-direction:column}\\n\",\"\",{version:3,sources:[\"webpack://./PopoverMenu.vue\"],names:[],mappings:\"AA0DA,oBACC,YAAa,CACb,qBAAsB\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nul {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n\"],sourceRoot:\"\"}]),t.a=i},function(e,t){},function(e,t){e.exports=require(\"escape-html\")},function(e,t,n){\"use strict\";n(26);\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nfunction s(e,t,n){this.r=e,this.g=t,this.b=n}function o(e,t,n){var o=[];o.push(t);for(var r=function(e,t){var n=new Array(3);return n[0]=(t[1].r-t[0].r)/e,n[1]=(t[1].g-t[0].g)/e,n[2]=(t[1].b-t[0].b)/e,n}(e,[t,n]),i=1;i<e;i++){var a=parseInt(t.r+r[0]*i,10),c=parseInt(t.g+r[1]*i,10),m=parseInt(t.b+r[2]*i,10);o.push(new s(a,c,m))}return o}t.a=function(e){e||(e=6);var t=new s(182,70,157),n=new s(221,203,85),r=new s(0,130,201),i=o(e,t,n),a=o(e,n,r),c=o(e,r,t);return i.concat(a).concat(c)}},,function(e,t,n){\"use strict\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.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(\"59f1214\"),\"\")}))}},function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r),a=n(4),c=n.n(a),m=n(7),A=n(8),l=n(9),g=n(10),u=i()(o.a),d=c()(m.a),p=c()(A.a),v=c()(l.a),f=c()(g.a);u.push([e.i,'@font-face{font-family:\"iconfont-vue-59f1214\";src:url('+d+\");src:url(\"+d+') format(\"embedded-opentype\"),url('+p+') format(\"woff\"),url('+v+') format(\"truetype\"),url('+f+') format(\"svg\")}.icon[data-v-5adbb6fa]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.arrow-left[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.arrow-right-double[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.arrow-right[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.breadcrumb[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.checkmark[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.close[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.confirm[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.info[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.menu[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.more[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.pause[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.play[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.triangle-s[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.user-status-away[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.user-status-dnd[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.user-status-invisible[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.icon.user-status-online[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";content:\"\"}.avatardiv[data-v-5adbb6fa]{position:relative;display:inline-block}.avatardiv--unknown[data-v-5adbb6fa]{position:relative;background-color:var(--color-text-maxcontrast)}.avatardiv[data-v-5adbb6fa]:not(.avatardiv--unknown){background-color:#fff !important;box-shadow:0 0 5px rgba(0,0,0,0.05) inset}body.theme--dark .avatardiv[data-v-5adbb6fa]:not(.avatardiv--unknown){background-color:#000 !important}.avatardiv--with-menu[data-v-5adbb6fa]{cursor:pointer}.avatardiv--with-menu .icon-more[data-v-5adbb6fa]{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:inherit;height:inherit;cursor:pointer;opacity:0;background:none;font-size:18px}.avatardiv--with-menu .icon-more[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";font-style:normal;font-weight:400;content:\"\"}.avatardiv--with-menu .icon-more[data-v-5adbb6fa]::before{display:block}.avatardiv--with-menu:focus .icon-more[data-v-5adbb6fa],.avatardiv--with-menu:hover .icon-more[data-v-5adbb6fa]{opacity:1}.avatardiv--with-menu:focus img[data-v-5adbb6fa],.avatardiv--with-menu:hover img[data-v-5adbb6fa]{opacity:0.3}.avatardiv--with-menu .icon-more[data-v-5adbb6fa],.avatardiv--with-menu img[data-v-5adbb6fa]{transition:opacity var(--animation-quick)}.avatardiv>.unknown[data-v-5adbb6fa]{position:absolute;top:0;left:0;display:block;width:100%;text-align:center;font-weight:normal;color:var(--color-main-background)}.avatardiv img[data-v-5adbb6fa]{width:100%;height:100%;object-fit:cover}.avatardiv .avatardiv__status[data-v-5adbb6fa]{position:absolute;top:22px;left:22px;width:10px;height:10px;border:1px solid rgba(255,255,255,0.5);background-clip:content-box}.avatardiv .avatardiv__status--positive[data-v-5adbb6fa]{border-radius:50%;background-color:var(--color-success)}.avatardiv .avatardiv__status--negative[data-v-5adbb6fa]{background-color:var(--color-error)}.avatardiv .avatardiv__status--neutral[data-v-5adbb6fa]{border:none;background-color:transparent !important}.avatardiv .avatardiv__status--neutral svg[data-v-5adbb6fa]{position:absolute;top:-3px;left:-2px}.avatardiv .avatardiv__status--neutral svg path[data-v-5adbb6fa]{fill:#aaa}.avatardiv .avatardiv__user-status[data-v-5adbb6fa]{position:absolute;right:-4px;bottom:-4px;height:18px;width:18px;line-height:15px;font-size:var(--default-font-size);border:2px solid var(--color-main-background);background-color:var(--color-main-background);border-radius:50%}.acli:hover .avatardiv .avatardiv__user-status[data-v-5adbb6fa]{border-color:var(--color-background-hover);background-color:var(--color-background-hover)}.acli.active .avatardiv .avatardiv__user-status[data-v-5adbb6fa]{border-color:var(--color-primary-light);background-color:var(--color-primary-light)}.avatardiv .avatardiv__user-status--online[data-v-5adbb6fa]{color:#49b382}.avatardiv .avatardiv__user-status--online[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";font-style:normal;font-weight:400;content:\"\"}.avatardiv .avatardiv__user-status--dnd[data-v-5adbb6fa]{background-color:#ffffff;color:#ed484c}.avatardiv .avatardiv__user-status--dnd[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";font-style:normal;font-weight:400;content:\"\"}.avatardiv .avatardiv__user-status--away[data-v-5adbb6fa]{color:#f4a331}.avatardiv .avatardiv__user-status--away[data-v-5adbb6fa]:before{font-family:\"iconfont-vue-59f1214\";font-style:normal;font-weight:400;content:\"\"}.avatardiv .avatardiv__user-status--icon[data-v-5adbb6fa]{border:none;background-color:transparent}.avatardiv .popovermenu-wrapper[data-v-5adbb6fa]{position:relative;display:inline-block}.avatardiv .popovermenu[data-v-5adbb6fa]{display:block;margin:0;font-size:var(--default-font-size)}.avatar-class-icon[data-v-5adbb6fa]{border-radius:50%;background-color:var(--color-background-darker);height:100%}\\n',\"\",{version:3,sources:[\"webpack://./../../fonts/scss/iconfont-vue.scss\",\"webpack://./Avatar.vue\"],names:[],mappings:\"AA2FE,WACC,kCAAmC,CACnC,2CAAuC,CACvC,+OAGmD,CAMpD,uBACE,iBAAkB,CAClB,eAAgB,CAFlB,gDAMM,kCAAmC,CACnC,WA5Ge,CAAO,yCA0GL,kCACJ,CAAsB,WA1G3B,CAAA,iDAyGU,kCACL,CAAA,WAzGG,CAAA,0CAwGL,kCACE,CAAA,WAxGJ,CAAA,yCAuGC,kCACG,CAAA,WACN,CAxGC,wCAsGC,kCACI,CAAA,WACb,CAAO,oCAFF,kCACQ,CAAA,WACb,CAAA,sCAFO,kCACM,CAAA,WACb,CAAA,mCAFI,kCACS,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WACb,CAAA,oCAPD,kCAMc,CAAA,WACb,CAAA,mCAPD,kCAMc,CAAA,WAAsB,CACnC,yCAPD,kCAMc,CAAA,WAAA,CAAsB,+CANpC,kCAMc,CAAA,WAAA,CAAA,8CANd,kCAMc,CAAA,WAAA,CAAA,oDANd,kCAMc,CAAA,WAAA,CAAA,iDANd,kCAMc,CAAA,WAAA,CAAA,4BACb,iBC4cE,CACT,oBACA,CAAA,qCAEA,iBAAU,CACT,8CACkB,CAAA,qDAGZ,gCAEN,CAAA,yCAKoB,CAAA,sEAPd,gCAKL,CAAA,uCACA,cAAA,CAAA,kDAID,iBAEU,CACT,KAAA,CAAA,MAAU,CAAA,YAEV,CAAA,kBAEA,CAAA,sBACA,CAAA,aAAiB,CAAA,cACV,CAAA,cACC,CAAA,SACF,CAAE,eACD,CAAE,cACG,CAAA,yDAXb,kCD9kBD,CAAA,iBAAsB,CAkFnB,eAAY,CAAA,WACZ,CAAA,0DC2fF,aAAU,CAAA,gHAFV,SAuBC,CAAA,kGAvBD,WAAW,CAAA,6FAAX,yCAgCqB,CAAA,qCAnDvB,iBAuDG,CAAQ,KACT,CAAA,MAAU,CAAA,aAEV,CAAA,UACA,CAAA,iBACO,CAAI,kBACO,CAClB,kCACO,CAAA,gCAAA,UA/DT,CAAA,WAoEE,CAAA,gBACQ,CAAA,+CAKT,iBAAA,CAAkB,QACjB,CAAQ,SAAU,CAClB,UACA,CAAA,WACA,CAAA,sCAEkB,CAAA,2BAClB,CAAA,yDACC,iBAAA,CAAU,qCAEQ,CAAA,yDAElB,mCACgB,CAAE,wDAElB,WAAA,CAAA,uCAEkB,CAAA,4DAFlB,iBAGA,CAAG,QACF,CAAQ,SAAU,CAClB,iEALD,SAAS,CAGT,oDAWF,iBAAA,CAAuB,UACZ,CAAA,WACV,CAAA,WACA,CAAA,UACA,CAAA,gBACO,CAAA,kCAEI,CAAA,6CACO,CAAA,6CACA,CAAA,iBAAA,CAA4B,gEAT/C,0CAagB,CAAA,8CACI,CAAA,iEAdpB,uCAiBgB,CAAA,2CACI,CAAA,4DAGlB,aAAA,CAAA,mEAAA,kCDrrBF,CAAA,iBAAA,CAAsB,eAkFP,CAAA,WACZ,CAAA,yDCsmBD,wBAEA,CAAA,aAAkB,CAAA,gEAFlB,kCDzrBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DC2mBD,aAAA,CAAA,iEAAA,kCD9rBF,CAAA,iBAAA,CAAA,eAkFe,CAAA,WACZ,CAAA,0DC+mBD,WAAA,CAAA,4BAEA,CAAA,iDA3IO,iBA+IT,CAAA,oBACW,CAAQ,yCAhJpB,aAoJC,CAAA,QACC,CAAA,kCAEW,CAAA,oCAAA,iBACX,CAAA,+CAKiB,CAAA,WAAA\",sourcesContent:['$__iconfont__data: map-merge(if(global_variable_exists(\\'__iconfont__data\\'), $__iconfont__data, ()), (\\n\\t\"iconfont-vue-59f1214\": (\\n\\t\\t\"arrow-left-double\": \"\\\\ea01\",\\n\\t\\t\"arrow-left\": \"\\\\ea02\",\\n\\t\\t\"arrow-right-double\": \"\\\\ea03\",\\n\\t\\t\"arrow-right\": \"\\\\ea04\",\\n\\t\\t\"breadcrumb\": \"\\\\ea05\",\\n\\t\\t\"checkmark\": \"\\\\ea06\",\\n\\t\\t\"close\": \"\\\\ea07\",\\n\\t\\t\"confirm\": \"\\\\ea08\",\\n\\t\\t\"info\": \"\\\\ea09\",\\n\\t\\t\"menu\": \"\\\\ea0a\",\\n\\t\\t\"more\": \"\\\\ea0b\",\\n\\t\\t\"pause\": \"\\\\ea0c\",\\n\\t\\t\"play\": \"\\\\ea0d\",\\n\\t\\t\"triangle-s\": \"\\\\ea0e\",\\n\\t\\t\"user-status-away\": \"\\\\ea0f\",\\n\\t\\t\"user-status-dnd\": \"\\\\ea10\",\\n\\t\\t\"user-status-invisible\": \"\\\\ea11\",\\n\\t\\t\"user-status-online\": \"\\\\ea12\"\\n\\t)\\n));\\n\\n\\n$create-font-face: true !default; // should the @font-face tag get created?\\n\\n// should there be a custom class for each icon? will be .filename\\n$create-icon-classes: true !default; \\n\\n// what is the common class name that icons share? in this case icons need to have .icon.filename in their classes\\n// this requires you to have 2 classes on each icon html element, but reduced redeclaration of the font family\\n// for each icon\\n$icon-common-class: \\'icon\\' !default;\\n\\n// if you whish to prefix your filenames, here you can do so.\\n// if this string stays empty, your classes will use the filename, for example\\n// an icon called star.svg will result in a class called .star\\n// if you use the prefix to be \\'icon-\\' it would result in .icon-star\\n$icon-prefix: \\'\\' !default; \\n\\n// helper function to get the correct font group\\n@function iconfont-group($group: null) {\\n @if (null == $group) {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n @if (false == map-has-key($__iconfont__data, $group)) {\\n @warn \\'Undefined Iconfont Family!\\';\\n @return ();\\n }\\n @return map-get($__iconfont__data, $group);\\n}\\n\\n// helper function to get the correct icon of a group\\n@function iconfont-item($name) {\\n $slash: str-index($name, \\'/\\');\\n $group: null;\\n @if ($slash) {\\n $group: str-slice($name, 0, $slash - 1);\\n $name: str-slice($name, $slash + 1);\\n } @else {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n $group: iconfont-group($group);\\n @if (false == map-has-key($group, $name)) {\\n @warn \\'Undefined Iconfont Glyph!\\';\\n @return \\'\\';\\n }\\n @return map-get($group, $name);\\n}\\n\\n// complete mixing to include the icon\\n// usage:\\n// .my_icon{ @include iconfont(\\'star\\') }\\n@mixin iconfont($icon) {\\n $slash: str-index($icon, \\'/\\');\\n $group: null;\\n @if ($slash) {\\n $group: str-slice($icon, 0, $slash - 1);\\n } @else {\\n $group: nth(map-keys($__iconfont__data), 1);\\n }\\n &:before {\\n font-family: $group;\\n font-style: normal;\\n font-weight: 400;\\n content: iconfont-item($icon);\\n }\\n}\\n\\n// creates the font face tag if the variable is set to true (default)\\n@if $create-font-face == true {\\n @font-face {\\n font-family: \"iconfont-vue-59f1214\";\\n src: url(\\'../iconfont-vue-59f1214.eot\\'); /* IE9 Compat Modes */\\n src: url(\\'../iconfont-vue-59f1214.eot?#iefix\\') format(\\'embedded-opentype\\'), /* IE6-IE8 */\\n url(\\'../iconfont-vue-59f1214.woff\\') format(\\'woff\\'), /* Pretty Modern Browsers */\\n url(\\'../iconfont-vue-59f1214.ttf\\') format(\\'truetype\\'), /* Safari, Android, iOS */\\n url(\\'../iconfont-vue-59f1214.svg\\') format(\\'svg\\'); /* Legacy iOS */\\n }\\n}\\n\\n// creates icon classes for each individual loaded svg (default)\\n@if $create-icon-classes == true {\\n .#{$icon-common-class} {\\n font-style: normal;\\n font-weight: 400;\\n\\n @each $icon, $content in map-get($__iconfont__data, \"iconfont-vue-59f1214\") {\\n &.#{$icon-prefix}#{$icon}:before {\\n font-family: \"iconfont-vue-59f1214\";\\n content: iconfont-item(\"iconfont-vue-59f1214/#{$icon}\");\\n }\\n }\\n }\\n}\\n',\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n@import '../../fonts/scss/iconfont-vue';\\n\\n.avatardiv {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t&--unknown {\\n\\t\\tposition: relative;\\n\\t\\tbackground-color: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&:not(&--unknown) {\\n\\t\\t// White background for avatars with transparency\\n\\t\\tbackground-color: #fff !important;\\n\\t\\tbody.theme--dark & {\\n\\t\\t\\t// And black background in dark mode, as it shines through on hover of the menu\\n\\t\\t\\tbackground-color: #000 !important;\\n\\t\\t}\\n\\t\\tbox-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\\n\\t}\\n\\n\\t&--with-menu {\\n\\t\\tcursor: pointer;\\n\\t\\t.icon-more {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: inherit;\\n\\t\\t\\theight: inherit;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\topacity: 0;\\n\\t\\t\\tbackground: none;\\n\\t\\t\\tfont-size: 18px;\\n\\n\\t\\t\\t@include iconfont('more');\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t&:focus,\\n\\t\\t&:hover {\\n\\t\\t\\t.icon-more {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t\\timg {\\n\\t\\t\\t\\topacity: 0.3;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\\t.icon-more,\\n\\t\\timg {\\n\\t\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\t}\\n\\t}\\n\\n\\t> .unknown {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tdisplay: block;\\n\\t\\twidth: 100%;\\n\\t\\ttext-align: center;\\n\\t\\tfont-weight: normal;\\n\\t\\tcolor: var(--color-main-background);\\n\\t}\\n\\n\\timg {\\n\\t\\t// Cover entire area\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\t// Keep ratio\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t.avatardiv__status {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 22px;\\n\\t\\tleft: 22px;\\n\\t\\twidth: 10px;\\n\\t\\theight: 10px;\\n\\t\\tborder: 1px solid rgba(255, 255, 255, .5);\\n\\t\\tbackground-clip: content-box;\\n\\t\\t&--positive {\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t\\t&--negative {\\n\\t\\t\\tbackground-color: var(--color-error);\\n\\t\\t}\\n\\t\\t&--neutral {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent !important;\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: -3px;\\n\\t\\t\\t\\tleft: -2px;\\n\\t\\t\\t\\tpath {\\n\\t\\t\\t\\t\\tfill: #aaa;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.avatardiv__user-status {\\n\\t\\tposition: absolute;\\n\\t\\tright: -4px;\\n\\t\\tbottom: -4px;\\n\\t\\theight: 18px;\\n\\t\\twidth: 18px;\\n\\t\\tline-height: 15px;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tborder-radius: 50%;\\n\\n\\t\\t.acli:hover & {\\n\\t\\t\\tborder-color: var(--color-background-hover);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t.acli.active & {\\n\\t\\t\\tborder-color: var(--color-primary-light);\\n\\t\\t\\tbackground-color: var(--color-primary-light);\\n\\t\\t}\\n\\n\\t\\t&--online{\\n\\t\\t\\t@include iconfont('user-status-online');\\n\\t\\t\\tcolor: #49b382;\\n\\t\\t}\\n\\t\\t&--dnd{\\n\\t\\t\\t@include iconfont('user-status-dnd');\\n\\t\\t\\tbackground-color: #ffffff;\\n\\t\\t\\tcolor: #ed484c;\\n\\t\\t}\\n\\t\\t&--away{\\n\\t\\t\\t@include iconfont('user-status-away');\\n\\t\\t\\tcolor: #f4a331;\\n\\t\\t}\\n\\t\\t&--icon {\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t.popovermenu-wrapper {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t.popovermenu {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: 0;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t}\\n}\\n\\n.avatar-class-icon {\\n\\tborder-radius: 50%;\\n\\tbackground-color: var(--color-background-darker);\\n\\theight: 100%;\\n}\\n\\n\"],sourceRoot:\"\"}]),t.a=u},function(e,t){},function(e,t,n){\"use strict\";n.r(t);n(31),n(38),n(45),n(49),n(19),n(40),n(14),n(6),n(16),n(20),n(21);function s(e,t){var n;if(\"undefined\"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if(\"string\"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var s=0,r=function(){};return{s:r,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var i,a=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,s=new Array(t);n<t;n++)s[n]=e[n];return s}\n/**\n * @copyright Copyright (c) 2020 Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @author Georg Ehrke <georg-nextcloud@ehrke.email>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default={props:{excludeClickOutsideClasses:{type:String|Array,default:function(){return[]}}},methods:{clickOutsideMiddleware:function(e){var t=Array.isArray(this.excludeClickOutsideClasses)?this.excludeClickOutsideClasses:[this.excludeClickOutsideClasses];return 0===t.length||!this.hasNodeOrAnyParentClass(e.target,t)},hasNodeOrAnyParentClass:function(e,t){var n,o=s(t);try{for(o.s();!(n=o.n()).done;){var r=n.value;if(e.classList.contains(r))return!0}}catch(e){o.e(e)}finally{o.f()}return!!e.parentElement&&this.hasNodeOrAnyParentClass(e.parentElement,t)}}}},function(e,t,n){\"use strict\";n.r(t),\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default={data:function(){return{isFullscreen:this._isFullscreen()}},beforeMount:function(){window.addEventListener(\"resize\",this._onResize)},beforeDestroy:function(){window.removeEventListener(\"resize\",this._onResize)},methods:{_onResize:function(){this.isFullscreen=this._isFullscreen()},_isFullscreen:function(){return window.outerHeight===screen.height}}}},function(e,t,n){\"use strict\";n(13);t.a=function(e,t){for(var n=[],s=0,o=e.toLowerCase().indexOf(t.toLowerCase(),s),r=0;o>-1&&r<e.length;)s=o+t.length,n.push({start:o,end:s}),o=e.toLowerCase().indexOf(t.toLowerCase(),o+1),r++;return n}},function(e,t){e.exports=require(\"core-js/modules/es.string.split\")},function(e,t,n){\"use strict\";n.r(t);n(13),n(19),n(6),n(16),n(20),n(21),n(35);var s={name:\"PopoverMenuItem\",props:{item:{type:Object,required:!0,default:function(){return{key:\"nextcloud-link\",href:\"https://nextcloud.com\",icon:\"icon-links\",text:\"Nextcloud\"}},validator:function(e){return!e.input||-1!==[\"text\",\"checkbox\"].indexOf(e.input)}}},computed:{key:function(){return this.item.key?this.item.key:Math.round(16*Math.random()*1e6).toString(16)},iconIsUrl:function(){try{return new URL(this.item.icon),!0}catch(e){return!1}}},methods:{action:function(e){this.item.action&&this.item.action(e)}}},o=n(2),r=n.n(o),i=n(60),a={insert:\"head\",singleton:!1},c=(r()(i.a,a),i.a.locals,n(61)),m={insert:\"head\",singleton:!1},A=(r()(c.a,m),c.a.locals,n(3)),l={name:\"PopoverMenu\",components:{PopoverMenuItem:Object(A.a)(s,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"li\",[e.item.href?n(\"a\",{staticClass:\"focusable\",attrs:{href:e.item.href?e.item.href:\"#\",target:e.item.target?e.item.target:\"\",download:e.item.download,rel:\"noreferrer noopener\"},on:{click:e.action}},[e.iconIsUrl?n(\"img\",{attrs:{src:e.item.icon}}):n(\"span\",{class:e.item.icon}),e._v(\" \"),e.item.text&&e.item.longtext?n(\"p\",[n(\"strong\",{staticClass:\"menuitem-text\"},[e._v(\"\\n\\t\\t\\t\\t\"+e._s(e.item.text)+\"\\n\\t\\t\\t\")]),n(\"br\"),e._v(\" \"),n(\"span\",{staticClass:\"menuitem-text-detail\"},[e._v(\"\\n\\t\\t\\t\\t\"+e._s(e.item.longtext)+\"\\n\\t\\t\\t\")])]):e.item.text?n(\"span\",[e._v(\"\\n\\t\\t\\t\"+e._s(e.item.text)+\"\\n\\t\\t\")]):e.item.longtext?n(\"p\",[e._v(\"\\n\\t\\t\\t\"+e._s(e.item.longtext)+\"\\n\\t\\t\")]):e._e()]):e.item.input?n(\"span\",{staticClass:\"menuitem\",class:{active:e.item.active}},[\"checkbox\"!==e.item.input?n(\"span\",{class:e.item.icon}):e._e(),e._v(\" \"),\"text\"===e.item.input?n(\"form\",{class:e.item.input,on:{submit:function(t){return t.preventDefault(),e.item.action(t)}}},[n(\"input\",{attrs:{type:e.item.input,placeholder:e.item.text,required:\"\"},domProps:{value:e.item.value}}),e._v(\" \"),n(\"input\",{staticClass:\"icon-confirm\",attrs:{type:\"submit\",value:\"\"}})]):[\"checkbox\"===e.item.input?n(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.item.model,expression:\"item.model\"}],class:e.item.input,attrs:{id:e.key,type:\"checkbox\"},domProps:{checked:Array.isArray(e.item.model)?e._i(e.item.model,null)>-1:e.item.model},on:{change:[function(t){var n=e.item.model,s=t.target,o=!!s.checked;if(Array.isArray(n)){var r=e._i(n,null);s.checked?r<0&&e.$set(e.item,\"model\",n.concat([null])):r>-1&&e.$set(e.item,\"model\",n.slice(0,r).concat(n.slice(r+1)))}else e.$set(e.item,\"model\",o)},e.item.action]}}):\"radio\"===e.item.input?n(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.item.model,expression:\"item.model\"}],class:e.item.input,attrs:{id:e.key,type:\"radio\"},domProps:{checked:e._q(e.item.model,null)},on:{change:[function(t){return e.$set(e.item,\"model\",null)},e.item.action]}}):n(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.item.model,expression:\"item.model\"}],class:e.item.input,attrs:{id:e.key,type:e.item.input},domProps:{value:e.item.model},on:{change:e.item.action,input:function(t){t.target.composing||e.$set(e.item,\"model\",t.target.value)}}}),e._v(\" \"),n(\"label\",{attrs:{for:e.key},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.item.action(t)}}},[e._v(\"\\n\\t\\t\\t\\t\"+e._s(e.item.text)+\"\\n\\t\\t\\t\")])]],2):e.item.action?n(\"button\",{staticClass:\"menuitem focusable\",class:{active:e.item.active},attrs:{disabled:e.item.disabled},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.item.action(t)}}},[n(\"span\",{class:e.item.icon}),e._v(\" \"),e.item.text&&e.item.longtext?n(\"p\",[n(\"strong\",{staticClass:\"menuitem-text\"},[e._v(\"\\n\\t\\t\\t\\t\"+e._s(e.item.text)+\"\\n\\t\\t\\t\")]),n(\"br\"),e._v(\" \"),n(\"span\",{staticClass:\"menuitem-text-detail\"},[e._v(\"\\n\\t\\t\\t\\t\"+e._s(e.item.longtext)+\"\\n\\t\\t\\t\")])]):e.item.text?n(\"span\",[e._v(\"\\n\\t\\t\\t\"+e._s(e.item.text)+\"\\n\\t\\t\")]):e.item.longtext?n(\"p\",[e._v(\"\\n\\t\\t\\t\"+e._s(e.item.longtext)+\"\\n\\t\\t\")]):e._e()]):n(\"span\",{staticClass:\"menuitem\",class:{active:e.item.active}},[n(\"span\",{class:e.item.icon}),e._v(\" \"),e.item.text&&e.item.longtext?n(\"p\",[n(\"strong\",{staticClass:\"menuitem-text\"},[e._v(\"\\n\\t\\t\\t\\t\"+e._s(e.item.text)+\"\\n\\t\\t\\t\")]),n(\"br\"),e._v(\" \"),n(\"span\",{staticClass:\"menuitem-text-detail\"},[e._v(\"\\n\\t\\t\\t\\t\"+e._s(e.item.longtext)+\"\\n\\t\\t\\t\")])]):e.item.text?n(\"span\",[e._v(\"\\n\\t\\t\\t\"+e._s(e.item.text)+\"\\n\\t\\t\")]):e.item.longtext?n(\"p\",[e._v(\"\\n\\t\\t\\t\"+e._s(e.item.longtext)+\"\\n\\t\\t\")]):e._e()])])}),[],!1,null,\"3ad7b73b\",null).exports},props:{menu:{type:Array,default:function(){return[{href:\"https://nextcloud.com\",icon:\"icon-links\",text:\"Nextcloud\"}]},required:!0}}},g=n(62),u={insert:\"head\",singleton:!1},d=(r()(g.a,u),g.a.locals,n(63)),p=n.n(d),v=Object(A.a)(l,(function(){var e=this.$createElement,t=this._self._c||e;return t(\"ul\",this._l(this.menu,(function(e,n){return t(\"PopoverMenuItem\",{key:n,attrs:{item:e}})})),1)}),[],!1,null,\"81c2afc0\",null);\"function\"==typeof p.a&&p()(v);var f=v.exports;\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=f},function(e,t,n){\"use strict\";n.r(t);n(31),n(48),n(83),n(15),n(93),n(120),n(121),n(103),n(17),n(100),n(84);var s=n(72);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var a={name:\"Highlight\",props:{text:{type:String,default:\"\"},search:{type:String,default:\"\"},highlight:{type:Array,default:function(){return[]}}},computed:{ranges:function(){var e=this,t=[];return this.search||0!==this.highlight.length?(t=this.highlight.length>0?this.highlight:Object(s.a)(this.text,this.search),t.reduce((function(t,n){return n.start<e.text.length&&n.end>0&&t.push({start:n.start<0?0:n.start,end:n.end>e.text.length?e.text.length:n.end}),t}),[])):t},chunks:function(){if(0===this.ranges.length)return[{start:0,end:this.text.length,highlight:!1,text:this.text}];for(var e=[],t=0,n=0;t<this.text.length;){var s=this.ranges[n];s.start!==t?(e.push({start:t,end:s.start,highlight:!1,text:this.text.substr(t,s.start-t)}),t=s.start):(e.push(r(r({},s),{},{highlight:!0,text:this.text.substr(s.start,s.end-s.start)})),n++,t=s.end,n>=this.ranges.length&&t<this.text.length&&(e.push({start:t,end:this.text.length,highlight:!1,text:this.text.substr(t,this.text.length-t)}),t=this.text.length))}return e}},render:function(e){return this.ranges.length?e(\"span\",{},this.chunks.map((function(t){return t.highlight?e(\"strong\",{},t.text):t.text}))):e(\"span\",{},this.text)}},c=n(3),m=n(82),A=n.n(m),l=Object(c.a)(a,void 0,void 0,!1,null,null,null);\"function\"==typeof A.a&&A()(l);var g=l.exports;\n/**\n * @copyright Copyright (c) 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=g},function(e,t,n){\"use strict\";n.r(t);n(26),n(89),n(13),n(56),n(15),n(33),n(6),n(57),n(104),n(105),n(58);var s=n(90),o=n(50),r=n(74),i=n(42),a=n(27),c=n(41),m=n.n(c),A=n(18),l=n(22),g=n(79),u=n(51);function d(e,t,n,s,o,r,i){try{var a=e[r](i),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(s,o)}function p(e){return function(){var t=this,n=arguments;return new Promise((function(s,o){var r=e.apply(t,n);function i(e){d(r,s,o,i,a,\"next\",e)}function a(e){d(r,s,o,i,a,\"throw\",e)}i(void 0)}))}}var v=Object(s.getBuilder)(\"nextcloud\").persist().build();function f(e){var t=v.getItem(\"user-has-avatar.\"+e);return\"string\"==typeof t?Boolean(t):null}function h(e,t){e&&v.setItem(\"user-has-avatar.\"+e,t)}var b={name:\"Avatar\",directives:{tooltip:l.default,ClickOutside:o.directive},components:{PopoverMenu:r.default},mixins:[u.e],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},showUserStatus:{type:Boolean,default:!0},showUserStatusCompact:{type:Boolean,default:!0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},allowPlaceholder:{type:Boolean,default:!0},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},status:{type:String,default:null,validator:function(e){switch(e){case\"positive\":case\"negative\":case\"neutral\":return!0}return!1}},statusColor:{type:[Number,String],default:null,validator:function(e){return/^([a-f0-9]{3}){1,2}$/i.test(e)}},menuPosition:{type:String,default:\"center\"}},data:function(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{canDisplayUserStatus:function(){return this.showUserStatus&&this.hasStatus&&[\"online\",\"away\",\"dnd\"].includes(this.userStatus.status)},showUserStatusIconOnAvatar:function(){return this.showUserStatus&&this.showUserStatusCompact&&this.hasStatus&&\"dnd\"!==this.userStatus.status&&this.userStatus.icon},getUserIdentifier:function(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:\"\"},isUserDefined:function(){return void 0!==this.user},isDisplayNameDefined:function(){return void 0!==this.displayName},isUrlDefined:function(){return void 0!==this.url},hasMenu:function(){var e;return!this.disableMenu&&(this.isMenuLoaded?this.menu.length>0:!(this.user===(null===(e=Object(i.getCurrentUser)())||void 0===e?void 0:e.uid)||this.userDoesNotExist||this.url))},shouldShowPlaceholder:function(){return this.allowPlaceholder&&this.userDoesNotExist},avatarStyle:function(){var e={width:this.size+\"px\",height:this.size+\"px\",lineHeight:this.size+\"px\",fontSize:Math.round(.55*this.size)+\"px\"};if(!this.iconClass&&!this.avatarSrcSetLoaded){var t=Object(g.default)(this.getUserIdentifier);e.backgroundColor=\"rgb(\"+t.r+\", \"+t.g+\", \"+t.b+\")\"}return e},tooltip:function(){return!this.disableTooltip&&(this.tooltipMessage?this.tooltipMessage:this.displayName)},initials:function(){var e;if(this.shouldShowPlaceholder){var t=this.getUserIdentifier,n=t.indexOf(\" \");\"\"===t?e=\"?\":(e=String.fromCodePoint(t.codePointAt(0)),-1!==n&&(e=e.concat(String.fromCodePoint(t.codePointAt(n+1)))))}return e.toUpperCase()},menu:function(){var e,t,n,s=this.contactsMenuActions.map((function(e){return{href:e.hyperlink,icon:e.icon,text:e.title}}));return this.showUserStatus&&(this.userStatus.icon||this.userStatus.message)?[{href:\"#\",icon:\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><text x='0' y='14' font-size='14'>\".concat((e=this.userStatus.icon,t=document.createTextNode(e),n=document.createElement(\"p\"),n.appendChild(t),n.innerHTML),\"</text></svg>\"),text:\"\".concat(this.userStatus.message)}].concat(s):s}},watch:{url:function(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user:function(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()}},mounted:function(){this.loadAvatarUrl(),this.showUserStatus&&this.user&&!this.isNoUser&&(this.fetchUserStatus(this.user),Object(a.subscribe)(\"user_status:status.updated\",this.handleUserStatusUpdated))},beforeDestroyed:function(){this.showUserStatus&&this.user&&!this.isNoUser&&Object(a.unsubscribe)(\"user_status:status.updated\",this.handleUserStatusUpdated)},methods:{handleUserStatusUpdated:function(e){this.user===e.userId&&(this.userStatus={status:e.status,icon:e.icon,message:e.message})},toggleMenu:function(){var e=this;return p(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.hasMenu){t.next=2;break}return t.abrupt(\"return\");case 2:if(e.contactsMenuOpenState){t.next=5;break}return t.next=5,e.fetchContactsMenu();case 5:e.contactsMenuOpenState=!e.contactsMenuOpenState;case 6:case\"end\":return t.stop()}}),t)})))()},closeMenu:function(){this.contactsMenuOpenState=!1},fetchContactsMenu:function(){var e=this;return p(regeneratorRuntime.mark((function t(){var n,s,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n=encodeURIComponent(e.user),t.next=4,m.a.post(Object(A.generateUrl)(\"contactsmenu/findOne\"),\"shareType=0&shareWith=\".concat(n));case 4:s=t.sent,o=s.data,e.contactsMenuActions=o.topAction?[o.topAction].concat(o.actions):o.actions,t.next=12;break;case 9:t.prev=9,t.t0=t.catch(0),e.contactsMenuOpenState=!1;case 12:e.isMenuLoaded=!0;case 13:case\"end\":return t.stop()}}),t,null,[[0,9]])})))()},loadAvatarUrl:function(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser))return this.isAvatarLoaded=!0,void(this.userDoesNotExist=!0);if(this.isUrlDefined)this.updateImageIfValid(this.url);else{var e=this.avatarUrlGenerator(this.user,this.size),t=[e+\" 1x\",this.avatarUrlGenerator(this.user,2*this.size)+\" 2x\",this.avatarUrlGenerator(this.user,4*this.size)+\" 4x\"].join(\", \");this.updateImageIfValid(e,t)}},avatarUrlGenerator:function(e,t){var n,s=\"/avatar/{user}/{size}\";this.isGuest&&(s=\"/avatar/guest/{user}/{size}\");var o=Object(A.generateUrl)(s,{user:e,size:t});return e===(null===(n=Object(i.getCurrentUser)())||void 0===n?void 0:n.uid)&&\"undefined\"!=typeof oc_userconfig&&(o+=\"?v=\"+oc_userconfig.avatar.version),o},updateImageIfValid:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=f(this.user);if(this.isUserDefined&&\"boolean\"==typeof s)return this.isAvatarLoaded=!0,this.avatarUrlLoaded=e,n&&(this.avatarSrcSetLoaded=n),void(!1===s&&(this.userDoesNotExist=!0));var o=new Image;o.onload=function(){t.avatarUrlLoaded=e,n&&(t.avatarSrcSetLoaded=n),t.isAvatarLoaded=!0,h(t.user,!0)},o.onerror=function(){console.debug(\"Invalid avatar url\",e),t.avatarUrlLoaded=null,t.avatarSrcSetLoaded=null,t.userDoesNotExist=!0,t.isAvatarLoaded=!1,h(t.user,!1)},n&&(o.srcset=n),o.src=e}}},C=n(2),k=n.n(C),M=n(68),E={insert:\"head\",singleton:!1},x=(k()(M.a,E),M.a.locals,n(3)),y=n(69),T=n.n(y),B=Object(x.a)(b,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:e.tooltip,expression:\"tooltip\"},{name:\"click-outside\",rawName:\"v-click-outside\",value:e.closeMenu,expression:\"closeMenu\"}],staticClass:\"avatardiv popovermenu-wrapper\",class:{\"avatardiv--unknown\":e.userDoesNotExist,\"avatardiv--with-menu\":e.hasMenu},style:e.avatarStyle,on:{click:e.toggleMenu}},[e.iconClass?n(\"div\",{staticClass:\"avatar-class-icon\",class:e.iconClass}):e.isAvatarLoaded&&!e.userDoesNotExist?n(\"img\",{attrs:{src:e.avatarUrlLoaded,srcset:e.avatarSrcSetLoaded,alt:\"\"}}):e._e(),e._v(\" \"),e.hasMenu?n(\"div\",{staticClass:\"icon-more\"}):e._e(),e._v(\" \"),e.showUserStatusIconOnAvatar?n(\"div\",{staticClass:\"avatardiv__user-status avatardiv__user-status--icon\"},[e._v(\"\\n\\t\\t\"+e._s(e.userStatus.icon)+\"\\n\\t\")]):e.canDisplayUserStatus?n(\"div\",{staticClass:\"avatardiv__user-status\",class:\"avatardiv__user-status--\"+e.userStatus.status}):e.status?n(\"div\",{staticClass:\"avatardiv__status\",class:\"avatardiv__status--\"+e.status,style:{backgroundColor:\"#\"+e.statusColor}},[\"neutral\"===e.status?n(\"svg\",{attrs:{xmlns:\"http://www.w3.org/2000/svg\",width:\"12\",height:\"11\",viewBox:\"0 0 3.175 2.91\"}},[n(\"path\",{style:{fill:\"#\"+e.statusColor},attrs:{d:\"M3.21 3.043H.494l.679-1.177.68-1.176.678 1.176z\",stroke:\"#fff\",\"stroke-width\":\".265\",\"stroke-linecap\":\"square\"}})]):e._e()]):e._e(),e._v(\" \"),e.userDoesNotExist&&!e.iconClass?n(\"div\",{staticClass:\"unknown\"},[e._v(\"\\n\\t\\t\"+e._s(e.initials)+\"\\n\\t\")]):e._e(),e._v(\" \"),e.hasMenu?n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.contactsMenuOpenState,expression:\"contactsMenuOpenState\"}],staticClass:\"popovermenu\",class:\"menu-\"+e.menuPosition},[n(\"PopoverMenu\",{attrs:{\"is-open\":e.contactsMenuOpenState,menu:e.menu}})],1):e._e()])}),[],!1,null,\"5adbb6fa\",null);\"function\"==typeof T.a&&T()(B);var P=B.exports;\n/**\n * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=P},function(e,t){e.exports=require(\"@nextcloud/capabilities\")},function(e,t){e.exports=require(\"md5\")},function(e,t,n){\"use strict\";n.r(t);n(17),n(91),n(23);var s=n(78),o=n.n(s),r=n(65),i=function(e){var t=e.toLowerCase();null===t.match(/^([0-9a-f]{4}-?){8}$/)&&(t=o()(t)),t=t.replace(/[^0-9a-f]/g,\"\");return Object(r.a)(6)[function(e,t){for(var n=0,s=[],o=0;o<e.length;o++)s.push(parseInt(e.charAt(o),16)%16);for(var r in s)n+=s[r];return parseInt(parseInt(n,10)%t,10)}(t,18)]};t.default=i},,,function(e,t){},function(e,t){e.exports=require(\"core-js/modules/es.array.for-each\")},function(e,t){e.exports=require(\"core-js/modules/web.dom-collections.for-each\")},,function(e,t){e.exports=require(\"core-js/modules/es.array.flat\")},function(e,t){e.exports=require(\"core-js/modules/es.array.unscopables.flat\")},function(e,t){e.exports=require(\"core-js/modules/es.regexp.constructor\")},function(e,t){e.exports=require(\"core-js/modules/es.array.includes\")},function(e,t){e.exports=require(\"@nextcloud/browser-storage\")},function(e,t){e.exports=require(\"core-js/modules/es.string.match\")},,function(e,t){e.exports=require(\"core-js/modules/es.array.reduce\")},,function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r)()(o.a);i.push([e.i,\".option[data-v-01dee904]{display:flex;align-items:center;width:100%;height:32px}.option__avatar[data-v-01dee904]{flex:0 0 32px;width:32px;height:32px;margin-right:6px}.option__desc[data-v-01dee904]{display:flex;flex:1 1;flex-direction:column;justify-content:center;min-width:0}.option__desc--lineone[data-v-01dee904]{color:var(--color-text-light)}.option__desc--linetwo[data-v-01dee904]{opacity:.7}.option__desc--lineone[data-v-01dee904],.option__desc--linetwo[data-v-01dee904]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.option__desc--lineone strong[data-v-01dee904],.option__desc--linetwo strong[data-v-01dee904]{font-weight:bold}.option__icon[data-v-01dee904]{flex:0 0 44px;width:44px;height:44px;margin:-6px;opacity:.5;background-position:center;background-size:16px}\\n\",\"\",{version:3,sources:[\"webpack://./AvatarSelectOption.vue\",\"webpack://./../../assets/variables.scss\"],names:[],mappings:\"AAiKA,yBACC,YAAa,CACb,kBAAmB,CACnB,UAAW,CACX,WAAY,CACZ,iCACC,aAAc,CACd,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,+BAEA,YAAa,CACb,QAAS,CACT,qBAAsB,CACtB,sBAAuB,CACvB,WAAY,CACZ,wCACC,6BAA8B,CAC9B,wCAEA,UC3IgB,CD4IhB,gFAGA,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CAJvB,8FAMC,gBAAiB,CACjB,+BAIF,aC1KmB,CD2KnB,UC3KmB,CD4KnB,WC5KmB,CD6KnB,WAAY,CACZ,UC7JmB,CD8JnB,0BAA2B,CAC3B,oBAAqB\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.option {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\twidth: 100%;\\n\\theight: 32px;\\n\\t&__avatar {\\n\\t\\tflex: 0 0 32px;\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tmargin-right: 6px;\\n\\t}\\n\\t&__desc {\\n\\t\\tdisplay: flex;\\n\\t\\tflex: 1 1;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-width: 0;\\n\\t\\t&--lineone {\\n\\t\\t\\tcolor: var(--color-text-light);\\n\\t\\t}\\n\\t\\t&--linetwo {\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t}\\n\\t\\t&--lineone,\\n\\t\\t&--linetwo {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\tstrong {\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t&__icon {\\n\\t\\tflex: 0 0 $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin: -6px;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: 16px;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($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\"],sourceRoot:\"\"}]),t.a=i},function(e,t){},function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r)()(o.a);i.push([e.i,\".name-parts[data-v-f855c4b8]{display:flex;max-width:100%}.name-parts__first[data-v-f855c4b8]{overflow:hidden;text-overflow:ellipsis}.name-parts__first[data-v-f855c4b8],.name-parts__last[data-v-f855c4b8]{white-space:pre}.name-parts__first strong[data-v-f855c4b8],.name-parts__last strong[data-v-f855c4b8]{font-weight:bold}\\n\",\"\",{version:3,sources:[\"webpack://./EllipsisedOption.vue\"],names:[],mappings:\"AA6HA,6BACC,YAAa,CACb,cAAe,CACf,oCACC,eAAgB,CAChB,sBAAuB,CACvB,uEAIA,eAAgB,CAHhB,qFAKC,gBAAiB\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.name-parts {\\n\\tdisplay: flex;\\n\\tmax-width: 100%;\\n\\t&__first {\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\t&__first,\\n\\t&__last {\\n\\t\\t// prevent whitespace from being trimmed\\n\\t\\twhite-space: pre;\\n\\t\\tstrong {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\t}\\n}\\n\"],sourceRoot:\"\"}]),t.a=i},function(e,t){},function(e,t,n){\"use strict\";n(31),n(38),n(45),n(19),n(56),n(15),n(40),n(33),n(6),n(20),n(21);var s=n(76),o=n(75),r=n(51),i={name:\"AvatarSelectOption\",components:{Avatar:s.default,Highlight:o.default},mixins:[r.e],props:{desc:{type:String,default:\"\"},displayName:{type:String,required:!0},icon:{type:String,default:\"\"},user:{type:String,default:\"\"},status:{type:Object,default:null},isNoUser:{type:Boolean,default:!1},search:{type:String,default:\"\"}},beforeMount:function(){this.isNoUser||this.fetchUserStatus(this.user)}},a=n(2),c=n.n(a),m=n(95),A={insert:\"head\",singleton:!1},l=(c()(m.a,A),m.a.locals,n(3)),g=n(96),u=n.n(g),d=Object(l.a)(i,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"span\",{staticClass:\"option\"},[n(\"Avatar\",{staticClass:\"option__avatar\",attrs:{\"display-name\":e.displayName,user:e.user,\"is-no-user\":e.isNoUser,\"disable-menu\":!0,\"disable-tooltip\":!0}}),e._v(\" \"),n(\"div\",{staticClass:\"option__desc\"},[n(\"Highlight\",{staticClass:\"option__desc--lineone\",attrs:{text:e.displayName,search:e.search}}),e._v(\" \"),\"\"!==e.desc?n(\"Highlight\",{staticClass:\"option__desc--linetwo\",attrs:{text:e.desc,search:e.search}}):e.hasStatus?n(\"span\",[n(\"span\",[e._v(e._s(e.userStatus.icon))]),e._v(\" \"),n(\"span\",[e._v(e._s(e.userStatus.message))])]):e._e()],1),e._v(\" \"),\"\"!==e.icon?n(\"span\",{staticClass:\"icon option__icon\",class:e.icon}):e._e()],1)}),[],!1,null,\"01dee904\",null);\"function\"==typeof u.a&&u()(d);var p=d.exports,v=(n(14),n(17),n(100),n(73),n(72)),f={name:\"EllipsisedOption\",components:{Highlight:o.default},props:{option:{type:[String,Object],required:!0,default:\"\"},label:{type:String,default:\"\"},search:{type:String,default:\"\"},name:{type:String,default:\"\"}},computed:{needsTruncate:function(){return this.name&&this.name.length>=10},split:function(){return this.name.length-Math.min(Math.floor(this.name.length/2),10)},part1:function(){return this.needsTruncate?this.name.substr(0,this.split):this.name},part2:function(){return this.needsTruncate?this.name.substr(this.split):\"\"},highlight1:function(){return this.search?Object(v.a)(this.name,this.search):[]},highlight2:function(){var e=this;return this.highlight1.map((function(t){return{start:t.start-e.split,end:t.end-e.split}}))}}},h=n(97),b={insert:\"head\",singleton:!1},C=(c()(h.a,b),h.a.locals,Object(l.a)(f,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"div\",{staticClass:\"name-parts\",attrs:{title:e.name}},[n(\"Highlight\",{staticClass:\"name-parts__first\",attrs:{text:e.part1,search:e.search,highlight:e.highlight1}}),e._v(\" \"),e.part2?n(\"Highlight\",{staticClass:\"name-parts__last\",attrs:{text:e.part2,search:e.search,highlight:e.highlight2}}):e._e()],1)}),[],!1,null,\"f855c4b8\",null).exports),k=n(37),M=n(22),E=n(106);function x(e){return(x=\"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})(e)}var y={name:\"Multiselect\",components:{AvatarSelectOption:p,EllipsisedOption:C,VueMultiselect:n.n(E).a},directives:{tooltip:M.default},mixins:[k.a],inheritAttrs:!1,props:{value:{default:function(){return[]}},multiple:{type:Boolean,default:!1},limit:{type:Number,default:99999},label:{type:String,default:\"\"},trackBy:{type:String,default:\"\"},options:{type:Array,required:!0},userSelect:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},autoLimit:{type:Boolean,default:!0},tagWidth:{type:Number,default:150,validator:function(e){return e>0}}},data:function(){return{elWidth:0}},computed:{maxOptions:function(){if(this.autoLimit&&this.elWidth>0&&0!==this.tagWidth){var e=Math.floor(this.elWidth/this.tagWidth);return e>0?e:1}return this.limit?this.limit:9999},limitString:function(){return\"+\".concat(this.value.length-this.maxOptions)},localValue:{get:function(){return this.trackBy&&this.options&&\"object\"!==x(this.value)&&this.options[this.value]?this.options[this.value]:this.value},set:function(e){this.$emit(\"update:value\",e),this.$emit(\"change\",e)}}},watch:{value:function(){this.updateWidth()}},mounted:function(){this.updateWidth(),window.addEventListener(\"resize\",this.updateWidth)},beforeDestroy:function(){window.removeEventListener(\"resize\",this.updateWidth)},methods:{getOptionLabel:function(e){var t;return String(null===(t=this.$refs.VueMultiselect)||void 0===t?void 0:t.getOptionLabel(e))},formatLimitTitle:function(e){var t=this;if(Array.isArray(e)&&e.length>0){var n=e;return\"object\"===x(e[0])&&(n=e.map((function(e){return e[t.label]}))),n.slice(this.maxOptions).join(\", \")}return\"\"},updateWidth:function(){this.$el&&this.$el.querySelector(\".multiselect__tags-wrap\")&&(this.elWidth=this.$el.querySelector(\".multiselect__tags-wrap\").offsetWidth-10)}}},T=n(98),B=n.n(T),P=Object(l.a)(y,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n(\"VueMultiselect\",e._g(e._b({ref:\"VueMultiselect\",class:[{\"icon-loading-small\":e.loading},e.multiple?\"multiselect--multiple\":\"multiselect--single\"],attrs:{options:e.options,limit:e.maxOptions,\"close-on-select\":!e.multiple,multiple:e.multiple,label:e.label,\"track-by\":e.trackBy,\"tag-placeholder\":\"create\"},scopedSlots:e._u([{key:\"option\",fn:function(t){return[e.userSelect&&!e.$scopedSlots.option?n(\"AvatarSelectOption\",e._b({attrs:{search:t.search}},\"AvatarSelectOption\",t.option,!1)):e.$scopedSlots.option?e._t(\"option\",null,null,t):n(\"EllipsisedOption\",{attrs:{name:e.getOptionLabel(t.option),option:t.option,search:t.search,label:e.label}})]}},e.multiple?{key:\"limit\",fn:function(){return[n(\"span\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:e.formatLimitTitle(e.value),expression:\"formatLimitTitle(value)\",modifiers:{auto:!0}}],staticClass:\"multiselect__limit\"},[e._v(\"\\n\\t\\t\\t\"+e._s(e.limitString)+\"\\n\\t\\t\")])]},proxy:!0}:null,e._l(e.$scopedSlots,(function(t,n){return{key:n,fn:function(t){return[e._t(n,null,null,t)]}}}))],null,!0),model:{value:e.localValue,callback:function(t){e.localValue=t},expression:\"localValue\"}},\"VueMultiselect\",e.$attrs,!1),e.$listeners),[e._v(\" \"),e._v(\" \"),e._v(\" \"),n(\"span\",{attrs:{slot:\"noResult\"},slot:\"noResult\"},[e._v(e._s(e.t(\"No results\")))])])}),[],!1,null,null,null);\"function\"==typeof B.a&&B()(P);t.a=P.exports},function(e,t){e.exports=require(\"core-js/modules/es.string.search\")},,,function(e,t){e.exports=require(\"core-js/modules/es.object.keys\")},function(e,t){e.exports=require(\"core-js/modules/es.string.code-point-at\")},function(e,t){e.exports=require(\"core-js/modules/es.string.from-code-point\")},function(e,t){e.exports=require(\"vue-multiselect\")},,,,,,,,,,,,,function(e,t,n){\"use strict\";var s=n(0),o=n.n(s),r=n(1),i=n.n(r)()(o.a);i.push([e.i,\".multiselect[data-v-59f1214]{margin:0;padding:0 !important;display:inline-block;min-width:160px;position:relative;background-color:var(--color-main-background)}.multiselect[data-v-59f1214]:not(.multiselect--active) .multiselect__single{position:absolute;width:100%}.multiselect[data-v-59f1214].multiselect--active input.multiselect__input{opacity:1 !important;cursor:text !important;border-radius:var(--border-radius) var(--border-radius) 0 0}.multiselect[data-v-59f1214].multiselect--active .multiselect__limit{display:none}.multiselect[data-v-59f1214].multiselect--active.multiselect--above input.multiselect__input{border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-59f1214].multiselect--disabled,.multiselect[data-v-59f1214].multiselect--disabled .multiselect__single{background-color:var(--color-background-dark) !important}.multiselect[data-v-59f1214].icon-loading-small::after{left:100%;margin-left:-24px}.multiselect[data-v-59f1214] .multiselect__tags{display:flex;flex-wrap:nowrap;overflow:hidden;border:1px solid var(--color-border-dark);cursor:pointer;position:relative;border-radius:3px;min-height:34px}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap{align-items:center;display:inline-flex;overflow:hidden;max-width:100%;position:relative;padding:3px 5px;flex-grow:1}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap:empty ~ input.multiselect__input{opacity:1 !important}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap:empty ~ input.multiselect__input+span:not(.multiselect__single){display:none}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap .multiselect__tag{flex:1 0 0;line-height:20px;padding:1px 5px;background-image:none;color:var(--color-main-text);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center;border-radius:3px;min-width:0;max-width:50%;max-width:fit-content;max-width:-moz-fit-content}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap .multiselect__tag:only-child{flex:0 1 auto}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap .multiselect__tag:not(:last-child){margin-right:5px}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__tags-wrap .multiselect__tag>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__single,.multiselect[data-v-59f1214] .multiselect__tags .multiselect__placeholder{padding:7px 6px;flex:0 0 100%;z-index:1;background-color:var(--color-main-background);cursor:pointer;line-height:18px;color:var(--color-text-lighter)}.multiselect[data-v-59f1214] .multiselect__tags .multiselect__strong,.multiselect[data-v-59f1214] .multiselect__tags .multiselect__limit{flex:0 0 auto;line-height:20px;color:var(--color-text-lighter);display:inline-flex;align-items:center;opacity:.7;margin-right:5px;z-index:5}.multiselect[data-v-59f1214] .multiselect__tags input.multiselect__input{width:100% !important;position:absolute !important;top:0;left:0;margin:0;opacity:0;height:100%;border:none;display:block !important;cursor:pointer;padding:7px 6px !important}.multiselect[data-v-59f1214] .multiselect__content-wrapper{position:absolute;width:100%;margin-top:-1px;border:1px solid var(--color-border-dark);background:var(--color-main-background);z-index:50;max-height:250px;overflow-y:auto;border-radius:0 0 var(--border-radius) var(--border-radius)}.multiselect[data-v-59f1214] .multiselect__content-wrapper .multiselect__content{width:100%;padding:0}.multiselect[data-v-59f1214] .multiselect__content-wrapper li{position:relative;display:flex;align-items:center;background-color:transparent}.multiselect[data-v-59f1214] .multiselect__content-wrapper li,.multiselect[data-v-59f1214] .multiselect__content-wrapper li span{cursor:pointer}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span{padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;height:auto;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:transparent;color:var(--color-text-lighter);width:100%}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span::before{content:' ';background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span.multiselect__option--disabled{background-color:var(--color-background-dark);opacity:.5}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span.multiselect__option--highlight{color:var(--color-main-text);background-color:var(--color-background-dark)}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{opacity:.3}.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span.multiselect__option--selected::before,.multiselect[data-v-59f1214] .multiselect__content-wrapper li>span:not(.multiselect__option--disabled):hover::before{visibility:visible}.multiselect[data-v-59f1214].multiselect--above .multiselect__content-wrapper{bottom:100%;margin-bottom:-1px}.multiselect[data-v-59f1214].multiselect--multiple .multiselect__content-wrapper li>span::before{background-image:var(--icon-checkmark-000)}.multiselect[data-v-59f1214].multiselect--multiple .multiselect__content-wrapper li>span[data-select='create']::before{background-image:var(--icon-add-000);visibility:visible}.multiselect[data-v-59f1214].multiselect--single .multiselect__content-wrapper li>span::before{display:none}.multiselect[data-v-59f1214]:hover .multiselect__placeholder,.multiselect[data-v-59f1214] input.multiselect__input .multiselect__placeholder{color:var(--color-main-text)}\\n\",\"\",{version:3,sources:[\"webpack://./index.scss\",\"webpack://./../../assets/variables.scss\"],names:[],mappings:\"AAIA,6BACC,QAAS,CACT,oBAAqB,CACrB,oBAAqB,CAErB,eAAgB,CAChB,iBAAkB,CAClB,6CAA8C,CAP/C,4EAWE,iBAAkB,CAClB,UAAW,CAZb,0EAoBG,oBAAiC,CACjC,sBAAuB,CAEvB,2DAA4D,CAvB/D,qEA4BG,YAAa,CA5BhB,6FAmCG,2DAA4D,CAnC/D,2HA0CE,wDAAyD,CA1C3D,uDA+CE,SAAU,CACV,iBAAkB,CAhDpB,gDAuDE,YAAa,CACb,gBAAiB,CACjB,eAAgB,CAChB,yCAA0C,CAC1C,cAAe,CACf,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CA9DlB,wEAiEG,kBAAmB,CACnB,mBAAoB,CACpB,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,eAhBkB,CAiBlB,WAAY,CAvEf,yGA2EI,oBAAiC,CA3ErC,wIAgFK,YAAa,CAhFlB,0FAqFI,UAAW,CACX,gBAAiB,CACjB,eAAgB,CAChB,qBAAsB,CACtB,4BAA6B,CAC7B,yCAA0C,CAC1C,mBAAoB,CACpB,kBAAmB,CACnB,iBAAkB,CAGlB,WAAY,CACZ,aAAc,CACd,qBAAsB,CACtB,0BAA2B,CAnG/B,qGAuGK,aAAc,CAvGnB,2GA0GK,gBApDgB,CAtDrB,+FA+GK,kBAAmB,CACnB,sBAAuB,CACvB,eAAgB,CAjHrB,+IA0HG,eAAgB,CAChB,aAAc,CACd,SAAU,CACV,6CAA8C,CAC9C,cAAe,CACf,gBAAiB,CACjB,+BAAgC,CAhInC,yIAqIG,aAAc,CACd,gBAAiB,CACjB,+BAAgC,CAChC,mBAAoB,CACpB,kBAAmB,CACnB,UCnGgB,CDoGhB,gBArFkB,CAuFlB,SAAU,CA7Ib,yEAiJG,qBAAsB,CACtB,4BAA6B,CAC7B,KAAM,CACN,MAAO,CACP,QAAS,CACT,SAAU,CAEV,WAAY,CACZ,WAAY,CAEZ,wBAAyB,CAEzB,cAAe,CAEf,0BAA2B,CA/J9B,2DAqKE,iBAAkB,CAClB,UAAW,CACX,eAAgB,CAChB,yCAA0C,CAC1C,uCAAwC,CACxC,UAAW,CACX,gBAAiB,CACjB,eAAgB,CAChB,2DAA4D,CA7K9D,iFA+KG,UAAW,CACX,SAAU,CAhLb,8DAmLG,iBAAkB,CAClB,YAAa,CACb,kBAAmB,CACnB,4BAA6B,CAtLhC,iIAyLI,cAAe,CAzLnB,mEA4LI,WAAY,CACZ,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB,CACvB,QAAS,CACT,WAAY,CACZ,cAAe,CACf,0BAA2B,CAC3B,wBAAyB,CACzB,qBAAsB,CACtB,oBAAqB,CACrB,gBAAiB,CACjB,mBAAoB,CACpB,kBAAmB,CACnB,4BAA6B,CAC7B,+BAAgC,CAChC,UAAW,CA5Mf,2EA+MK,WAAY,CACZ,2BAA4B,CAC5B,0BAA2B,CAC3B,cAAe,CACf,eAAgB,CAChB,aAAc,CACd,UC/KgB,CDgLhB,gBAAiB,CACjB,iBAAkB,CAvNvB,iGA0NK,6CAA8C,CAC9C,UCrLgB,CDtCrB,kGA8NK,4BAA6B,CAC7B,6CAA8C,CA/NnD,qHAkOK,UAAW,CAlOhB,8NAuOM,kBAAmB,CAvOzB,8EA+OE,WAAY,CACZ,kBAAmB,CAhPrB,iGAsPG,0CAA2C,CAtP9C,uHA4PI,oCAAqC,CACrC,kBAAmB,CA7PvB,+FAoQE,YAAa,CApQf,6IA2QG,4BAA6B\",sourcesContent:[\"$scope_version:\\\"59f1214\\\"; @import 'variables';\\n// scoping is not working inside the Multiselect.vue component\\n// as the nested properties are not inside it\\n// Therefore we need to use an external scoping\\n.multiselect[data-v-#{$scope_version}] {\\n\\tmargin: 0;\\n\\tpadding: 0 !important;\\n\\tdisplay: inline-block;\\n\\t/* override this rule with your width styling if you need */\\n\\tmin-width: 160px;\\n\\tposition: relative;\\n\\tbackground-color: var(--color-main-background);\\n\\n\\t/* Force single multiselect value to be shown when not active */\\n\\t&:not(.multiselect--active) .multiselect__single {\\n\\t\\tposition: absolute;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t// active state, force the input to be shown, we don't want\\n\\t// the placeholder or the currently selected options\\n\\t&.multiselect--active {\\n\\t\\t/* Opened: force display the input */\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t\\tcursor: text !important;\\n\\t\\t\\t// remove border radius on bottom opening\\n\\t\\t\\tborder-radius: var(--border-radius) var(--border-radius) 0 0;\\n\\t\\t}\\n\\n\\t\\t/* multiselect__limit hidden if active */\\n\\t\\t.multiselect__limit {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t// Remove radius on top opening\\n\\t&.multiselect--active.multiselect--above {\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\\n\\t\\t}\\n\\t}\\n\\n\\t// disabled state background\\n\\t&.multiselect--disabled,\\n\\t&.multiselect--disabled .multiselect__single {\\n\\t\\tbackground-color: var(--color-background-dark) !important;\\n\\t}\\n\\n\\t// loading state\\n\\t&.icon-loading-small::after {\\n\\t\\tleft: 100%;\\n\\t\\tmargin-left: -24px;\\n\\t}\\n\\n\\t// multiple selected options display\\n\\t.multiselect__tags {\\n\\t\\t/* space between tags and limit tag */\\n\\t\\t$space-between: 5px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\tcursor: pointer;\\n\\t\\tposition: relative;\\n\\t\\tborder-radius: 3px;\\n\\t\\tmin-height: 34px;\\n\\t\\t/* tag wrapper */\\n\\t\\t.multiselect__tags-wrap {\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tpadding: 3px $space-between;\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\t/* no tags or simple select? Show input directly\\n\\t\\t\\tinput is used to display single value */\\n\\t\\t\\t&:empty ~ input.multiselect__input {\\n\\t\\t\\t\\topacity: $opacity_full !important;\\n\\t\\t\\t\\t/* hide default empty text like .multiselect__placeholder,\\n\\t\\t\\t\\tand show input instead. It looks better without a transition between\\n\\t\\t\\t\\ta span and the input that have different styling */\\n\\t\\t\\t\\t+ span:not(.multiselect__single) {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t/* selected tag */\\n\\t\\t\\t.multiselect__tag {\\n\\t\\t\\t\\tflex: 1 0 0;\\n\\t\\t\\t\\tline-height: 20px;\\n\\t\\t\\t\\tpadding: 1px 5px;\\n\\t\\t\\t\\tbackground-image: none;\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tborder-radius: 3px;\\n\\t\\t\\t\\t/* require to override the default width\\n\\t\\t\\t\\tand force the tag to shring properly */\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmax-width: 50%;\\n\\t\\t\\t\\tmax-width: fit-content;\\n\\t\\t\\t\\tmax-width: -moz-fit-content;\\n\\t\\t\\t\\t/* css hack, detect if more than two tags\\n\\t\\t\\t\\tif so, flex-basis is set to half */\\n\\t\\t\\t\\t&:only-child {\\n\\t\\t\\t\\t\\tflex: 0 1 auto;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:not(:last-child) {\\n\\t\\t\\t\\t\\tmargin-right: $space-between;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t/* ellipsis the groups to be sure\\n\\t\\t\\t\\twe display at least two of them */\\n\\t\\t\\t\\t> span {\\n\\t\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Single select default value\\n\\t\\tor default placeholder if search disabled*/\\n\\t\\t.multiselect__single,\\n\\t\\t.multiselect__placeholder {\\n\\t\\t\\tpadding: 7px 6px; // like the input\\n\\t\\t\\tflex: 0 0 100%;\\n\\t\\t\\tz-index: 1; /* above input */\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tline-height: 18px; // 32px - 2*6px (padding) - 2*1px (border)\\n\\t\\t\\tcolor: var(--color-text-lighter); // like the input\\n\\t\\t}\\n\\t\\t/* displayed text if tag limit reached */\\n\\t\\t.multiselect__strong,\\n\\t\\t.multiselect__limit {\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tline-height: 20px;\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\tmargin-right: $space-between;\\n\\t\\t\\t/* above the input */\\n\\t\\t\\tz-index: 5;\\n\\t\\t}\\n\\t\\t/* default multiselect input for search and placeholder */\\n\\t\\tinput.multiselect__input {\\n\\t\\t\\twidth: 100% !important;\\n\\t\\t\\tposition: absolute !important;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\topacity: 0;\\n\\t\\t\\t/* let's leave it on top of tags but hide it */\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tborder: none;\\n\\t\\t\\t/* override hide to force show the placeholder */\\n\\t\\t\\tdisplay: block !important;\\n\\t\\t\\t/* only when not active */\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t/* override inline styling of the lib */\\n\\t\\t\\tpadding: 7px 6px !important;\\n\\t\\t}\\n\\t}\\n\\n\\t/* results wrapper */\\n\\t.multiselect__content-wrapper {\\n\\t\\tposition: absolute;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-top: -1px;\\n\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\tbackground: var(--color-main-background);\\n\\t\\tz-index: 50;\\n\\t\\tmax-height: 250px;\\n\\t\\toverflow-y: auto;\\n\\t\\tborder-radius: 0 0 var(--border-radius) var(--border-radius);\\n\\t\\t.multiselect__content {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t\\tli {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t&,\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\t\\t\\t> span {\\n\\t\\t\\t\\tpadding: 8px;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\theight: auto;\\n\\t\\t\\t\\tmin-height: 1em;\\n\\t\\t\\t\\t-webkit-touch-callout: none;\\n\\t\\t\\t\\t-webkit-user-select: none;\\n\\t\\t\\t\\t-moz-user-select: none;\\n\\t\\t\\t\\t-ms-user-select: none;\\n\\t\\t\\t\\tuser-select: none;\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t/* selected checkmark icon */\\n\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\tcontent: ' ';\\n\\t\\t\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\t\\t\\tbackground-position: center;\\n\\t\\t\\t\\t\\tmin-width: 16px;\\n\\t\\t\\t\\t\\tmin-height: 16px;\\n\\t\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\t\\tmargin-right: 5px;\\n\\t\\t\\t\\t\\tvisibility: hidden;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--disabled {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--highlight {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:not(.multiselect__option--disabled):hover::before {\\n\\t\\t\\t\\t\\topacity: .3;\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&.multiselect__option--selected,\\n\\t\\t\\t\\t&:not(.multiselect__option--disabled):hover {\\n\\t\\t\\t\\t\\t&::before {\\n\\t\\t\\t\\t\\t\\tvisibility: visible;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\t/* ABOVE display */\\n\\t&.multiselect--above .multiselect__content-wrapper {\\n\\t\\tbottom: 100%;\\n\\t\\tmargin-bottom: -1px;\\n\\t}\\n\\n\\t/* Icon before option select */\\n\\t&.multiselect--multiple .multiselect__content-wrapper li > span {\\n\\t\\t&::before {\\n\\t\\t\\tbackground-image: var(--icon-checkmark-000);\\n\\t\\t}\\n\\t\\t/* add the prop tag-placeholder=\\\"create\\\" to add the +\\n\\t\\ticon on top of an unknown-and-ready-to-be-created entry */\\n\\t\\t&[data-select='create'] {\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tbackground-image: var(--icon-add-000);\\n\\t\\t\\t\\tvisibility: visible;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* No need for an icon here */\\n\\t&.multiselect--single .multiselect__content-wrapper li > span::before {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t/* Mouse feedback */\\n\\t&:hover,\\n\\tinput.multiselect__input {\\n\\t\\t.multiselect__placeholder {\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($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\"],sourceRoot:\"\"}]),t.a=i},function(e,t){e.exports=require(\"core-js/modules/es.object.get-own-property-descriptor\")},function(e,t){e.exports=require(\"core-js/modules/es.object.get-own-property-descriptors\")},,,,,,,,,function(e,t,n){\"use strict\";n.r(t);var s=n(67),o=n(99),r=n(2),i=n.n(r),a=n(119),c={insert:\"head\",singleton:!1};i()(a.a,c),a.a.locals;\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nObject(s.a)(o.a);t.default=o.a}])}));\n//# sourceMappingURL=Multiselect.js.map","function getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tcompareAndNotify: function compareAndNotify() {\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis._w = this.$el.offsetWidth;\n\t\t\t\tthis._h = this.$el.offsetHeight;\n\t\t\t\tthis.$emit('notify');\n\t\t\t}\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\t\t\tthis.compareAndNotify();\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.setAttribute('tabindex', -1);\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\tVue.component('ResizeObserver', ResizeObserver);\n}\n\n// Plugin\nvar plugin = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.5\",\n\tinstall: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, ResizeObserver };\nexport default plugin;\n","function validate(binding) {\n if (typeof binding.value !== 'function') {\n console.warn('[Vue-click-outside:] provided expression', binding.expression, 'is not a function.')\n return false\n }\n\n return true\n}\n\nfunction isPopup(popupItem, elements) {\n if (!popupItem || !elements)\n return false\n\n for (var i = 0, len = elements.length; i < len; i++) {\n try {\n if (popupItem.contains(elements[i])) {\n return true\n }\n if (elements[i].contains(popupItem)) {\n return false\n }\n } catch(e) {\n return false\n }\n }\n\n return false\n}\n\nfunction isServer(vNode) {\n return typeof vNode.componentInstance !== 'undefined' && vNode.componentInstance.$isServer\n}\n\nexports = module.exports = {\n bind: function (el, binding, vNode) {\n if (!validate(binding)) return\n\n // Define Handler and cache it on the element\n function handler(e) {\n if (!vNode.context) return\n\n // some components may have related popup item, on which we shall prevent the click outside event handler.\n var elements = e.path || (e.composedPath && e.composedPath())\n elements && elements.length > 0 && elements.unshift(e.target)\n\n if (el.contains(e.target) || isPopup(vNode.context.popupItem, elements)) return\n\n el.__vueClickOutside__.callback(e)\n }\n\n // add Event Listeners\n el.__vueClickOutside__ = {\n handler: handler,\n callback: binding.value\n }\n const clickHandler = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click';\n !isServer(vNode) && document.addEventListener(clickHandler, handler)\n },\n\n update: function (el, binding) {\n if (validate(binding)) el.__vueClickOutside__.callback = binding.value\n },\n\n unbind: function (el, binding, vNode) {\n // Remove Event Listeners\n const clickHandler = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click';\n !isServer(vNode) && el.__vueClickOutside__ && document.removeEventListener(clickHandler, el.__vueClickOutside__.handler)\n delete el.__vueClickOutside__\n }\n}\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","import valid from \"semver/functions/valid\";\nimport major from \"semver/functions/major\";\n\nimport packageJson from \"../package.json\";\nimport { Event } from \"./Event.js\";\nimport { EventBus } from \"./EventBus.js\";\nimport { EventHandler } from \"./EventHandler.js\";\n\nexport class ProxyBus implements EventBus {\n\n private bus: EventBus;\n\n constructor(bus: EventBus) {\n if (typeof bus.getVersion !== 'function' || !valid(bus.getVersion())) {\n console.warn('Proxying an event bus with an unknown or invalid version')\n } else if (major(bus.getVersion()) !== major(this.getVersion())) {\n console.warn('Proxying an event bus of version ' + bus.getVersion() + ' with ' + this.getVersion())\n }\n\n this.bus = bus;\n }\n\n getVersion(): string {\n return packageJson.version\n }\n\n subscribe(name: string, handler: EventHandler): void {\n this.bus.subscribe(name, handler);\n }\n\n unsubscribe(name: string, handler: EventHandler): void {\n this.bus.unsubscribe(name, handler);\n }\n\n emit(name: string, event: Event): void {\n this.bus.emit(name, event);\n }\n\n}\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parse = (version, options) => {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","import packageJson from \"../package.json\";\nimport { Event } from \"./Event.js\";\nimport { EventBus } from \"./EventBus.js\";\nimport { EventHandler } from \"./EventHandler.js\";\n\nexport class SimpleBus implements EventBus {\n\n private handlers = new Map<string, EventHandler[]>();\n\n getVersion(): string {\n return packageJson.version\n }\n\n subscribe(name: string, handler: EventHandler): void {\n this.handlers.set(name, (this.handlers.get(name) || []).concat(handler));\n }\n\n unsubscribe(name: string, handler: EventHandler): void {\n this.handlers.set(name, (this.handlers.get(name) || []).filter(h => h != handler));\n }\n\n emit(name: string, event: Event): void {\n (this.handlers.get(name) || []).forEach(h => {\n try {\n h(event)\n } catch (e) {\n console.error('could not invoke event listener', e)\n }\n })\n }\n\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.replace\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getGettextBuilder = getGettextBuilder;\n\nvar _nodeGettext = _interopRequireDefault(require(\"node-gettext\"));\n\nvar _ = require(\".\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar GettextBuilder = /*#__PURE__*/function () {\n function GettextBuilder() {\n _classCallCheck(this, GettextBuilder);\n\n this.translations = {};\n this.debug = false;\n }\n\n _createClass(GettextBuilder, [{\n key: \"setLanguage\",\n value: function setLanguage(language) {\n this.locale = language;\n return this;\n }\n }, {\n key: \"detectLocale\",\n value: function detectLocale() {\n return this.setLanguage((0, _.getLanguage)().replace('-', '_'));\n }\n }, {\n key: \"addTranslation\",\n value: function addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n }, {\n key: \"enableDebugMode\",\n value: function enableDebugMode() {\n this.debug = true;\n return this;\n }\n }, {\n key: \"build\",\n value: function build() {\n return new GettextWrapper(this.locale || 'en', this.translations, this.debug);\n }\n }]);\n\n return GettextBuilder;\n}();\n\nvar GettextWrapper = /*#__PURE__*/function () {\n function GettextWrapper(locale, data, debug) {\n _classCallCheck(this, GettextWrapper);\n\n this.gt = new _nodeGettext.default({\n debug: debug,\n sourceLocale: 'en'\n });\n\n for (var key in data) {\n this.gt.addTranslations(key, 'messages', data[key]);\n }\n\n this.gt.setLocale(locale);\n }\n\n _createClass(GettextWrapper, [{\n key: \"subtitudePlaceholders\",\n value: function subtitudePlaceholders(translated, vars) {\n return translated.replace(/{([^{}]*)}/g, function (a, b) {\n var r = vars[b];\n\n if (typeof r === 'string' || typeof r === 'number') {\n return r.toString();\n } else {\n return a;\n }\n });\n }\n }, {\n key: \"gettext\",\n value: function gettext(original) {\n var placeholders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.subtitudePlaceholders(this.gt.gettext(original), placeholders);\n }\n }, {\n key: \"ngettext\",\n value: function ngettext(singular, plural, count) {\n var placeholders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n return this.subtitudePlaceholders(this.gt.ngettext(singular, plural, count).replace(/%n/g, count.toString()), placeholders);\n }\n }]);\n\n return GettextWrapper;\n}();\n\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\n//# sourceMappingURL=gettext.js.map","'use strict';\n\nvar get = require('lodash.get');\nvar plurals = require('./plurals');\n\nmodule.exports = Gettext;\n\n/**\n * Creates and returns a new Gettext instance.\n *\n * @constructor\n * @param {Object} [options] A set of options\n * @param {String} options.sourceLocale The locale that the source code and its\n * texts are written in. Translations for\n * this locale is not necessary.\n * @param {Boolean} options.debug Whether to output debug info into the\n * console.\n * @return {Object} A Gettext instance\n */\nfunction Gettext(options) {\n options = options || {};\n\n this.catalogs = {};\n this.locale = '';\n this.domain = 'messages';\n\n this.listeners = [];\n\n // Set source locale\n this.sourceLocale = '';\n if (options.sourceLocale) {\n if (typeof options.sourceLocale === 'string') {\n this.sourceLocale = options.sourceLocale;\n }\n else {\n this.warn('The `sourceLocale` option should be a string');\n }\n }\n\n // Set debug flag\n this.debug = 'debug' in options && options.debug === true;\n}\n\n/**\n * Adds an event listener.\n *\n * @param {String} eventName An event name\n * @param {Function} callback An event handler function\n */\nGettext.prototype.on = function(eventName, callback) {\n this.listeners.push({\n eventName: eventName,\n callback: callback\n });\n};\n\n/**\n * Removes an event listener.\n *\n * @param {String} eventName An event name\n * @param {Function} callback A previously registered event handler function\n */\nGettext.prototype.off = function(eventName, callback) {\n this.listeners = this.listeners.filter(function(listener) {\n return (\n listener.eventName === eventName &&\n listener.callback === callback\n ) === false;\n });\n};\n\n/**\n * Emits an event to all registered event listener.\n *\n * @private\n * @param {String} eventName An event name\n * @param {any} eventData Data to pass to event listeners\n */\nGettext.prototype.emit = function(eventName, eventData) {\n for (var i = 0; i < this.listeners.length; i++) {\n var listener = this.listeners[i];\n if (listener.eventName === eventName) {\n listener.callback(eventData);\n }\n }\n};\n\n/**\n * Logs a warning to the console if debug mode is enabled.\n *\n * @ignore\n * @param {String} message A warning message\n */\nGettext.prototype.warn = function(message) {\n if (this.debug) {\n console.warn(message);\n }\n\n this.emit('error', new Error(message));\n};\n\n/**\n * Stores a set of translations in the set of gettext\n * catalogs.\n *\n * @example\n * gt.addTranslations('sv-SE', 'messages', translationsObject)\n *\n * @param {String} locale A locale string\n * @param {String} domain A domain name\n * @param {Object} translations An object of gettext-parser JSON shape\n */\nGettext.prototype.addTranslations = function(locale, domain, translations) {\n if (!this.catalogs[locale]) {\n this.catalogs[locale] = {};\n }\n\n this.catalogs[locale][domain] = translations;\n};\n\n/**\n * Sets the locale to get translated messages for.\n *\n * @example\n * gt.setLocale('sv-SE')\n *\n * @param {String} locale A locale\n */\nGettext.prototype.setLocale = function(locale) {\n if (typeof locale !== 'string') {\n this.warn(\n 'You called setLocale() with an argument of type ' + (typeof locale) + '. ' +\n 'The locale must be a string.'\n );\n return;\n }\n\n if (locale.trim() === '') {\n this.warn('You called setLocale() with an empty value, which makes little sense.');\n }\n\n if (locale !== this.sourceLocale && !this.catalogs[locale]) {\n this.warn('You called setLocale() with \"' + locale + '\", but no translations for that locale has been added.');\n }\n\n this.locale = locale;\n};\n\n/**\n * Sets the default gettext domain.\n *\n * @example\n * gt.setTextDomain('domainname')\n *\n * @param {String} domain A gettext domain name\n */\nGettext.prototype.setTextDomain = function(domain) {\n if (typeof domain !== 'string') {\n this.warn(\n 'You called setTextDomain() with an argument of type ' + (typeof domain) + '. ' +\n 'The domain must be a string.'\n );\n return;\n }\n\n if (domain.trim() === '') {\n this.warn('You called setTextDomain() with an empty `domain` value.');\n }\n\n this.domain = domain;\n};\n\n/**\n * Translates a string using the default textdomain\n *\n * @example\n * gt.gettext('Some text')\n *\n * @param {String} msgid String to be translated\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.gettext = function(msgid) {\n return this.dnpgettext(this.domain, '', msgid);\n};\n\n/**\n * Translates a string using a specific domain\n *\n * @example\n * gt.dgettext('domainname', 'Some text')\n *\n * @param {String} domain A gettext domain name\n * @param {String} msgid String to be translated\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.dgettext = function(domain, msgid) {\n return this.dnpgettext(domain, '', msgid);\n};\n\n/**\n * Translates a plural string using the default textdomain\n *\n * @example\n * gt.ngettext('One thing', 'Many things', numberOfThings)\n *\n * @param {String} msgid String to be translated when count is not plural\n * @param {String} msgidPlural String to be translated when count is plural\n * @param {Number} count Number count for the plural\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.ngettext = function(msgid, msgidPlural, count) {\n return this.dnpgettext(this.domain, '', msgid, msgidPlural, count);\n};\n\n/**\n * Translates a plural string using a specific textdomain\n *\n * @example\n * gt.dngettext('domainname', 'One thing', 'Many things', numberOfThings)\n *\n * @param {String} domain A gettext domain name\n * @param {String} msgid String to be translated when count is not plural\n * @param {String} msgidPlural String to be translated when count is plural\n * @param {Number} count Number count for the plural\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.dngettext = function(domain, msgid, msgidPlural, count) {\n return this.dnpgettext(domain, '', msgid, msgidPlural, count);\n};\n\n/**\n * Translates a string from a specific context using the default textdomain\n *\n * @example\n * gt.pgettext('sports', 'Back')\n *\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.pgettext = function(msgctxt, msgid) {\n return this.dnpgettext(this.domain, msgctxt, msgid);\n};\n\n/**\n * Translates a string from a specific context using s specific textdomain\n *\n * @example\n * gt.dpgettext('domainname', 'sports', 'Back')\n *\n * @param {String} domain A gettext domain name\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.dpgettext = function(domain, msgctxt, msgid) {\n return this.dnpgettext(domain, msgctxt, msgid);\n};\n\n/**\n * Translates a plural string from a specific context using the default textdomain\n *\n * @example\n * gt.npgettext('sports', 'Back', '%d backs', numberOfBacks)\n *\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated when count is not plural\n * @param {String} msgidPlural String to be translated when count is plural\n * @param {Number} count Number count for the plural\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.npgettext = function(msgctxt, msgid, msgidPlural, count) {\n return this.dnpgettext(this.domain, msgctxt, msgid, msgidPlural, count);\n};\n\n/**\n * Translates a plural string from a specifi context using a specific textdomain\n *\n * @example\n * gt.dnpgettext('domainname', 'sports', 'Back', '%d backs', numberOfBacks)\n *\n * @param {String} domain A gettext domain name\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @param {String} msgidPlural If no translation was found, return this on count!=1\n * @param {Number} count Number count for the plural\n * @return {String} Translation or the original string if no translation was found\n */\nGettext.prototype.dnpgettext = function(domain, msgctxt, msgid, msgidPlural, count) {\n var defaultTranslation = msgid;\n var translation;\n var index;\n\n msgctxt = msgctxt || '';\n\n if (!isNaN(count) && count !== 1) {\n defaultTranslation = msgidPlural || msgid;\n }\n\n translation = this._getTranslation(domain, msgctxt, msgid);\n\n if (translation) {\n if (typeof count === 'number') {\n var pluralsFunc = plurals[Gettext.getLanguageCode(this.locale)].pluralsFunc;\n index = pluralsFunc(count);\n if (typeof index === 'boolean') {\n index = index ? 1 : 0;\n }\n } else {\n index = 0;\n }\n\n return translation.msgstr[index] || defaultTranslation;\n }\n else if (!this.sourceLocale || this.locale !== this.sourceLocale) {\n this.warn('No translation was found for msgid \"' + msgid + '\" in msgctxt \"' + msgctxt + '\" and domain \"' + domain + '\"');\n }\n\n return defaultTranslation;\n};\n\n/**\n * Retrieves comments object for a translation. The comments object\n * has the shape `{ translator, extracted, reference, flag, previous }`.\n *\n * @example\n * const comment = gt.getComment('domainname', 'sports', 'Backs')\n *\n * @private\n * @param {String} domain A gettext domain name\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @return {Object} Comments object or false if not found\n */\nGettext.prototype.getComment = function(domain, msgctxt, msgid) {\n var translation;\n\n translation = this._getTranslation(domain, msgctxt, msgid);\n if (translation) {\n return translation.comments || {};\n }\n\n return {};\n};\n\n/**\n * Retrieves translation object from the domain and context\n *\n * @private\n * @param {String} domain A gettext domain name\n * @param {String} msgctxt Translation context\n * @param {String} msgid String to be translated\n * @return {Object} Translation object or false if not found\n */\nGettext.prototype._getTranslation = function(domain, msgctxt, msgid) {\n msgctxt = msgctxt || '';\n\n return get(this.catalogs, [this.locale, domain, 'translations', msgctxt, msgid]);\n};\n\n/**\n * Returns the language code part of a locale\n *\n * @example\n * Gettext.getLanguageCode('sv-SE')\n * // -> \"sv\"\n *\n * @private\n * @param {String} locale A case-insensitive locale string\n * @returns {String} A language code\n */\nGettext.getLanguageCode = function(locale) {\n return locale.split(/[\\-_]/)[0].toLowerCase();\n};\n\n/* C-style aliases */\n\n/**\n * C-style alias for [setTextDomain](#gettextsettextdomaindomain)\n *\n * @see Gettext#setTextDomain\n */\nGettext.prototype.textdomain = function(domain) {\n if (this.debug) {\n console.warn('textdomain(domain) was used to set locales in node-gettext v1. ' +\n 'Make sure you are using it for domains, and switch to setLocale(locale) if you are not.\\n\\n ' +\n 'To read more about the migration from node-gettext v1 to v2, ' +\n 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x\\n\\n' +\n 'This warning will be removed in the final 2.0.0');\n }\n\n this.setTextDomain(domain);\n};\n\n/**\n * C-style alias for [setLocale](#gettextsetlocalelocale)\n *\n * @see Gettext#setLocale\n */\nGettext.prototype.setlocale = function(locale) {\n this.setLocale(locale);\n};\n\n/* Deprecated functions */\n\n/**\n * This function will be removed in the final 2.0.0 release.\n *\n * @deprecated\n */\nGettext.prototype.addTextdomain = function() {\n console.error('addTextdomain() is deprecated.\\n\\n' +\n '* To add translations, use addTranslations()\\n' +\n '* To set the default domain, use setTextDomain() (or its alias textdomain())\\n' +\n '\\n' +\n 'To read more about the migration from node-gettext v1 to v2, ' +\n 'see https://github.com/alexanderwallin/node-gettext/#migrating-from-1x-to-2x');\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","'use strict';\n\nmodule.exports = {\n ach: {\n name: 'Acholi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n af: {\n name: 'Afrikaans',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ak: {\n name: 'Akan',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n am: {\n name: 'Amharic',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n an: {\n name: 'Aragonese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ar: {\n name: 'Arabic',\n examples: [{\n plural: 0,\n sample: 0\n }, {\n plural: 1,\n sample: 1\n }, {\n plural: 2,\n sample: 2\n }, {\n plural: 3,\n sample: 3\n }, {\n plural: 4,\n sample: 11\n }, {\n plural: 5,\n sample: 100\n }],\n nplurals: 6,\n 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)',\n pluralsFunc: function(n) {\n return (n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n }\n },\n arn: {\n name: 'Mapudungun',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n ast: {\n name: 'Asturian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ay: {\n name: 'Aymará',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n az: {\n name: 'Azerbaijani',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n be: {\n name: 'Belarusian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n 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)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n bg: {\n name: 'Bulgarian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n bn: {\n name: 'Bengali',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n bo: {\n name: 'Tibetan',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n br: {\n name: 'Breton',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n brx: {\n name: 'Bodo',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n bs: {\n name: 'Bosnian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n 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)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n ca: {\n name: 'Catalan',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n cgg: {\n name: 'Chiga',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n cs: {\n name: 'Czech',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2);\n }\n },\n csb: {\n name: 'Kashubian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n cy: {\n name: 'Welsh',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 8\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n === 2 ? 1 : (n !== 8 && n !== 11) ? 2 : 3);\n }\n },\n da: {\n name: 'Danish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n de: {\n name: 'German',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n doi: {\n name: 'Dogri',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n dz: {\n name: 'Dzongkha',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n el: {\n name: 'Greek',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n en: {\n name: 'English',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n eo: {\n name: 'Esperanto',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n es: {\n name: 'Spanish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n et: {\n name: 'Estonian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n eu: {\n name: 'Basque',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fa: {\n name: 'Persian',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n ff: {\n name: 'Fulah',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fi: {\n name: 'Finnish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fil: {\n name: 'Filipino',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n fo: {\n name: 'Faroese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fr: {\n name: 'French',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n fur: {\n name: 'Friulian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n fy: {\n name: 'Frisian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ga: {\n name: 'Irish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 7\n }, {\n plural: 4,\n sample: 11\n }],\n nplurals: 5,\n pluralsText: 'nplurals = 5; plural = (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n === 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n }\n },\n gd: {\n name: 'Scottish Gaelic',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 20\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3)',\n pluralsFunc: function(n) {\n return ((n === 1 || n === 11) ? 0 : (n === 2 || n === 12) ? 1 : (n > 2 && n < 20) ? 2 : 3);\n }\n },\n gl: {\n name: 'Galician',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n gu: {\n name: 'Gujarati',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n gun: {\n name: 'Gun',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n ha: {\n name: 'Hausa',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n he: {\n name: 'Hebrew',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n hi: {\n name: 'Hindi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n hne: {\n name: 'Chhattisgarhi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n hr: {\n name: 'Croatian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n 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)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n hu: {\n name: 'Hungarian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n hy: {\n name: 'Armenian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n id: {\n name: 'Indonesian',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n is: {\n name: 'Icelandic',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n % 10 !== 1 || n % 100 === 11)',\n pluralsFunc: function(n) {\n return (n % 10 !== 1 || n % 100 === 11);\n }\n },\n it: {\n name: 'Italian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ja: {\n name: 'Japanese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n jbo: {\n name: 'Lojban',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n jv: {\n name: 'Javanese',\n examples: [{\n plural: 0,\n sample: 0\n }, {\n plural: 1,\n sample: 1\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 0)',\n pluralsFunc: function(n) {\n return (n !== 0);\n }\n },\n ka: {\n name: 'Georgian',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n kk: {\n name: 'Kazakh',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n km: {\n name: 'Khmer',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n kn: {\n name: 'Kannada',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ko: {\n name: 'Korean',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n ku: {\n name: 'Kurdish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n kw: {\n name: 'Cornish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 4\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n === 2 ? 1 : n === 3 ? 2 : 3);\n }\n },\n ky: {\n name: 'Kyrgyz',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n lb: {\n name: 'Letzeburgesch',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ln: {\n name: 'Lingala',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n lo: {\n name: 'Lao',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n lt: {\n name: 'Lithuanian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 10\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n lv: {\n name: 'Latvian',\n examples: [{\n plural: 2,\n sample: 0\n }, {\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n !== 0 ? 1 : 2);\n }\n },\n mai: {\n name: 'Maithili',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n mfe: {\n name: 'Mauritian Creole',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n mg: {\n name: 'Malagasy',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n mi: {\n name: 'Maori',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n mk: {\n name: 'Macedonian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n === 1 || n % 10 === 1 ? 0 : 1)',\n pluralsFunc: function(n) {\n return (n === 1 || n % 10 === 1 ? 0 : 1);\n }\n },\n ml: {\n name: 'Malayalam',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n mn: {\n name: 'Mongolian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n mni: {\n name: 'Manipuri',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n mnk: {\n name: 'Mandinka',\n examples: [{\n plural: 0,\n sample: 0\n }, {\n plural: 1,\n sample: 1\n }, {\n plural: 2,\n sample: 2\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 0 ? 0 : n === 1 ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 0 ? 0 : n === 1 ? 1 : 2);\n }\n },\n mr: {\n name: 'Marathi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ms: {\n name: 'Malay',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n mt: {\n name: 'Maltese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 11\n }, {\n plural: 3,\n sample: 20\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = (n === 1 ? 0 : n === 0 || ( n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20 ) ? 2 : 3)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n === 0 || (n % 100 > 1 && n % 100 < 11) ? 1 : (n % 100 > 10 && n % 100 < 20) ? 2 : 3);\n }\n },\n my: {\n name: 'Burmese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n nah: {\n name: 'Nahuatl',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nap: {\n name: 'Neapolitan',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nb: {\n name: 'Norwegian Bokmal',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ne: {\n name: 'Nepali',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nl: {\n name: 'Dutch',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nn: {\n name: 'Norwegian Nynorsk',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n no: {\n name: 'Norwegian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n nso: {\n name: 'Northern Sotho',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n oc: {\n name: 'Occitan',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n or: {\n name: 'Oriya',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n pa: {\n name: 'Punjabi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n pap: {\n name: 'Papiamento',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n pl: {\n name: 'Polish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n pms: {\n name: 'Piemontese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ps: {\n name: 'Pashto',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n pt: {\n name: 'Portuguese',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n rm: {\n name: 'Romansh',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ro: {\n name: 'Romanian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 20\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : (n === 0 || (n % 100 > 0 && n % 100 < 20)) ? 1 : 2);\n }\n },\n ru: {\n name: 'Russian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n 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)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n rw: {\n name: 'Kinyarwanda',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sah: {\n name: 'Yakut',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n sat: {\n name: 'Santali',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sco: {\n name: 'Scots',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sd: {\n name: 'Sindhi',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n se: {\n name: 'Northern Sami',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n si: {\n name: 'Sinhala',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sk: {\n name: 'Slovak',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n pluralsText: 'nplurals = 3; plural = (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2)',\n pluralsFunc: function(n) {\n return (n === 1 ? 0 : (n >= 2 && n <= 4) ? 1 : 2);\n }\n },\n sl: {\n name: 'Slovenian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 3\n }, {\n plural: 3,\n sample: 5\n }],\n nplurals: 4,\n pluralsText: 'nplurals = 4; plural = (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3)',\n pluralsFunc: function(n) {\n return (n % 100 === 1 ? 0 : n % 100 === 2 ? 1 : n % 100 === 3 || n % 100 === 4 ? 2 : 3);\n }\n },\n so: {\n name: 'Somali',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n son: {\n name: 'Songhay',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sq: {\n name: 'Albanian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sr: {\n name: 'Serbian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n 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)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n su: {\n name: 'Sundanese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n sv: {\n name: 'Swedish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n sw: {\n name: 'Swahili',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n ta: {\n name: 'Tamil',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n te: {\n name: 'Telugu',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n tg: {\n name: 'Tajik',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n th: {\n name: 'Thai',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n ti: {\n name: 'Tigrinya',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n tk: {\n name: 'Turkmen',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n tr: {\n name: 'Turkish',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n tt: {\n name: 'Tatar',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n ug: {\n name: 'Uyghur',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n uk: {\n name: 'Ukrainian',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }, {\n plural: 2,\n sample: 5\n }],\n nplurals: 3,\n 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)',\n pluralsFunc: function(n) {\n return (n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n }\n },\n ur: {\n name: 'Urdu',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n uz: {\n name: 'Uzbek',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n vi: {\n name: 'Vietnamese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n wa: {\n name: 'Walloon',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n > 1)',\n pluralsFunc: function(n) {\n return (n > 1);\n }\n },\n wo: {\n name: 'Wolof',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n },\n yo: {\n name: 'Yoruba',\n examples: [{\n plural: 0,\n sample: 1\n }, {\n plural: 1,\n sample: 2\n }],\n nplurals: 2,\n pluralsText: 'nplurals = 2; plural = (n !== 1)',\n pluralsFunc: function(n) {\n return (n !== 1);\n }\n },\n zh: {\n name: 'Chinese',\n examples: [{\n plural: 0,\n sample: 1\n }],\n nplurals: 1,\n pluralsText: 'nplurals = 1; plural = 0',\n pluralsFunc: function() {\n return 0;\n }\n }\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.string.replace\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLocale = getLocale;\nexports.getCanonicalLocale = getCanonicalLocale;\nexports.getLanguage = getLanguage;\nexports.translate = translate;\nexports.translatePlural = translatePlural;\nexports.getFirstDay = getFirstDay;\nexports.getDayNames = getDayNames;\nexports.getDayNamesShort = getDayNamesShort;\nexports.getDayNamesMin = getDayNamesMin;\nexports.getMonthNames = getMonthNames;\nexports.getMonthNamesShort = getMonthNamesShort;\n\n/// <reference types=\"@nextcloud/typings\" />\n\n/**\n * Returns the user's locale\n */\nfunction getLocale() {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return 'en';\n }\n\n return OC.getLocale();\n}\n\nfunction getCanonicalLocale() {\n return getLocale().replace(/_/g, '-');\n}\n/**\n * Returns the user's language\n */\n\n\nfunction getLanguage() {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return 'en';\n }\n\n return OC.getLanguage();\n}\n\n/**\n * Translate a string\n *\n * @param {string} app the id of the app for which to translate the string\n * @param {string} text the string to translate\n * @param {object} vars map of placeholder key to value\n * @param {number} number to replace %n with\n * @param {object} [options] options object\n * @return {string}\n */\nfunction translate(app, text, vars, count, options) {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return text;\n }\n\n return OC.L10N.translate(app, text, vars, count, options);\n}\n/**\n * Translate a plural string\n *\n * @param {string} app the id of the app for which to translate the string\n * @param {string} textSingular the string to translate for exactly one object\n * @param {string} textPlural the string to translate for n objects\n * @param {number} count number to determine whether to use singular or plural\n * @param {Object} vars of placeholder key to value\n * @param {object} options options object\n * @return {string}\n */\n\n\nfunction translatePlural(app, textSingular, textPlural, count, vars, options) {\n if (typeof OC === 'undefined') {\n console.warn('No OC found');\n return textSingular;\n }\n\n return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options);\n}\n/**\n * Get the first day of the week\n *\n * @return {number}\n */\n\n\nfunction getFirstDay() {\n if (typeof window.firstDay === 'undefined') {\n console.warn('No firstDay found');\n return 1;\n }\n\n return window.firstDay;\n}\n/**\n * Get a list of day names (full names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNames() {\n if (typeof window.dayNames === 'undefined') {\n console.warn('No dayNames found');\n return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n }\n\n return window.dayNames;\n}\n/**\n * Get a list of day names (short names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNamesShort() {\n if (typeof window.dayNamesShort === 'undefined') {\n console.warn('No dayNamesShort found');\n return ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.'];\n }\n\n return window.dayNamesShort;\n}\n/**\n * Get a list of day names (minified names)\n *\n * @return {string[]}\n */\n\n\nfunction getDayNamesMin() {\n if (typeof window.dayNamesMin === 'undefined') {\n console.warn('No dayNamesMin found');\n return ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n }\n\n return window.dayNamesMin;\n}\n/**\n * Get a list of month names (full names)\n *\n * @return {string[]}\n */\n\n\nfunction getMonthNames() {\n if (typeof window.monthNames === 'undefined') {\n console.warn('No monthNames found');\n return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n }\n\n return window.monthNames;\n}\n/**\n * Get a list of month names (short names)\n *\n * @return {string[]}\n */\n\n\nfunction getMonthNamesShort() {\n if (typeof window.monthNamesShort === 'undefined') {\n console.warn('No monthNamesShort found');\n return ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'];\n }\n\n return window.monthNamesShort;\n}\n//# sourceMappingURL=index.js.map","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","\"use strict\";\n\nrequire(\"core-js/modules/es.object.assign.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _axios = _interopRequireDefault(require(\"axios\"));\n\nvar _auth = require(\"@nextcloud/auth\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar client = _axios.default.create({\n headers: {\n requesttoken: (0, _auth.getRequestToken)()\n }\n});\n\nvar cancelableClient = Object.assign(client, {\n CancelToken: _axios.default.CancelToken,\n isCancel: _axios.default.isCancel\n});\n(0, _auth.onRequestTokenUpdate)(function (token) {\n return client.defaults.headers.requesttoken = token;\n});\nvar _default = cancelableClient;\nexports.default = _default;\n//# sourceMappingURL=index.js.map","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.for-each\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRequestToken = getRequestToken;\nexports.onRequestTokenUpdate = onRequestTokenUpdate;\n\nvar _eventBus = require(\"@nextcloud/event-bus\");\n\nvar tokenElement = document.getElementsByTagName('head')[0];\nvar token = tokenElement ? tokenElement.getAttribute('data-requesttoken') : null;\nvar observers = [];\n\nfunction getRequestToken() {\n return token;\n}\n\nfunction onRequestTokenUpdate(observer) {\n observers.push(observer);\n} // Listen to server event and keep token in sync\n\n\n(0, _eventBus.subscribe)('csrf-token-update', function (e) {\n token = e.token;\n observers.forEach(function (observer) {\n try {\n observer(e.token);\n } catch (e) {\n console.error('error updating CSRF token observer', e);\n }\n });\n});\n//# sourceMappingURL=requesttoken.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCurrentUser = getCurrentUser;\n/// <reference types=\"@nextcloud/typings\" />\nvar uidElement = document.getElementsByTagName('head')[0];\nvar uid = uidElement ? uidElement.getAttribute('data-user') : null;\nvar displayNameElement = document.getElementsByTagName('head')[0];\nvar displayName = displayNameElement ? displayNameElement.getAttribute('data-user-displayname') : null;\nvar isAdmin = typeof OC === 'undefined' ? false : OC.isUserAdmin();\n\nfunction getCurrentUser() {\n if (uid === null) {\n return null;\n }\n\n return {\n uid: uid,\n displayName: displayName,\n isAdmin: isAdmin\n };\n}\n//# sourceMappingURL=user.js.map","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '<!-') {\n state = STATE_COMMENT;\n }\n\n tag_buffer += char;\n break;\n\n case ' ':\n case '\\n':\n if (tag_buffer === '<') {\n state = STATE_PLAINTEXT;\n output += '< ';\n tag_buffer = '';\n\n break;\n }\n\n tag_buffer += char;\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n\n else if (state === STATE_COMMENT) {\n switch (char) {\n case '>':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=e||self)[\"v-click-outside\"]=n()}(this,function(){var e=\"undefined\"!=typeof window,n=\"undefined\"!=typeof navigator,t=e&&(\"ontouchstart\"in window||n&&navigator.msMaxTouchPoints>0)?[\"touchstart\"]:[\"click\"];function i(e){var n=e.event,t=e.handler;(0,e.middleware)(n)&&t(n)}function r(e,n){var r=function(e){var n=\"function\"==typeof e;if(!n&&\"object\"!=typeof e)throw new Error(\"v-click-outside: Binding value must be a function or an object\");return{handler:n?e:e.handler,middleware:e.middleware||function(e){return e},events:e.events||t,isActive:!(!1===e.isActive),detectIframe:!(!1===e.detectIframe)}}(n.value),d=r.handler,o=r.middleware,a=r.detectIframe;if(r.isActive){if(e[\"__v-click-outside\"]=r.events.map(function(n){return{event:n,srcTarget:document.documentElement,handler:function(n){return function(e){var n=e.el,t=e.event,r=e.handler,d=e.middleware,o=t.path||t.composedPath&&t.composedPath();(o?o.indexOf(n)<0:!n.contains(t.target))&&i({event:t,handler:r,middleware:d})}({el:e,event:n,handler:d,middleware:o})}}}),a){var c={event:\"blur\",srcTarget:window,handler:function(n){return function(e){var n=e.el,t=e.event,r=e.handler,d=e.middleware;setTimeout(function(){var e=document.activeElement;e&&\"IFRAME\"===e.tagName&&!n.contains(e)&&i({event:t,handler:r,middleware:d})},0)}({el:e,event:n,handler:d,middleware:o})}};e[\"__v-click-outside\"]=[].concat(e[\"__v-click-outside\"],[c])}e[\"__v-click-outside\"].forEach(function(n){var t=n.event,i=n.srcTarget,r=n.handler;return setTimeout(function(){e[\"__v-click-outside\"]&&i.addEventListener(t,r,!1)},0)})}}function d(e){(e[\"__v-click-outside\"]||[]).forEach(function(e){return e.srcTarget.removeEventListener(e.event,e.handler,!1)}),delete e[\"__v-click-outside\"]}var o=e?{bind:r,update:function(e,n){var t=n.value,i=n.oldValue;JSON.stringify(t)!==JSON.stringify(i)&&(d(e),r(e,{value:t}))},unbind:d}:{};return{install:function(e){e.directive(\"click-outside\",o)},directive:o}});\n//# sourceMappingURL=v-click-outside.umd.js.map\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '&quot;';\n break;\n case 38: // &\n escape = '&amp;';\n break;\n case 39: // '\n escape = '&#39;';\n break;\n case 60: // <\n escape = '&lt;';\n break;\n case 62: // >\n escape = '&gt;';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCapabilities = getCapabilities;\n\nvar _initialState = require(\"@nextcloud/initial-state\");\n\nfunction getCapabilities() {\n try {\n return (0, _initialState.loadState)('core', 'capabilities');\n } catch (error) {\n console.debug('Could not find capabilities initial state fall back to _oc_capabilities');\n\n if (!('_oc_capabilities' in window)) {\n return {};\n }\n\n return window['_oc_capabilities'];\n }\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nrequire(\"core-js/modules/es.array.concat\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.loadState = loadState;\n\n/**\n * @param app app ID, e.g. \"mail\"\n * @param key name of the property\n * @param fallback optional parameter to use as default value\n * @throws if the key can't be found\n */\nfunction loadState(app, key, fallback) {\n var elem = document.querySelector(\"#initial-state-\".concat(app, \"-\").concat(key));\n\n if (elem === null) {\n if (fallback !== undefined) {\n return fallback;\n }\n\n throw new Error(\"Could not find initial state \".concat(key, \" of \").concat(app));\n }\n\n try {\n return JSON.parse(atob(elem.value));\n } catch (e) {\n throw new Error(\"Could not parse initial state \".concat(key, \" of \").concat(app));\n }\n}\n//# sourceMappingURL=index.js.map","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/es.string.starts-with\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBuilder = getBuilder;\nexports.clearAll = clearAll;\nexports.clearNonPersistent = clearNonPersistent;\n\nvar _storagebuilder = _interopRequireDefault(require(\"./storagebuilder\"));\n\nvar _scopedstorage = _interopRequireDefault(require(\"./scopedstorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getBuilder(appId) {\n return new _storagebuilder.default(appId);\n}\n\nfunction clearStorage(storage, pred) {\n Object.keys(storage).filter(function (k) {\n return pred ? pred(k) : true;\n }).map(storage.removeItem.bind(storage));\n}\n\nfunction clearAll() {\n var storages = [window.sessionStorage, window.localStorage];\n storages.map(function (s) {\n return clearStorage(s);\n });\n}\n\nfunction clearNonPersistent() {\n var storages = [window.sessionStorage, window.localStorage];\n storages.map(function (s) {\n return clearStorage(s, function (k) {\n return !k.startsWith(_scopedstorage.default.GLOBAL_SCOPE_PERSISTENT);\n });\n });\n}\n//# sourceMappingURL=index.js.map","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _scopedstorage = _interopRequireDefault(require(\"./scopedstorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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; }\n\nvar StorageBuilder =\n/*#__PURE__*/\nfunction () {\n function StorageBuilder(appId) {\n _classCallCheck(this, StorageBuilder);\n\n _defineProperty(this, \"appId\", void 0);\n\n _defineProperty(this, \"persisted\", false);\n\n _defineProperty(this, \"clearedOnLogout\", false);\n\n this.appId = appId;\n }\n\n _createClass(StorageBuilder, [{\n key: \"persist\",\n value: function persist() {\n var _persist = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.persisted = _persist;\n return this;\n }\n }, {\n key: \"clearOnLogout\",\n value: function clearOnLogout() {\n var clear = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.clearedOnLogout = clear;\n return this;\n }\n }, {\n key: \"build\",\n value: function build() {\n return new _scopedstorage.default(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout);\n }\n }]);\n\n return StorageBuilder;\n}();\n\nexports.default = StorageBuilder;\n//# sourceMappingURL=storagebuilder.js.map","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.es/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.es/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueMultiselect=e():t.VueMultiselect=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=60)}([function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e,n){var i=n(49)(\"wks\"),r=n(30),o=n(0).Symbol,s=\"function\"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)(\"Symbol.\"+t))}).store=i},function(t,e,n){var i=n(5);t.exports=function(t){if(!i(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var i=n(0),r=n(10),o=n(8),s=n(6),u=n(11),a=function(t,e,n){var l,c,f,p,h=t&a.F,d=t&a.G,v=t&a.S,g=t&a.P,y=t&a.B,m=d?i:v?i[e]||(i[e]={}):(i[e]||{}).prototype,b=d?r:r[e]||(r[e]={}),_=b.prototype||(b.prototype={});d&&(n=e);for(l in n)c=!h&&m&&void 0!==m[l],f=(c?m:n)[l],p=y&&c?u(f,i):g&&\"function\"==typeof f?u(Function.call,f):f,m&&s(m,l,f,t&a.U),b[l]!=f&&o(b,l,p),g&&_[l]!=f&&(_[l]=f)};i.core=r,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e,n){t.exports=!n(7)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var i=n(0),r=n(8),o=n(12),s=n(30)(\"src\"),u=Function.toString,a=(\"\"+u).split(\"toString\");n(10).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var l=\"function\"==typeof n;l&&(o(n,\"name\")||r(n,\"name\",e)),t[e]!==n&&(l&&(o(n,s)||r(n,s,t[e]?\"\"+t[e]:a.join(String(e)))),t===i?t[e]=n:u?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,\"toString\",function(){return\"function\"==typeof this&&this[s]||u.call(this)})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var i=n(13),r=n(25);t.exports=n(4)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=t.exports={version:\"2.5.7\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var i=n(14);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(2),r=n(41),o=n(29),s=Object.defineProperty;e.f=n(4)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){t.exports={}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e,n){\"use strict\";var i=n(7);t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){var i=n(23),r=n(16);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(53),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(11),r=n(23),o=n(28),s=n(19),u=n(64);t.exports=function(t,e){var n=1==t,a=2==t,l=3==t,c=4==t,f=6==t,p=5==t||f,h=e||u;return function(e,u,d){for(var v,g,y=o(e),m=r(y),b=i(u,d,3),_=s(m.length),x=0,w=n?h(e,_):a?h(e,0):void 0;_>x;x++)if((p||x in m)&&(v=m[x],g=b(v,x,y),t))if(n)w[x]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(c)return!1;return f?-1:l||c?c:w}}},function(t,e,n){var i=n(5),r=n(0).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var i=n(9);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==i(t)?t.split(\"\"):Object(t)}},function(t,e){t.exports=!1},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(13).f,r=n(12),o=n(1)(\"toStringTag\");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(49)(\"keys\"),r=n(30);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(16);t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(5);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+i).toString(36))}},function(t,e,n){\"use strict\";var i=n(0),r=n(12),o=n(9),s=n(67),u=n(29),a=n(7),l=n(77).f,c=n(45).f,f=n(13).f,p=n(51).trim,h=i.Number,d=h,v=h.prototype,g=\"Number\"==o(n(44)(v)),y=\"trim\"in String.prototype,m=function(t){var e=u(t,!1);if(\"string\"==typeof e&&e.length>2){e=y?e.trim():p(e,3);var n,i,r,o=e.charCodeAt(0);if(43===o||45===o){if(88===(n=e.charCodeAt(2))||120===n)return NaN}else if(48===o){switch(e.charCodeAt(1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+e}for(var s,a=e.slice(2),l=0,c=a.length;l<c;l++)if((s=a.charCodeAt(l))<48||s>r)return NaN;return parseInt(a,i)}}return+e};if(!h(\" 0o1\")||!h(\"0b1\")||h(\"+0x1\")){h=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof h&&(g?a(function(){v.valueOf.call(n)}):\"Number\"!=o(n))?s(new d(m(e)),n,h):m(e)};for(var b,_=n(4)?l(d):\"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger\".split(\",\"),x=0;_.length>x;x++)r(d,b=_[x])&&!r(h,b)&&f(h,b,c(d,b));h.prototype=v,v.constructor=h,n(6)(i,\"Number\",h)}},function(t,e,n){\"use strict\";function i(t){return 0!==t&&(!(!Array.isArray(t)||0!==t.length)||!t)}function r(t){return function(){return!t.apply(void 0,arguments)}}function o(t,e){return void 0===t&&(t=\"undefined\"),null===t&&(t=\"null\"),!1===t&&(t=\"false\"),-1!==t.toString().toLowerCase().indexOf(e.trim())}function s(t,e,n,i){return t.filter(function(t){return o(i(t,n),e)})}function u(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,i){return i[t]&&i[t].length?(n.push({$groupLabel:i[e],$isLabel:!0}),n.concat(i[t])):n},[])}}function l(t,e,i,r,o){return function(u){return u.map(function(u){var a;if(!u[i])return console.warn(\"Options passed to vue-multiselect do not contain groups, despite the config.\"),[];var l=s(u[i],t,e,o);return l.length?(a={},n.i(d.a)(a,r,u[r]),n.i(d.a)(a,i,l),a):[]})}}var c=n(59),f=n(54),p=(n.n(f),n(95)),h=(n.n(p),n(31)),d=(n.n(h),n(58)),v=n(91),g=(n.n(v),n(98)),y=(n.n(g),n(92)),m=(n.n(y),n(88)),b=(n.n(m),n(97)),_=(n.n(b),n(89)),x=(n.n(_),n(96)),w=(n.n(x),n(93)),S=(n.n(w),n(90)),O=(n.n(S),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce(function(t,e){return e(t)},t)}});e.a={data:function(){return{search:\"\",isOpen:!1,preferredOpenDirection:\"below\",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:\"Select option\"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return i(t)?\"\":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:\"Press enter to create a tag\"},tagPosition:{type:String,default:\"top\"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted:function(){!this.multiple&&this.max&&console.warn(\"[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.\"),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||\"\",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):s(n,e,this.label,this.customLabel):this.groupValues?a(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(r(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&(\"bottom\"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map(function(e){return e[t.trackBy]}):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(e){return t.customLabel(e,t.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?\"\":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?\"\":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search=\"\",this.$emit(\"input\",this.multiple?[]:null))},search:function(){this.$emit(\"search-change\",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return O(l(e,n,this.groupValues,this.groupLabel,this.customLabel),a(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return O(a(this.groupValues,this.groupLabel),u)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},isOptionDisabled:function(t){return!!t.$isDisabled},getOptionLabel:function(t){if(i(t))return\"\";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return i(e)?\"\":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)return void this.selectGroup(t);if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&(\"Tab\"!==e||this.pointerDirty)){if(t.isTag)this.$emit(\"tag\",t.label,this.id),this.search=\"\",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void(\"Tab\"!==e&&this.removeElement(t));this.$emit(\"select\",t,this.id),this.multiple?this.$emit(\"input\",this.internalValue.concat([t]),this.id):this.$emit(\"input\",t,this.id),this.clearOnSelect&&(this.search=\"\")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find(function(n){return n[e.groupLabel]===t.$groupLabel});if(n)if(this.wholeGroupSelected(n)){this.$emit(\"remove\",n[this.groupValues],this.id);var i=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit(\"input\",i,this.id)}else{var r=n[this.groupValues].filter(function(t){return!(e.isOptionDisabled(t)||e.isSelected(t))});this.$emit(\"select\",r,this.id),this.$emit(\"input\",this.internalValue.concat(r),this.id)}},wholeGroupSelected:function(t){var e=this;return t[this.groupValues].every(function(t){return e.isSelected(t)||e.isOptionDisabled(t)})},wholeGroupDisabled:function(t){return t[this.groupValues].every(this.isOptionDisabled)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!t.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var i=\"object\"===n.i(c.a)(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit(\"remove\",t,this.id),this.multiple){var r=this.internalValue.slice(0,i).concat(this.internalValue.slice(i+1));this.$emit(\"input\",r,this.id)}else this.$emit(\"input\",null,this.id);this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf(\"Delete\")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=\"\"),this.$nextTick(function(){return t.$refs.search.focus()})):this.$el.focus(),this.$emit(\"open\",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=\"\"),this.$emit(\"close\",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if(\"undefined\"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||\"below\"===this.openDirection||\"bottom\"===this.openDirection?(this.preferredOpenDirection=\"below\",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.preferredOpenDirection=\"above\",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){\"use strict\";var i=n(54),r=(n.n(i),n(31));n.n(r);e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(t,e){return{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer,\"multiselect__option--selected\":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return[\"multiselect__option--group\",\"multiselect__option--disabled\"];var i=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return i&&!this.wholeGroupDisabled(i)?[\"multiselect__option--group\",{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer},{\"multiselect__option--group-selected\":this.wholeGroupSelected(i)}]:\"multiselect__option--disabled\"},addPointerElement:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"Enter\",e=t.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward:function(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e,n){\"use strict\";var i=n(36),r=n(74),o=n(15),s=n(18);t.exports=n(72)(Array,\"Array\",function(t,e){this._t=s(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):\"keys\"==e?r(0,n):\"values\"==e?r(0,t[n]):r(0,[n,t[n]])},\"values\"),o.Arguments=o.Array,i(\"keys\"),i(\"values\"),i(\"entries\")},function(t,e,n){\"use strict\";var i=n(31),r=(n.n(i),n(32)),o=n(33);e.a={name:\"vue-multiselect\",mixins:[r.a,o.a],props:{name:{type:String,default:\"\"},selectLabel:{type:String,default:\"Press enter to select\"},selectGroupLabel:{type:String,default:\"Press enter to select group\"},selectedLabel:{type:String,default:\"Selected\"},deselectLabel:{type:String,default:\"Press enter to remove\"},deselectGroupLabel:{type:String,default:\"Press enter to deselect group\"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return\"and \".concat(t,\" more\")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:\"\"},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:\"\"},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:\"\"},selectLabelText:function(){return this.showLabels?this.selectLabel:\"\"},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:\"\"},selectedLabelText:function(){return this.showLabels?this.selectedLabel:\"\"},inputStyle:function(){if(this.searchable||this.multiple&&this.value&&this.value.length)return this.isOpen?{width:\"100%\"}:{width:\"0\",position:\"absolute\",padding:\"0\"}},contentStyle:function(){return this.options.length?{display:\"inline-block\"}:{display:\"block\"}},isAbove:function(){return\"above\"===this.openDirection||\"top\"===this.openDirection||\"below\"!==this.openDirection&&\"bottom\"!==this.openDirection&&\"above\"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){var i=n(1)(\"unscopables\"),r=Array.prototype;void 0==r[i]&&n(8)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(18),r=n(19),o=n(85);t.exports=function(t){return function(e,n,s){var u,a=i(e),l=r(a.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(9),r=n(1)(\"toStringTag\"),o=\"Arguments\"==i(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,u;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=s(e=Object(t),r))?n:o?i(e):\"Object\"==(u=i(e))&&\"function\"==typeof e.callee?\"Arguments\":u}},function(t,e,n){\"use strict\";var i=n(2);t.exports=function(){var t=i(this),e=\"\";return t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.unicode&&(e+=\"u\"),t.sticky&&(e+=\"y\"),e}},function(t,e,n){var i=n(0).document;t.exports=i&&i.documentElement},function(t,e,n){t.exports=!n(4)&&!n(7)(function(){return 7!=Object.defineProperty(n(21)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var i=n(9);t.exports=Array.isArray||function(t){return\"Array\"==i(t)}},function(t,e,n){\"use strict\";function i(t){var e,n;this.promise=new t(function(t,i){if(void 0!==e||void 0!==n)throw TypeError(\"Bad Promise constructor\");e=t,n=i}),this.resolve=r(e),this.reject=r(n)}var r=n(14);t.exports.f=function(t){return new i(t)}},function(t,e,n){var i=n(2),r=n(76),o=n(22),s=n(27)(\"IE_PROTO\"),u=function(){},a=function(){var t,e=n(21)(\"iframe\"),i=o.length;for(e.style.display=\"none\",n(40).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(\"<script>document.F=Object<\\/script>\"),t.close(),a=t.F;i--;)delete a.prototype[o[i]];return a()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=i(t),n=new u,u.prototype=null,n[s]=t):n=a(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(79),r=n(25),o=n(18),s=n(29),u=n(12),a=n(41),l=Object.getOwnPropertyDescriptor;e.f=n(4)?l:function(t,e){if(t=o(t),e=s(e,!0),a)try{return l(t,e)}catch(t){}if(u(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e,n){var i=n(12),r=n(18),o=n(37)(!1),s=n(27)(\"IE_PROTO\");t.exports=function(t,e){var n,u=r(t),a=0,l=[];for(n in u)n!=s&&i(u,n)&&l.push(n);for(;e.length>a;)i(u,n=e[a++])&&(~o(l,n)||l.push(n));return l}},function(t,e,n){var i=n(46),r=n(22);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e,n){var i=n(2),r=n(5),o=n(43);t.exports=function(t,e){if(i(t),r(e)&&e.constructor===t)return e;var n=o.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){var i=n(10),r=n(0),o=r[\"__core-js_shared__\"]||(r[\"__core-js_shared__\"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:i.version,mode:n(24)?\"pure\":\"global\",copyright:\"© 2018 Denis Pushkarev (zloirock.ru)\"})},function(t,e,n){var i=n(2),r=n(14),o=n(1)(\"species\");t.exports=function(t,e){var n,s=i(t).constructor;return void 0===s||void 0==(n=i(s)[o])?e:r(n)}},function(t,e,n){var i=n(3),r=n(16),o=n(7),s=n(84),u=\"[\"+s+\"]\",a=\"​…\",l=RegExp(\"^\"+u+u+\"*\"),c=RegExp(u+u+\"*$\"),f=function(t,e,n){var r={},u=o(function(){return!!s[t]()||a[t]()!=a}),l=r[t]=u?e(p):s[t];n&&(r[n]=l),i(i.P+i.F*u,\"String\",r)},p=f.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(l,\"\")),2&e&&(t=t.replace(c,\"\")),t};t.exports=f},function(t,e,n){var i,r,o,s=n(11),u=n(68),a=n(40),l=n(21),c=n(0),f=c.process,p=c.setImmediate,h=c.clearImmediate,d=c.MessageChannel,v=c.Dispatch,g=0,y={},m=function(){var t=+this;if(y.hasOwnProperty(t)){var e=y[t];delete y[t],e()}},b=function(t){m.call(t.data)};p&&h||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return y[++g]=function(){u(\"function\"==typeof t?t:Function(t),e)},i(g),g},h=function(t){delete y[t]},\"process\"==n(9)(f)?i=function(t){f.nextTick(s(m,t,1))}:v&&v.now?i=function(t){v.now(s(m,t,1))}:d?(r=new d,o=r.port2,r.port1.onmessage=b,i=s(o.postMessage,o,1)):c.addEventListener&&\"function\"==typeof postMessage&&!c.importScripts?(i=function(t){c.postMessage(t+\"\",\"*\")},c.addEventListener(\"message\",b,!1)):i=\"onreadystatechange\"in l(\"script\")?function(t){a.appendChild(l(\"script\")).onreadystatechange=function(){a.removeChild(this),m.call(t)}}:function(t){setTimeout(s(m,t,1),0)}),t.exports={set:p,clear:h}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){\"use strict\";var i=n(3),r=n(20)(5),o=!0;\"find\"in[]&&Array(1).find(function(){o=!1}),i(i.P+i.F*o,\"Array\",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(36)(\"find\")},function(t,e,n){\"use strict\";var i,r,o,s,u=n(24),a=n(0),l=n(11),c=n(38),f=n(3),p=n(5),h=n(14),d=n(61),v=n(66),g=n(50),y=n(52).set,m=n(75)(),b=n(43),_=n(80),x=n(86),w=n(48),S=a.TypeError,O=a.process,L=O&&O.versions,k=L&&L.v8||\"\",P=a.Promise,T=\"process\"==c(O),V=function(){},E=r=b.f,A=!!function(){try{var t=P.resolve(1),e=(t.constructor={})[n(1)(\"species\")]=function(t){t(V,V)};return(T||\"function\"==typeof PromiseRejectionEvent)&&t.then(V)instanceof e&&0!==k.indexOf(\"6.6\")&&-1===x.indexOf(\"Chrome/66\")}catch(t){}}(),C=function(t){var e;return!(!p(t)||\"function\"!=typeof(e=t.then))&&e},D=function(t,e){if(!t._n){t._n=!0;var n=t._c;m(function(){for(var i=t._v,r=1==t._s,o=0;n.length>o;)!function(e){var n,o,s,u=r?e.ok:e.fail,a=e.resolve,l=e.reject,c=e.domain;try{u?(r||(2==t._h&&$(t),t._h=1),!0===u?n=i:(c&&c.enter(),n=u(i),c&&(c.exit(),s=!0)),n===e.promise?l(S(\"Promise-chain cycle\")):(o=C(n))?o.call(n,a,l):a(n)):l(i)}catch(t){c&&!s&&c.exit(),l(t)}}(n[o++]);t._c=[],t._n=!1,e&&!t._h&&j(t)})}},j=function(t){y.call(a,function(){var e,n,i,r=t._v,o=N(t);if(o&&(e=_(function(){T?O.emit(\"unhandledRejection\",r,t):(n=a.onunhandledrejection)?n({promise:t,reason:r}):(i=a.console)&&i.error&&i.error(\"Unhandled promise rejection\",r)}),t._h=T||N(t)?2:1),t._a=void 0,o&&e.e)throw e.v})},N=function(t){return 1!==t._h&&0===(t._a||t._c).length},$=function(t){y.call(a,function(){var e;T?O.emit(\"rejectionHandled\",t):(e=a.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,e=e._w||e,e._v=t,e._s=2,e._a||(e._a=e._c.slice()),D(e,!0))},M=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S(\"Promise can't be resolved itself\");(e=C(t))?m(function(){var i={_w:n,_d:!1};try{e.call(t,l(M,i,1),l(F,i,1))}catch(t){F.call(i,t)}}):(n._v=t,n._s=1,D(n,!1))}catch(t){F.call({_w:n,_d:!1},t)}}};A||(P=function(t){d(this,P,\"Promise\",\"_h\"),h(t),i.call(this);try{t(l(M,this,1),l(F,this,1))}catch(t){F.call(this,t)}},i=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},i.prototype=n(81)(P.prototype,{then:function(t,e){var n=E(g(this,P));return n.ok=\"function\"!=typeof t||t,n.fail=\"function\"==typeof e&&e,n.domain=T?O.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&D(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new i;this.promise=t,this.resolve=l(M,t,1),this.reject=l(F,t,1)},b.f=E=function(t){return t===P||t===s?new o(t):r(t)}),f(f.G+f.W+f.F*!A,{Promise:P}),n(26)(P,\"Promise\"),n(83)(\"Promise\"),s=n(10).Promise,f(f.S+f.F*!A,\"Promise\",{reject:function(t){var e=E(this);return(0,e.reject)(t),e.promise}}),f(f.S+f.F*(u||!A),\"Promise\",{resolve:function(t){return w(u&&this===s?P:this,t)}}),f(f.S+f.F*!(A&&n(73)(function(t){P.all(t).catch(V)})),\"Promise\",{all:function(t){var e=this,n=E(e),i=n.resolve,r=n.reject,o=_(function(){var n=[],o=0,s=1;v(t,!1,function(t){var u=o++,a=!1;n.push(void 0),s++,e.resolve(t).then(function(t){a||(a=!0,n[u]=t,--s||i(n))},r)}),--s||i(n)});return o.e&&r(o.v),n.promise},race:function(t){var e=this,n=E(e),i=n.reject,r=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,i)})});return r.e&&i(r.v),n.promise}})},function(t,e,n){\"use strict\";var i=n(3),r=n(10),o=n(0),s=n(50),u=n(48);i(i.P+i.R,\"Promise\",{finally:function(t){var e=s(this,r.Promise||o.Promise),n=\"function\"==typeof t;return this.then(n?function(n){return u(e,t()).then(function(){return n})}:t,n?function(n){return u(e,t()).then(function(){throw n})}:t)}})},function(t,e,n){\"use strict\";function i(t){n(99)}var r=n(35),o=n(101),s=n(100),u=i,a=s(r.a,o.a,!1,u,null,null);e.a=a.exports},function(t,e,n){\"use strict\";function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}e.a=i},function(t,e,n){\"use strict\";function i(t){return(i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function r(t){return(r=\"function\"==typeof Symbol&&\"symbol\"===i(Symbol.iterator)?function(t){return i(t)}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":i(t)})(t)}e.a=r},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(34),r=(n.n(i),n(55)),o=(n.n(r),n(56)),s=(n.n(o),n(57)),u=n(32),a=n(33);n.d(e,\"Multiselect\",function(){return s.a}),n.d(e,\"multiselectMixin\",function(){return u.a}),n.d(e,\"pointerMixin\",function(){return a.a}),e.default=s.a},function(t,e){t.exports=function(t,e,n,i){if(!(t instanceof e)||void 0!==i&&i in t)throw TypeError(n+\": incorrect invocation!\");return t}},function(t,e,n){var i=n(14),r=n(28),o=n(23),s=n(19);t.exports=function(t,e,n,u,a){i(e);var l=r(t),c=o(l),f=s(l.length),p=a?f-1:0,h=a?-1:1;if(n<2)for(;;){if(p in c){u=c[p],p+=h;break}if(p+=h,a?p<0:f<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;a?p>=0:f>p;p+=h)p in c&&(u=e(u,c[p],p,l));return u}},function(t,e,n){var i=n(5),r=n(42),o=n(1)(\"species\");t.exports=function(t){var e;return r(t)&&(e=t.constructor,\"function\"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),i(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var i=n(63);t.exports=function(t,e){return new(i(t))(e)}},function(t,e,n){\"use strict\";var i=n(8),r=n(6),o=n(7),s=n(16),u=n(1);t.exports=function(t,e,n){var a=u(t),l=n(s,a,\"\"[t]),c=l[0],f=l[1];o(function(){var e={};return e[a]=function(){return 7},7!=\"\"[t](e)})&&(r(String.prototype,t,c),i(RegExp.prototype,a,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)}))}},function(t,e,n){var i=n(11),r=n(70),o=n(69),s=n(2),u=n(19),a=n(87),l={},c={},e=t.exports=function(t,e,n,f,p){var h,d,v,g,y=p?function(){return t}:a(t),m=i(n,f,e?2:1),b=0;if(\"function\"!=typeof y)throw TypeError(t+\" is not iterable!\");if(o(y)){for(h=u(t.length);h>b;b++)if((g=e?m(s(d=t[b])[0],d[1]):m(t[b]))===l||g===c)return g}else for(v=y.call(t);!(d=v.next()).done;)if((g=r(v,m,d.value,e))===l||g===c)return g};e.BREAK=l,e.RETURN=c},function(t,e,n){var i=n(5),r=n(82).set;t.exports=function(t,e,n){var o,s=e.constructor;return s!==n&&\"function\"==typeof s&&(o=s.prototype)!==n.prototype&&i(o)&&r&&r(t,o),t}},function(t,e){t.exports=function(t,e,n){var i=void 0===n;switch(e.length){case 0:return i?t():t.call(n);case 1:return i?t(e[0]):t.call(n,e[0]);case 2:return i?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return i?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return i?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var i=n(15),r=n(1)(\"iterator\"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(i.Array===t||o[r]===t)}},function(t,e,n){var i=n(2);t.exports=function(t,e,n,r){try{return r?e(i(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&i(o.call(t)),e}}},function(t,e,n){\"use strict\";var i=n(44),r=n(25),o=n(26),s={};n(8)(s,n(1)(\"iterator\"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+\" Iterator\")}},function(t,e,n){\"use strict\";var i=n(24),r=n(3),o=n(6),s=n(8),u=n(15),a=n(71),l=n(26),c=n(78),f=n(1)(\"iterator\"),p=!([].keys&&\"next\"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,g,y){a(n,e,d);var m,b,_,x=function(t){if(!p&&t in L)return L[t];switch(t){case\"keys\":case\"values\":return function(){return new n(this,t)}}return function(){return new n(this,t)}},w=e+\" Iterator\",S=\"values\"==v,O=!1,L=t.prototype,k=L[f]||L[\"@@iterator\"]||v&&L[v],P=k||x(v),T=v?S?x(\"entries\"):P:void 0,V=\"Array\"==e?L.entries||k:k;if(V&&(_=c(V.call(new t)))!==Object.prototype&&_.next&&(l(_,w,!0),i||\"function\"==typeof _[f]||s(_,f,h)),S&&k&&\"values\"!==k.name&&(O=!0,P=function(){return k.call(this)}),i&&!y||!p&&!O&&L[f]||s(L,f,P),u[e]=P,u[w]=h,v)if(m={values:S?P:x(\"values\"),keys:g?P:x(\"keys\"),entries:T},y)for(b in m)b in L||o(L,b,m[b]);else r(r.P+r.F*(p||O),e,m);return m}},function(t,e,n){var i=n(1)(\"iterator\"),r=!1;try{var o=[7][i]();o.return=function(){r=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var o=[7],s=o[i]();s.next=function(){return{done:n=!0}},o[i]=function(){return s},t(o)}catch(t){}return n}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(0),r=n(52).set,o=i.MutationObserver||i.WebKitMutationObserver,s=i.process,u=i.Promise,a=\"process\"==n(9)(s);t.exports=function(){var t,e,n,l=function(){var i,r;for(a&&(i=s.domain)&&i.exit();t;){r=t.fn,t=t.next;try{r()}catch(i){throw t?n():e=void 0,i}}e=void 0,i&&i.enter()};if(a)n=function(){s.nextTick(l)};else if(!o||i.navigator&&i.navigator.standalone)if(u&&u.resolve){var c=u.resolve(void 0);n=function(){c.then(l)}}else n=function(){r.call(i,l)};else{var f=!0,p=document.createTextNode(\"\");new o(l).observe(p,{characterData:!0}),n=function(){p.data=f=!f}}return function(i){var r={fn:i,next:void 0};e&&(e.next=r),t||(t=r,n()),e=r}}},function(t,e,n){var i=n(13),r=n(2),o=n(47);t.exports=n(4)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),u=s.length,a=0;u>a;)i.f(t,n=s[a++],e[n]);return t}},function(t,e,n){var i=n(46),r=n(22).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e,n){var i=n(12),r=n(28),o=n(27)(\"IE_PROTO\"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var i=n(6);t.exports=function(t,e,n){for(var r in e)i(t,r,e[r],n);return t}},function(t,e,n){var i=n(5),r=n(2),o=function(t,e){if(r(t),!i(e)&&null!==e)throw TypeError(e+\": can't set as prototype!\")};t.exports={set:Object.setPrototypeOf||(\"__proto__\"in{}?function(t,e,i){try{i=n(11)(Function.call,n(45).f(Object.prototype,\"__proto__\").set,2),i(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:i(t,n),t}}({},!1):void 0),check:o}},function(t,e,n){\"use strict\";var i=n(0),r=n(13),o=n(4),s=n(1)(\"species\");t.exports=function(t){var e=i[t];o&&e&&!e[s]&&r.f(e,s,{configurable:!0,get:function(){return this}})}},function(t,e){t.exports=\"\\t\\n\\v\\f\\r   ᠎              \\u2028\\u2029\\ufeff\"},function(t,e,n){var i=n(53),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(0),r=i.navigator;t.exports=r&&r.userAgent||\"\"},function(t,e,n){var i=n(38),r=n(1)(\"iterator\"),o=n(15);t.exports=n(10).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t[\"@@iterator\"]||o[i(t)]}},function(t,e,n){\"use strict\";var i=n(3),r=n(20)(2);i(i.P+i.F*!n(17)([].filter,!0),\"Array\",{filter:function(t){return r(this,t,arguments[1])}})},function(t,e,n){\"use strict\";var i=n(3),r=n(37)(!1),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0;i(i.P+i.F*(s||!n(17)(o)),\"Array\",{indexOf:function(t){return s?o.apply(this,arguments)||0:r(this,t,arguments[1])}})},function(t,e,n){var i=n(3);i(i.S,\"Array\",{isArray:n(42)})},function(t,e,n){\"use strict\";var i=n(3),r=n(20)(1);i(i.P+i.F*!n(17)([].map,!0),\"Array\",{map:function(t){return r(this,t,arguments[1])}})},function(t,e,n){\"use strict\";var i=n(3),r=n(62);i(i.P+i.F*!n(17)([].reduce,!0),\"Array\",{reduce:function(t){return r(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){var i=Date.prototype,r=i.toString,o=i.getTime;new Date(NaN)+\"\"!=\"Invalid Date\"&&n(6)(i,\"toString\",function(){var t=o.call(this);return t===t?r.call(this):\"Invalid Date\"})},function(t,e,n){n(4)&&\"g\"!=/./g.flags&&n(13).f(RegExp.prototype,\"flags\",{configurable:!0,get:n(39)})},function(t,e,n){n(65)(\"search\",1,function(t,e,n){return[function(n){\"use strict\";var i=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},n]})},function(t,e,n){\"use strict\";n(94);var i=n(2),r=n(39),o=n(4),s=/./.toString,u=function(t){n(6)(RegExp.prototype,\"toString\",t,!0)};n(7)(function(){return\"/a/b\"!=s.call({source:\"a\",flags:\"b\"})})?u(function(){var t=i(this);return\"/\".concat(t.source,\"/\",\"flags\"in t?t.flags:!o&&t instanceof RegExp?r.call(t):void 0)}):\"toString\"!=s.name&&u(function(){return s.call(this)})},function(t,e,n){\"use strict\";n(51)(\"trim\",function(t){return function(){return t(this,3)}})},function(t,e,n){for(var i=n(34),r=n(47),o=n(6),s=n(0),u=n(8),a=n(15),l=n(1),c=l(\"iterator\"),f=l(\"toStringTag\"),p=a.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=r(h),v=0;v<d.length;v++){var g,y=d[v],m=h[y],b=s[y],_=b&&b.prototype;if(_&&(_[c]||u(_,c,p),_[f]||u(_,f,y),a[y]=p,m))for(g in i)_[g]||o(_,g,i[g],!0)}},function(t,e){},function(t,e){t.exports=function(t,e,n,i,r,o){var s,u=t=t||{},a=typeof t.default;\"object\"!==a&&\"function\"!==a||(s=t,u=t.default);var l=\"function\"==typeof u?u.options:u;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),r&&(l._scopeId=r);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):i&&(c=i),c){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=c,l.render=function(t,e){return c.call(e),p(t,e)}):l.beforeCreate=p?[].concat(p,c):[c]}return{esModule:s,exports:u,options:l}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"multiselect\",class:{\"multiselect--active\":t.isOpen,\"multiselect--disabled\":t.disabled,\"multiselect--above\":t.isAbove},attrs:{tabindex:t.searchable?-1:t.tabindex},on:{focus:function(e){t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return\"button\"in e||!t._k(e.keyCode,\"down\",40,e.key,[\"Down\",\"ArrowDown\"])?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerForward()):null},function(e){return\"button\"in e||!t._k(e.keyCode,\"up\",38,e.key,[\"Up\",\"ArrowUp\"])?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerBackward()):null}],keypress:function(e){return\"button\"in e||!t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")||!t._k(e.keyCode,\"tab\",9,e.key,\"Tab\")?(e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null},keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"esc\",27,e.key,\"Escape\"))return null;t.deactivate()}}},[t._t(\"caret\",[n(\"div\",{staticClass:\"multiselect__select\",on:{mousedown:function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}}})],{toggle:t.toggle}),t._v(\" \"),t._t(\"clear\",null,{search:t.search}),t._v(\" \"),n(\"div\",{ref:\"tags\",staticClass:\"multiselect__tags\"},[t._t(\"selection\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.visibleValues.length>0,expression:\"visibleValues.length > 0\"}],staticClass:\"multiselect__tags-wrap\"},[t._l(t.visibleValues,function(e,i){return[t._t(\"tag\",[n(\"span\",{key:i,staticClass:\"multiselect__tag\"},[n(\"span\",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(\" \"),n(\"i\",{staticClass:\"multiselect__tag-icon\",attrs:{\"aria-hidden\":\"true\",tabindex:\"1\"},on:{keypress:function(n){if(!(\"button\"in n)&&t._k(n.keyCode,\"enter\",13,n.key,\"Enter\"))return null;n.preventDefault(),t.removeElement(e)},mousedown:function(n){n.preventDefault(),t.removeElement(e)}}})])],{option:e,search:t.search,remove:t.removeElement})]})],2),t._v(\" \"),t.internalValue&&t.internalValue.length>t.limit?[t._t(\"limit\",[n(\"strong\",{staticClass:\"multiselect__strong\",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})])]:t._e()],{search:t.search,remove:t.removeElement,values:t.visibleValues,isOpen:t.isOpen}),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect__loading\"}},[t._t(\"loading\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.loading,expression:\"loading\"}],staticClass:\"multiselect__spinner\"})])],2),t._v(\" \"),t.searchable?n(\"input\",{ref:\"search\",staticClass:\"multiselect__input\",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:\"text\",autocomplete:\"nope\",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex},domProps:{value:t.search},on:{input:function(e){t.updateSearch(e.target.value)},focus:function(e){e.preventDefault(),t.activate()},blur:function(e){e.preventDefault(),t.deactivate()},keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"esc\",27,e.key,\"Escape\"))return null;t.deactivate()},keydown:[function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"down\",40,e.key,[\"Down\",\"ArrowDown\"]))return null;e.preventDefault(),t.pointerForward()},function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"up\",38,e.key,[\"Up\",\"ArrowUp\"]))return null;e.preventDefault(),t.pointerBackward()},function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"delete\",[8,46],e.key,[\"Backspace\",\"Delete\"]))return null;e.stopPropagation(),t.removeLastElement()}],keypress:function(e){return\"button\"in e||!t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null}}}):t._e(),t._v(\" \"),t.isSingleLabelVisible?n(\"span\",{staticClass:\"multiselect__single\",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t(\"singleLabel\",[[t._v(t._s(t.currentOptionLabel))]],{option:t.singleValue})],2):t._e(),t._v(\" \"),t.isPlaceholderVisible?n(\"span\",{staticClass:\"multiselect__placeholder\",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t(\"placeholder\",[t._v(\"\\n \"+t._s(t.placeholder)+\"\\n \")])],2):t._e()],2),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect\"}},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isOpen,expression:\"isOpen\"}],ref:\"list\",staticClass:\"multiselect__content-wrapper\",style:{maxHeight:t.optimizedHeight+\"px\"},attrs:{tabindex:\"-1\"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n(\"ul\",{staticClass:\"multiselect__content\",style:t.contentStyle},[t._t(\"beforeList\"),t._v(\" \"),t.multiple&&t.max===t.internalValue.length?n(\"li\",[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"maxElements\",[t._v(\"Maximum of \"+t._s(t.max)+\" options selected. First remove a selected option to select another.\")])],2)]):t._e(),t._v(\" \"),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,function(e,i){return n(\"li\",{key:i,staticClass:\"multiselect__element\"},[e&&(e.$isLabel||e.$isDisabled)?t._e():n(\"span\",{staticClass:\"multiselect__option\",class:t.optionHighlight(i,e),attrs:{\"data-select\":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,\"data-selected\":t.selectedLabelText,\"data-deselect\":t.deselectLabelText},on:{click:function(n){n.stopPropagation(),t.select(e)},mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.pointerSet(i)}}},[t._t(\"option\",[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2),t._v(\" \"),e&&(e.$isLabel||e.$isDisabled)?n(\"span\",{staticClass:\"multiselect__option\",class:t.groupHighlight(i,e),attrs:{\"data-select\":t.groupSelect&&t.selectGroupLabelText,\"data-deselect\":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(i)},mousedown:function(n){n.preventDefault(),t.selectGroup(e)}}},[t._t(\"option\",[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2):t._e()])}):t._e(),t._v(\" \"),n(\"li\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:\"showNoResults && (filteredOptions.length === 0 && search && !loading)\"}]},[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"noResult\",[t._v(\"No elements found. Consider changing the search query.\")],{search:t.search})],2)]),t._v(\" \"),n(\"li\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showNoOptions&&0===t.options.length&&!t.search&&!t.loading,expression:\"showNoOptions && (options.length === 0 && !search && !loading)\"}]},[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"noOptions\",[t._v(\"List is empty.\")])],2)]),t._v(\" \"),t._t(\"afterList\")],2)])])],2)},r=[],o={render:i,staticRenderFns:r};e.a=o}])});","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","<template>\n\t<div id=\"updatenotification\" class=\"followupsection\">\n\t\t<div class=\"update\">\n\t\t\t<template v-if=\"isNewVersionAvailable\">\n\t\t\t\t<p v-if=\"versionIsEol\">\n\t\t\t\t\t<span class=\"warning\">\n\t\t\t\t\t\t<span class=\"icon icon-error-white\" />\n\t\t\t\t\t\t{{ t('updatenotification', 'The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.') }}\n\t\t\t\t\t</span>\n\t\t\t\t</p>\n\n\t\t\t\t<p>\n\t\t\t\t\t<span v-html=\"newVersionAvailableString\" /><br>\n\t\t\t\t\t<span v-if=\"!isListFetched\" class=\"icon icon-loading-small\" />\n\t\t\t\t\t<span v-html=\"statusText\" />\n\t\t\t\t</p>\n\n\t\t\t\t<template v-if=\"missingAppUpdates.length\">\n\t\t\t\t\t<h3 @click=\"toggleHideMissingUpdates\">\n\t\t\t\t\t\t{{ t('updatenotification', 'Apps missing updates') }}\n\t\t\t\t\t\t<span v-if=\"!hideMissingUpdates\" class=\"icon icon-triangle-n\" />\n\t\t\t\t\t\t<span v-if=\"hideMissingUpdates\" class=\"icon icon-triangle-s\" />\n\t\t\t\t\t</h3>\n\t\t\t\t\t<ul v-if=\"!hideMissingUpdates\" class=\"applist\">\n\t\t\t\t\t\t<li v-for=\"(app, index) in missingAppUpdates\" :key=\"index\">\n\t\t\t\t\t\t\t<a :href=\"'https://apps.nextcloud.com/apps/' + app.appId\" :title=\"t('settings', 'View in store')\">{{ app.appName }} ↗</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</template>\n\n\t\t\t\t<template v-if=\"availableAppUpdates.length\">\n\t\t\t\t\t<h3 @click=\"toggleHideAvailableUpdates\">\n\t\t\t\t\t\t{{ t('updatenotification', 'Apps with available updates') }}\n\t\t\t\t\t\t<span v-if=\"!hideAvailableUpdates\" class=\"icon icon-triangle-n\" />\n\t\t\t\t\t\t<span v-if=\"hideAvailableUpdates\" class=\"icon icon-triangle-s\" />\n\t\t\t\t\t</h3>\n\t\t\t\t\t<ul v-if=\"!hideAvailableUpdates\" class=\"applist\">\n\t\t\t\t\t\t<li v-for=\"(app, index) in availableAppUpdates\" :key=\"index\">\n\t\t\t\t\t\t\t<a :href=\"'https://apps.nextcloud.com/apps/' + app.appId\" :title=\"t('settings', 'View in store')\">{{ app.appName }} ↗</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</template>\n\n\t\t\t\t<div>\n\t\t\t\t\t<a v-if=\"updaterEnabled\"\n\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\tclass=\"button primary\"\n\t\t\t\t\t\t@click=\"clickUpdaterButton\">{{ t('updatenotification', 'Open updater') }}</a>\n\t\t\t\t\t<a v-if=\"downloadLink\"\n\t\t\t\t\t\t:href=\"downloadLink\"\n\t\t\t\t\t\tclass=\"button\"\n\t\t\t\t\t\t:class=\"{ hidden: !updaterEnabled }\">{{ t('updatenotification', 'Download now') }}</a>\n\t\t\t\t\t<div v-if=\"whatsNew\" class=\"whatsNew\">\n\t\t\t\t\t\t<div class=\"toggleWhatsNew\">\n\t\t\t\t\t\t\t<a v-click-outside=\"hideMenu\" class=\"button\" @click=\"toggleMenu\">{{ t('updatenotification', 'What\\'s new?') }}</a>\n\t\t\t\t\t\t\t<div class=\"popovermenu\" :class=\"{ 'menu-center': true, open: openedWhatsNew }\">\n\t\t\t\t\t\t\t\t<PopoverMenu :menu=\"whatsNew\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-else-if=\"!isUpdateChecked\">\n\t\t\t\t{{ t('updatenotification', 'The update check is not yet finished. Please refresh the page.') }}\n\t\t\t</template>\n\t\t\t<template v-else>\n\t\t\t\t{{ t('updatenotification', 'Your version is up to date.') }}\n\t\t\t\t<span v-tooltip.auto=\"lastCheckedOnString\" class=\"icon-info svg\" />\n\t\t\t</template>\n\n\t\t\t<template v-if=\"!isDefaultUpdateServerURL\">\n\t\t\t\t<p class=\"topMargin\">\n\t\t\t\t\t<em>{{ t('updatenotification', 'A non-default update server is in use to be checked for updates:') }} <code>{{ updateServerURL }}</code></em>\n\t\t\t\t</p>\n\t\t\t</template>\n\t\t</div>\n\n\t\t<h3 class=\"update-channel-selector\">\n\t\t\t{{ t('updatenotification', 'Update channel:') }}\n\t\t\t<div v-click-outside=\"closeUpdateChannelMenu\" class=\"update-menu\">\n\t\t\t\t<span class=\"icon-update-menu\" @click=\"toggleUpdateChannelMenu\">\n\t\t\t\t\t{{ localizedChannelName }}\n\t\t\t\t\t<span class=\"icon-triangle-s\" />\n\t\t\t\t</span>\n\t\t\t\t<div class=\"popovermenu menu menu-center\" :class=\"{ 'show-menu': openedUpdateChannelMenu}\">\n\t\t\t\t\t<PopoverMenu :menu=\"channelList\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</h3>\n\t\t<span id=\"channel_save_msg\" class=\"msg\" /><br>\n\t\t<p>\n\t\t\t<em>{{ t('updatenotification', 'You can always update to a newer version. But you can never downgrade to a more stable version.') }}</em><br>\n\t\t\t<em v-html=\"noteDelayedStableString\"></em>\n\t\t</p>\n\n\t\t<p id=\"oca_updatenotification_groups\">\n\t\t\t{{ t('updatenotification', 'Notify members of the following groups about available updates:') }}\n\t\t\t<Multiselect v-model=\"notifyGroups\"\n\t\t\t\t:options=\"availableGroups\"\n\t\t\t\t:multiple=\"true\"\n\t\t\t\tlabel=\"label\"\n\t\t\t\ttrack-by=\"value\"\n\t\t\t\t:tag-width=\"75\" /><br>\n\t\t\t<em v-if=\"currentChannel === 'daily' || currentChannel === 'git'\">{{ t('updatenotification', 'Only notification for app updates are available.') }}</em>\n\t\t\t<em v-if=\"currentChannel === 'daily'\">{{ t('updatenotification', 'The selected update channel makes dedicated notifications for the server obsolete.') }}</em>\n\t\t\t<em v-if=\"currentChannel === 'git'\">{{ t('updatenotification', 'The selected update channel does not support updates of the server.') }}</em>\n\t\t</p>\n\t</div>\n</template>\n\n<script>\nimport { generateUrl, getRootUrl, generateOcsUrl } from '@nextcloud/router'\nimport PopoverMenu from '@nextcloud/vue/dist/Components/PopoverMenu'\nimport Multiselect from '@nextcloud/vue/dist/Components/Multiselect'\nimport { VTooltip } from 'v-tooltip'\nimport ClickOutside from 'vue-click-outside'\n\nVTooltip.options.defaultHtml = false\n\nexport default {\n\tname: 'UpdateNotification',\n\tcomponents: {\n\t\tMultiselect,\n\t\tPopoverMenu,\n\t},\n\tdirectives: {\n\t\tClickOutside,\n\t\ttooltip: VTooltip,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnewVersionString: '',\n\t\t\tlastCheckedDate: '',\n\t\t\tisUpdateChecked: false,\n\t\t\tupdaterEnabled: true,\n\t\t\tversionIsEol: false,\n\t\t\tdownloadLink: '',\n\t\t\tisNewVersionAvailable: false,\n\t\t\thasValidSubscription: false,\n\t\t\tupdateServerURL: '',\n\t\t\tchangelogURL: '',\n\t\t\twhatsNewData: [],\n\t\t\tcurrentChannel: '',\n\t\t\tchannels: [],\n\t\t\tnotifyGroups: '',\n\t\t\tavailableGroups: [],\n\t\t\tisDefaultUpdateServerURL: true,\n\t\t\tenableChangeWatcher: false,\n\n\t\t\tavailableAppUpdates: [],\n\t\t\tmissingAppUpdates: [],\n\t\t\tappStoreFailed: false,\n\t\t\tappStoreDisabled: false,\n\t\t\tisListFetched: false,\n\t\t\thideMissingUpdates: false,\n\t\t\thideAvailableUpdates: true,\n\t\t\topenedWhatsNew: false,\n\t\t\topenedUpdateChannelMenu: false,\n\t\t}\n\t},\n\n\t_$el: null,\n\t_$notifyGroups: null,\n\n\tcomputed: {\n\t\tnewVersionAvailableString() {\n\t\t\treturn t('updatenotification', 'A new version is available: <strong>{newVersionString}</strong>', {\n\t\t\t\tnewVersionString: this.newVersionString,\n\t\t\t})\n\t\t},\n\n\t\tnoteDelayedStableString() {\n\t\t\treturn t('updatenotification', 'Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}').replace('{link}', '<a href=\"https://nextcloud.com/release-channels/\">https://nextcloud.com/release-channels/</a>')\n\t\t},\n\n\t\tlastCheckedOnString() {\n\t\t\treturn t('updatenotification', 'Checked on {lastCheckedDate}', {\n\t\t\t\tlastCheckedDate: this.lastCheckedDate,\n\t\t\t})\n\t\t},\n\n\t\tstatusText() {\n\t\t\tif (!this.isListFetched) {\n\t\t\t\treturn t('updatenotification', 'Checking apps for compatible updates')\n\t\t\t}\n\n\t\t\tif (this.appStoreDisabled) {\n\t\t\t\treturn t('updatenotification', 'Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.')\n\t\t\t}\n\n\t\t\tif (this.appStoreFailed) {\n\t\t\t\treturn t('updatenotification', 'Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore.')\n\t\t\t}\n\n\t\t\treturn this.missingAppUpdates.length === 0\n\t\t\t\t? t('updatenotification', '<strong>All</strong> apps have an update for this version available', this)\n\t\t\t\t: n('updatenotification', '<strong>%n</strong> app has no update for this version available', '<strong>%n</strong> apps have no update for this version available', this.missingAppUpdates.length)\n\t\t},\n\n\t\twhatsNew() {\n\t\t\tif (this.whatsNewData.length === 0) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\tconst whatsNew = []\n\t\t\tfor (const i in this.whatsNewData) {\n\t\t\t\twhatsNew[i] = { icon: 'icon-checkmark', longtext: this.whatsNewData[i] }\n\t\t\t}\n\t\t\tif (this.changelogURL) {\n\t\t\t\twhatsNew.push({\n\t\t\t\t\thref: this.changelogURL,\n\t\t\t\t\ttext: t('updatenotification', 'View changelog'),\n\t\t\t\t\ticon: 'icon-link',\n\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\taction: '',\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn whatsNew\n\t\t},\n\n\t\tchannelList() {\n\t\t\tconst channelList = []\n\n\t\t\tchannelList.push({\n\t\t\t\ttext: t('updatenotification', 'Enterprise'),\n\t\t\t\tlongtext: t('updatenotification', 'For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.'),\n\t\t\t\ticon: 'icon-star',\n\t\t\t\tactive: this.currentChannel === 'enterprise',\n\t\t\t\tdisabled: !this.hasValidSubscription,\n\t\t\t\taction: this.changeReleaseChannelToEnterprise,\n\t\t\t})\n\n\t\t\tchannelList.push({\n\t\t\t\ttext: t('updatenotification', 'Stable'),\n\t\t\t\tlongtext: t('updatenotification', 'The most recent stable version. It is suited for regular use and will always update to the latest major version.'),\n\t\t\t\ticon: 'icon-checkmark',\n\t\t\t\tactive: this.currentChannel === 'stable',\n\t\t\t\taction: this.changeReleaseChannelToStable,\n\t\t\t})\n\n\t\t\tchannelList.push({\n\t\t\t\ttext: t('updatenotification', 'Beta'),\n\t\t\t\tlongtext: t('updatenotification', 'A pre-release version only for testing new features, not for production environments.'),\n\t\t\t\ticon: 'icon-category-customization',\n\t\t\t\tactive: this.currentChannel === 'beta',\n\t\t\t\taction: this.changeReleaseChannelToBeta,\n\t\t\t})\n\n\t\t\tif (this.isNonDefaultChannel) {\n\t\t\t\tchannelList.push({\n\t\t\t\t\ttext: this.currentChannel,\n\t\t\t\t\ticon: 'icon-rename',\n\t\t\t\t\tactive: true,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn channelList\n\t\t},\n\n\t\tisNonDefaultChannel() {\n\t\t\treturn this.currentChannel !== 'enterprise' && this.currentChannel !== 'stable' && this.currentChannel !== 'beta'\n\t\t},\n\n\t\tlocalizedChannelName() {\n\t\t\tswitch (this.currentChannel) {\n\t\t\tcase 'enterprise':\n\t\t\t\treturn t('updatenotification', 'Enterprise')\n\t\t\tcase 'stable':\n\t\t\t\treturn t('updatenotification', 'Stable')\n\t\t\tcase 'beta':\n\t\t\t\treturn t('updatenotification', 'Beta')\n\t\t\tdefault:\n\t\t\t\treturn this.currentChannel\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tnotifyGroups(selectedOptions) {\n\t\t\tif (!this.enableChangeWatcher) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst selectedGroups = []\n\t\t\t_.each(selectedOptions, function(group) {\n\t\t\t\tselectedGroups.push(group.value)\n\t\t\t})\n\n\t\t\tOCP.AppConfig.setValue('updatenotification', 'notify_groups', JSON.stringify(selectedGroups))\n\t\t},\n\t\tisNewVersionAvailable() {\n\t\t\tif (!this.isNewVersionAvailable) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t$.ajax({\n\t\t\t\turl: generateOcsUrl('apps/updatenotification/api/v1/applist', 2) + this.newVersion,\n\t\t\t\ttype: 'GET',\n\t\t\t\tbeforeSend(request) {\n\t\t\t\t\trequest.setRequestHeader('Accept', 'application/json')\n\t\t\t\t},\n\t\t\t\tsuccess: function(response) {\n\t\t\t\t\tthis.availableAppUpdates = response.ocs.data.available\n\t\t\t\t\tthis.missingAppUpdates = response.ocs.data.missing\n\t\t\t\t\tthis.isListFetched = true\n\t\t\t\t\tthis.appStoreFailed = false\n\t\t\t\t}.bind(this),\n\t\t\t\terror: function(xhr) {\n\t\t\t\t\tthis.availableAppUpdates = []\n\t\t\t\t\tthis.missingAppUpdates = []\n\t\t\t\t\tthis.appStoreDisabled = xhr.responseJSON.ocs.data.appstore_disabled\n\t\t\t\t\tthis.isListFetched = true\n\t\t\t\t\tthis.appStoreFailed = true\n\t\t\t\t}.bind(this),\n\t\t\t})\n\t\t},\n\t},\n\tbeforeMount() {\n\t\t// Parse server data\n\t\tconst data = JSON.parse($('#updatenotification').attr('data-json'))\n\n\t\tthis.newVersion = data.newVersion\n\t\tthis.newVersionString = data.newVersionString\n\t\tthis.lastCheckedDate = data.lastChecked\n\t\tthis.isUpdateChecked = data.isUpdateChecked\n\t\tthis.updaterEnabled = data.updaterEnabled\n\t\tthis.downloadLink = data.downloadLink\n\t\tthis.isNewVersionAvailable = data.isNewVersionAvailable\n\t\tthis.updateServerURL = data.updateServerURL\n\t\tthis.currentChannel = data.currentChannel\n\t\tthis.channels = data.channels\n\t\tthis.notifyGroups = data.notifyGroups\n\t\tthis.isDefaultUpdateServerURL = data.isDefaultUpdateServerURL\n\t\tthis.versionIsEol = data.versionIsEol\n\t\tthis.hasValidSubscription = data.hasValidSubscription\n\t\tif (data.changes && data.changes.changelogURL) {\n\t\t\tthis.changelogURL = data.changes.changelogURL\n\t\t}\n\t\tif (data.changes && data.changes.whatsNew) {\n\t\t\tif (data.changes.whatsNew.admin) {\n\t\t\t\tthis.whatsNewData = this.whatsNewData.concat(data.changes.whatsNew.admin)\n\t\t\t}\n\t\t\tthis.whatsNewData = this.whatsNewData.concat(data.changes.whatsNew.regular)\n\t\t}\n\t},\n\tmounted() {\n\t\tthis._$el = $(this.$el)\n\t\tthis._$notifyGroups = this._$el.find('#oca_updatenotification_groups_list')\n\t\tthis._$notifyGroups.on('change', function() {\n\t\t\tthis.$emit('input')\n\t\t}.bind(this))\n\n\t\t$.ajax({\n\t\t\turl: generateOcsUrl('cloud', 2) + '/groups',\n\t\t\tdataType: 'json',\n\t\t\tsuccess: function(data) {\n\t\t\t\tconst results = []\n\t\t\t\t$.each(data.ocs.data.groups, function(i, group) {\n\t\t\t\t\tresults.push({ value: group, label: group })\n\t\t\t\t})\n\n\t\t\t\tthis.availableGroups = results\n\t\t\t\tthis.enableChangeWatcher = true\n\t\t\t}.bind(this),\n\t\t})\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t\t * Creates a new authentication token and loads the updater URL\n\t\t\t */\n\t\tclickUpdaterButton() {\n\t\t\t$.ajax({\n\t\t\t\turl: generateUrl('/apps/updatenotification/credentials'),\n\t\t\t}).success(function(token) {\n\t\t\t\t// create a form to send a proper post request to the updater\n\t\t\t\tconst form = document.createElement('form')\n\t\t\t\tform.setAttribute('method', 'post')\n\t\t\t\tform.setAttribute('action', getRootUrl() + '/updater/')\n\n\t\t\t\tconst hiddenField = document.createElement('input')\n\t\t\t\thiddenField.setAttribute('type', 'hidden')\n\t\t\t\thiddenField.setAttribute('name', 'updater-secret-input')\n\t\t\t\thiddenField.setAttribute('value', token)\n\n\t\t\t\tform.appendChild(hiddenField)\n\n\t\t\t\tdocument.body.appendChild(form)\n\t\t\t\tform.submit()\n\t\t\t})\n\t\t},\n\t\tchangeReleaseChannelToEnterprise() {\n\t\t\tthis.changeReleaseChannel('enterprise')\n\t\t},\n\t\tchangeReleaseChannelToStable() {\n\t\t\tthis.changeReleaseChannel('stable')\n\t\t},\n\t\tchangeReleaseChannelToBeta() {\n\t\t\tthis.changeReleaseChannel('beta')\n\t\t},\n\t\tchangeReleaseChannel(channel) {\n\t\t\tthis.currentChannel = channel\n\n\t\t\t$.ajax({\n\t\t\t\turl: generateUrl('/apps/updatenotification/channel'),\n\t\t\t\ttype: 'POST',\n\t\t\t\tdata: {\n\t\t\t\t\tchannel: this.currentChannel,\n\t\t\t\t},\n\t\t\t\tsuccess(data) {\n\t\t\t\t\tOC.msg.finishedAction('#channel_save_msg', data)\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tthis.openedUpdateChannelMenu = false\n\t\t},\n\t\ttoggleUpdateChannelMenu() {\n\t\t\tthis.openedUpdateChannelMenu = !this.openedUpdateChannelMenu\n\t\t},\n\t\ttoggleHideMissingUpdates() {\n\t\t\tthis.hideMissingUpdates = !this.hideMissingUpdates\n\t\t},\n\t\ttoggleHideAvailableUpdates() {\n\t\t\tthis.hideAvailableUpdates = !this.hideAvailableUpdates\n\t\t},\n\t\ttoggleMenu() {\n\t\t\tthis.openedWhatsNew = !this.openedWhatsNew\n\t\t},\n\t\tcloseUpdateChannelMenu() {\n\t\t\tthis.openedUpdateChannelMenu = false\n\t\t},\n\t\thideMenu() {\n\t\t\tthis.openedWhatsNew = false\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\t#updatenotification {\n\t\tmargin-top: -25px;\n\t\tmargin-bottom: 200px;\n\t\tdiv.update,\n\t\tp:not(.inlineblock) {\n\t\t\tmargin-bottom: 25px;\n\t\t}\n\t\th2.inlineblock {\n\t\t\tmargin-top: 25px;\n\t\t}\n\t\th3 {\n\t\t\tcursor: pointer;\n\t\t\t.icon {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t\t&:first-of-type {\n\t\t\t\tmargin-top: 0;\n\t\t\t}\n\t\t\t&.update-channel-selector {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tcursor: inherit;\n\t\t\t}\n\t\t}\n\t\t.icon {\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-bottom: -3px;\n\t\t}\n\t\t.icon-triangle-s, .icon-triangle-n {\n\t\t\topacity: 0.5;\n\t\t}\n\t\t.whatsNew {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t\t.toggleWhatsNew {\n\t\t\tposition: relative;\n\t\t}\n\t\t.popovermenu {\n\t\t\tp {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\tmargin-top: 5px;\n\t\t\twidth: 300px;\n\t\t}\n\t\t.applist {\n\t\t\tmargin-bottom: 25px;\n\t\t}\n\n\t\t.update-menu {\n\t\t\tposition: relative;\n\t\t\tcursor: pointer;\n\t\t\tmargin-left: 3px;\n\t\t\tdisplay: inline-block;\n\t\t\t.icon-update-menu {\n\t\t\t\tcursor: inherit;\n\t\t\t\t.icon-triangle-s {\n\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\tvertical-align: middle;\n\t\t\t\t\tcursor: inherit;\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.popovermenu {\n\t\t\t\tdisplay: none;\n\t\t\t\ttop: 28px;\n\t\t\t\t&.show-menu {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n</style>\n<style lang=\"scss\">\n\t/* override needed to make menu wider */\n\t#updatenotification .popovermenu {\n\t\tp {\n\t\t\tmargin-top: 5px;\n\t\t\twidth: 100%;\n\t\t}\n\t\tmargin-top: 5px;\n\t\twidth: 300px;\n\t}\n\t/* override needed to replace yellow hover state with a dark one */\n\t#updatenotification .update-menu .icon-star:hover,\n\t#updatenotification .update-menu .icon-star:focus {\n\t\tbackground-image: var(--icon-star-000);\n\t}\n\t#updatenotification .topMargin {\n\t\tmargin-top: 15px;\n\t}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=script&lang=js&\"","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=0&id=b45d9efe&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=1&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./UpdateNotification.vue?vue&type=template&id=b45d9efe&scoped=true&\"\nimport script from \"./UpdateNotification.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateNotification.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UpdateNotification.vue?vue&type=style&index=0&id=b45d9efe&lang=scss&scoped=true&\"\nimport style1 from \"./UpdateNotification.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b45d9efe\",\n null\n \n)\n\nexport default component.exports","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"followupsection\",attrs:{\"id\":\"updatenotification\"}},[_c('div',{staticClass:\"update\"},[(_vm.isNewVersionAvailable)?[(_vm.versionIsEol)?_c('p',[_c('span',{staticClass:\"warning\"},[_c('span',{staticClass:\"icon icon-error-white\"}),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.'))+\"\\n\\t\\t\\t\\t\")])]):_vm._e(),_vm._v(\" \"),_c('p',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.newVersionAvailableString)}}),_c('br'),_vm._v(\" \"),(!_vm.isListFetched)?_c('span',{staticClass:\"icon icon-loading-small\"}):_vm._e(),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.statusText)}})]),_vm._v(\" \"),(_vm.missingAppUpdates.length)?[_c('h3',{on:{\"click\":_vm.toggleHideMissingUpdates}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Apps missing updates'))+\"\\n\\t\\t\\t\\t\\t\"),(!_vm.hideMissingUpdates)?_c('span',{staticClass:\"icon icon-triangle-n\"}):_vm._e(),_vm._v(\" \"),(_vm.hideMissingUpdates)?_c('span',{staticClass:\"icon icon-triangle-s\"}):_vm._e()]),_vm._v(\" \"),(!_vm.hideMissingUpdates)?_c('ul',{staticClass:\"applist\"},_vm._l((_vm.missingAppUpdates),function(app,index){return _c('li',{key:index},[_c('a',{attrs:{\"href\":'https://apps.nextcloud.com/apps/' + app.appId,\"title\":_vm.t('settings', 'View in store')}},[_vm._v(_vm._s(app.appName)+\" ↗\")])])}),0):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.availableAppUpdates.length)?[_c('h3',{on:{\"click\":_vm.toggleHideAvailableUpdates}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Apps with available updates'))+\"\\n\\t\\t\\t\\t\\t\"),(!_vm.hideAvailableUpdates)?_c('span',{staticClass:\"icon icon-triangle-n\"}):_vm._e(),_vm._v(\" \"),(_vm.hideAvailableUpdates)?_c('span',{staticClass:\"icon icon-triangle-s\"}):_vm._e()]),_vm._v(\" \"),(!_vm.hideAvailableUpdates)?_c('ul',{staticClass:\"applist\"},_vm._l((_vm.availableAppUpdates),function(app,index){return _c('li',{key:index},[_c('a',{attrs:{\"href\":'https://apps.nextcloud.com/apps/' + app.appId,\"title\":_vm.t('settings', 'View in store')}},[_vm._v(_vm._s(app.appName)+\" ↗\")])])}),0):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('div',[(_vm.updaterEnabled)?_c('a',{staticClass:\"button primary\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.clickUpdaterButton}},[_vm._v(_vm._s(_vm.t('updatenotification', 'Open updater')))]):_vm._e(),_vm._v(\" \"),(_vm.downloadLink)?_c('a',{staticClass:\"button\",class:{ hidden: !_vm.updaterEnabled },attrs:{\"href\":_vm.downloadLink}},[_vm._v(_vm._s(_vm.t('updatenotification', 'Download now')))]):_vm._e(),_vm._v(\" \"),(_vm.whatsNew)?_c('div',{staticClass:\"whatsNew\"},[_c('div',{staticClass:\"toggleWhatsNew\"},[_c('a',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.hideMenu),expression:\"hideMenu\"}],staticClass:\"button\",on:{\"click\":_vm.toggleMenu}},[_vm._v(_vm._s(_vm.t('updatenotification', 'What\\'s new?')))]),_vm._v(\" \"),_c('div',{staticClass:\"popovermenu\",class:{ 'menu-center': true, open: _vm.openedWhatsNew }},[_c('PopoverMenu',{attrs:{\"menu\":_vm.whatsNew}})],1)])]):_vm._e()])]:(!_vm.isUpdateChecked)?[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'The update check is not yet finished. Please refresh the page.'))+\"\\n\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Your version is up to date.'))+\"\\n\\t\\t\\t\"),_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.lastCheckedOnString),expression:\"lastCheckedOnString\",modifiers:{\"auto\":true}}],staticClass:\"icon-info svg\"})],_vm._v(\" \"),(!_vm.isDefaultUpdateServerURL)?[_c('p',{staticClass:\"topMargin\"},[_c('em',[_vm._v(_vm._s(_vm.t('updatenotification', 'A non-default update server is in use to be checked for updates:'))+\" \"),_c('code',[_vm._v(_vm._s(_vm.updateServerURL))])])])]:_vm._e()],2),_vm._v(\" \"),_c('h3',{staticClass:\"update-channel-selector\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Update channel:'))+\"\\n\\t\\t\"),_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeUpdateChannelMenu),expression:\"closeUpdateChannelMenu\"}],staticClass:\"update-menu\"},[_c('span',{staticClass:\"icon-update-menu\",on:{\"click\":_vm.toggleUpdateChannelMenu}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.localizedChannelName)+\"\\n\\t\\t\\t\\t\"),_c('span',{staticClass:\"icon-triangle-s\"})]),_vm._v(\" \"),_c('div',{staticClass:\"popovermenu menu menu-center\",class:{ 'show-menu': _vm.openedUpdateChannelMenu}},[_c('PopoverMenu',{attrs:{\"menu\":_vm.channelList}})],1)])]),_vm._v(\" \"),_c('span',{staticClass:\"msg\",attrs:{\"id\":\"channel_save_msg\"}}),_c('br'),_vm._v(\" \"),_c('p',[_c('em',[_vm._v(_vm._s(_vm.t('updatenotification', 'You can always update to a newer version. But you can never downgrade to a more stable version.')))]),_c('br'),_vm._v(\" \"),_c('em',{domProps:{\"innerHTML\":_vm._s(_vm.noteDelayedStableString)}})]),_vm._v(\" \"),_c('p',{attrs:{\"id\":\"oca_updatenotification_groups\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Notify members of the following groups about available updates:'))+\"\\n\\t\\t\"),_c('Multiselect',{attrs:{\"options\":_vm.availableGroups,\"multiple\":true,\"label\":\"label\",\"track-by\":\"value\",\"tag-width\":75},model:{value:(_vm.notifyGroups),callback:function ($$v) {_vm.notifyGroups=$$v},expression:\"notifyGroups\"}}),_c('br'),_vm._v(\" \"),(_vm.currentChannel === 'daily' || _vm.currentChannel === 'git')?_c('em',[_vm._v(_vm._s(_vm.t('updatenotification', 'Only notification for app updates are available.')))]):_vm._e(),_vm._v(\" \"),(_vm.currentChannel === 'daily')?_c('em',[_vm._v(_vm._s(_vm.t('updatenotification', 'The selected update channel makes dedicated notifications for the server obsolete.')))]):_vm._e(),_vm._v(\" \"),(_vm.currentChannel === 'git')?_c('em',[_vm._v(_vm._s(_vm.t('updatenotification', 'The selected update channel does not support updates of the server.')))]):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport Root from './components/UpdateNotification'\n\nVue.mixin({\n\tmethods: {\n\t\tt(app, text, vars, count, options) {\n\t\t\treturn OC.L10N.translate(app, text, vars, count, options)\n\t\t},\n\t\tn(app, textSingular, textPlural, count, vars, options) {\n\t\t\treturn OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options)\n\t\t},\n\t},\n})\n\n// eslint-disable-next-line no-new\nnew Vue({\n\tel: '#updatenotification',\n\trender: h => h(Root),\n})\n"],"sourceRoot":""} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/af.js b/apps/updatenotification/l10n/af.js
deleted file mode 100644
index 3bd4b3c5570..00000000000
--- a/apps/updatenotification/l10n/af.js
+++ /dev/null
@@ -1,25 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} is beskikbaar. Kry meer inligting oor hoe om by te werk.",
- "Update notifications" : "Werk kennisgewings by",
- "Channel updated" : "Kanaal bygewerk",
- "The update server could not be reached since %d days to check for new updates." : "Die bywerkingsbediener kan al vir %d dae nie bereik word om nuwe bywerkings te soek nie.",
- "Please check the Nextcloud and server log files for errors." : "Gaan die Nextcloud- en bedienerloglêers na vir foute.",
- "Update to %1$s is available." : "Bywerking vir %1$s is beskikbaar.",
- "Update for %1$s to version %2$s is available." : "Bywerking vir %1$s na weergawe %2$s is beskikbaar.",
- "Update for {app} to version %s is available." : "Bywerking vir {app} na weergawe %s is beskikbaar.",
- "Open updater" : "Open bywerker",
- "Your version is up to date." : "U weergawe is op datum.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "U kan altyd na ’n nuwer weergawe / eksperimentele kanaal bywerk. U kan egter nooit na ’n stabieler kanaal afgradeer nie.",
- "Notify members of the following groups about available updates:" : "Stel lede van die volgende groepe in kennis van beskikbare bywerkings:",
- "Only notification for app updates are available." : "Slegs kennisgewing vir toepbywerking is beskikbaar.",
- "The selected update channel does not support updates of the server." : "Die gekose bywerkkanaal ondersteun nie bedienerbywerkings nie.",
- "Could not start updater, please try the manual update" : "Bywerker kon nie begin nie, probeer handmatig bywerk",
- "A new version is available: %s" : "’n nuwe weergawe is beskikbaar: %s",
- "Download now" : "Laai nou af",
- "Checked on %s" : "Gekyk op %s",
- "Update channel:" : "Werk kanaal by:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Die gekose bywerkingskanaal maak toegewyde bedienerkennisgewings oorbodig."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/af.json b/apps/updatenotification/l10n/af.json
deleted file mode 100644
index cd927925168..00000000000
--- a/apps/updatenotification/l10n/af.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} is beskikbaar. Kry meer inligting oor hoe om by te werk.",
- "Update notifications" : "Werk kennisgewings by",
- "Channel updated" : "Kanaal bygewerk",
- "The update server could not be reached since %d days to check for new updates." : "Die bywerkingsbediener kan al vir %d dae nie bereik word om nuwe bywerkings te soek nie.",
- "Please check the Nextcloud and server log files for errors." : "Gaan die Nextcloud- en bedienerloglêers na vir foute.",
- "Update to %1$s is available." : "Bywerking vir %1$s is beskikbaar.",
- "Update for %1$s to version %2$s is available." : "Bywerking vir %1$s na weergawe %2$s is beskikbaar.",
- "Update for {app} to version %s is available." : "Bywerking vir {app} na weergawe %s is beskikbaar.",
- "Open updater" : "Open bywerker",
- "Your version is up to date." : "U weergawe is op datum.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "U kan altyd na ’n nuwer weergawe / eksperimentele kanaal bywerk. U kan egter nooit na ’n stabieler kanaal afgradeer nie.",
- "Notify members of the following groups about available updates:" : "Stel lede van die volgende groepe in kennis van beskikbare bywerkings:",
- "Only notification for app updates are available." : "Slegs kennisgewing vir toepbywerking is beskikbaar.",
- "The selected update channel does not support updates of the server." : "Die gekose bywerkkanaal ondersteun nie bedienerbywerkings nie.",
- "Could not start updater, please try the manual update" : "Bywerker kon nie begin nie, probeer handmatig bywerk",
- "A new version is available: %s" : "’n nuwe weergawe is beskikbaar: %s",
- "Download now" : "Laai nou af",
- "Checked on %s" : "Gekyk op %s",
- "Update channel:" : "Werk kanaal by:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Die gekose bywerkingskanaal maak toegewyde bedienerkennisgewings oorbodig."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ar.js b/apps/updatenotification/l10n/ar.js
index 2a6c90a7339..a70010812f9 100644
--- a/apps/updatenotification/l10n/ar.js
+++ b/apps/updatenotification/l10n/ar.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} متوفر. أحصل على معلومات كيفية التحديث.",
- "Channel updated" : "حُدثت القناة",
+ "Channel updated" : "قناة التحديث",
+ "Web updater is disabled" : "التحديث من خلال الويب معطل",
+ "App updated" : "تمّ تحديث التطبيق",
+ "See what's new" : "إطَّلِع على الجديد",
+ "{app} updated to version {version}" : "تمّ تحديث التطبيق {app} إلى الإصدار {version}",
"Update notifications" : "إشعارات التحديث",
- "The update server could not be reached since %d days to check for new updates." : "تعذر الوصول إلى خادم التحديث منذ %d أيام للتحقق من وجود تحديثات جديدة.",
- "Please check the Nextcloud and server log files for errors." : "يرجى التحقق من Nextcloud وملفات تسجيل الخادم بحثًا عن الأخطاء.",
- "Update to %1$s is available." : "التحديث إلى %1$s متوفر.",
- "Update for %1$s to version %2$s is available." : "التحديث من النسخة %1$s إلى %2$s متوفر.",
+ "The update server could not be reached since %d days to check for new updates." : "تعذر الوصول إلى خادم التحديث للتحقق من وجود تحديثات جديدة منذ %d أيام.",
+ "Please check the Nextcloud and server log files for errors." : "يرجى التحقق من نكست كلاود و سجل أنشطة الخادم log بحثًا عن الأخطاء.",
+ "Update to {serverAndVersion} is available." : "تحديث الـ {serverAndVersion} متوفّر.",
"Update for {app} to version %s is available." : "التحديث ل {app} نسخة رقم %s متوفر.",
"Update notification" : "إشعار التحديث",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "يعرض إشعارات التحديث لـ Nextcloud ويوفر SSO للمُحدِّث.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "يعرض إشعارات التحديث لنكست كلاود، وتحديثات التطبيقات، و يوفر تسجيل الدخول الموحّد SSO للمُحدِّث.",
+ "Give feedback" : "سجِّل انطباعك",
+ "Get started" : "البدء...",
+ "No changelog available" : "لا يوجد سجل بالتغييرات",
+ "What's new in {app} {version}" : "ما هو الجديد في {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "توجد نسخة جديدة: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "لاحظ أنه بعد كل إصدار جديد، لا يظهر التحديث إلا بعد الإصدار الثانوي الأول أو الأحدث. نحن نطرح إصدارات جديدة موزعة على مدار الوقت، و أحيانًا نتخطى إصدارًا عند اكتشاف مشكلات فيه. تعرّف على المزيد حول التحديثات وقنوات الإصدار على {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "تمّ الفحص في {lastCheckedDate} - إفتَح سجل التغيير",
+ "Checking apps for compatible versions" : "فحص التطبيقات من ناحية توافر أي إصدارات متوافقة",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "الرجاء التأكد أن ملف الconfig.php الخاص بك لا يعين قيمة <samp>appstoreenabled</samp> إلى false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "لم يُمكن الاتصال مع متجر التطبيقات App Store أو لم يتم إرجاع أي تحديثات. إبحث يدويّاً عن التحديثات أو تأكّد من أن الخادم الخاص بك متصل بالإنترنت و يستطيع الاتصال بالمتجر.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>كل </strong>التطبيقات لها نسخ متوفقة مع نسخة نكست كلاود هذه.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong>تطبيق ليس له إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح."],
+ "Enterprise" : "المؤسسة",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "لاستخدام المؤسسات. يوفر دائمًا أحدث مستوى من التصحيح ، ولكنه لن يتم تحديثه إلى الإصدار الرئيسي التالي على الفور. يحدث هذا التحديث بمجرد أن تقوم شركة Nextcloud GmbH بإجراء مزيد من الصلابة والاختبار لعمليات النشر واسعة النطاق والمهمة. هذه القناة متاحة فقط للعملاء وتوفر حزمة Nextcloud للمؤسسة.",
+ "Stable" : "مستقر",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "أحدث نسخة مستقرة. مناسبه للاستخدام المنتظم وسيتم تحديثه دائمًا إلى أحدث إصدار رئيسي.",
+ "Beta" : "تجريبي",
+ "A pre-release version only for testing new features, not for production environments." : "نسخة تجريبية فقط لاختبار الميزات الجديدة ، وليس لبيئات الإنتاجية.",
+ "Update" : "تحديث",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "لم يعد الإصدار الذي تقوم بتشغيله قيد الصيانة. يرجى التأكد من التحديث إلى إصدار مدعوم في أقرب وقت ممكن.",
- "Apps missing updates" : "التطبيقات تفقد تحديثات",
+ "Apps missing compatible version" : "تفتقد التطبيقات إلى إصدار متوافق",
"View in store" : "العرض على المتجر",
- "Apps with available updates" : "يتوفر تحديثات للتطبيقات",
+ "Apps with compatible version" : "تطبيقات بإصدار متوافق",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "يرجى ملاحظة أنه لا يوصى باستخدام أداة تحديث الويب مع أكثر من 100 حساب! الرجاء استخدام الأمر السطري للتحديث command line updater بدلاً من ذلك!",
"Open updater" : "فتح المحدِّث",
"Download now" : "حمل الآن",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "مُحدِّث الوِب Web updater تمّ تعطيله. رجاءً، استعمل للتحديث الأمر السطري updater أو آلية تحديث مناسبة لطريقتك في التثبيت (مثل Docker pull).",
"What's new?" : "مالجديد؟",
+ "View changelog" : "اعرض سجل التغييرات",
"The update check is not yet finished. Please refresh the page." : "التحقق من التحديث لم ينته بعد. يرجى تحديث الصفحة.",
"Your version is up to date." : "النسخة لديك هي الأحدث.",
"A non-default update server is in use to be checked for updates:" : "يتم استخدام خادم تحديث غير افتراضي للتحقق من وجود تحديثات:",
- "Update channel:" : "قناة التحديث:",
+ "Update channel" : "قناة التحديث",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "يؤثر تغيير قناة التحديث أيضًا على صفحة إدارة التطبيقات. على سبيل المثال بعد التبديل إلى القناة التجريبية، سيتم تقديم تحديثات التطبيق التجريبي لك في صفحة إدارة التطبيقات.",
+ "Current update channel:" : "قناة التحديث الحالية:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "يمكنك دائمًا التحديث إلى إصدار أحدث. لكن لا يمكنك الرجوع إلى إصدار أكثر استقرارًا.",
"Notify members of the following groups about available updates:" : "إشعار أعضاء المجموعات التالية بتوفر التحديثات:",
- "Only notification for app updates are available." : "يتوفر إشعار فقط عن تحديثات التطبيق.",
+ "No groups" : "لا توجد مجموعات",
+ "Only notifications for app updates are available." : "توجد فقط إشعارات حول تحديثات التطبيقات",
"The selected update channel makes dedicated notifications for the server obsolete." : "قناة التحديث المحددة تجعل الإشعارات المخصصة للخادم قديمة.",
"The selected update channel does not support updates of the server." : "قناة التحديث المحددة لا تدعم تحديثات الخادم.",
- "A new version is available: <strong>{newVersionString}</strong>" : "توجد نسخة جديدة: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "فحص في {lastCheckedDate}",
- "Checking apps for compatible updates" : "التحقق من التطبيقات للحصول على تحديثات متوافقة",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "الرجاء التأكد أن ملف الconfig.php الخاص بك لا يعين قيمة <samp>appstoreenabled</samp> إلى false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "تعذر الاتصال بمتجر التطبيقات أو أن متجر التطبيقات لم يُرجع أي تحديثات على الإطلاق. ابحث يدويًا عن التحديثات أو تأكد من وصول الخادم إلى الإنترنت ويمكنه الاتصال بمتجر التطبيقات.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>جميع</strong> التطبيقات لديها تحديث لهذا الإصدار",
- "View changelog" : "اعرض سجل التغييرات",
- "Enterprise" : "المؤسسة",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "لاستخدام المؤسسات. يوفر دائمًا أحدث مستوى من التصحيح ، ولكنه لن يتم تحديثه إلى الإصدار الرئيسي التالي على الفور. يحدث هذا التحديث بمجرد أن تقوم شركة Nextcloud GmbH بإجراء مزيد من الصلابة والاختبار لعمليات النشر واسعة النطاق والمهمة. هذه القناة متاحة فقط للعملاء وتوفر حزمة Nextcloud للمؤسسة.",
- "Stable" : "مستقر",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "أحدث نسخة مستقرة. مناسبه للاستخدام المنتظم وسيتم تحديثه دائمًا إلى أحدث إصدار رئيسي.",
- "Beta" : "تجريبي",
- "A pre-release version only for testing new features, not for production environments." : "نسخة تجريبية فقط لاختبار الميزات الجديدة ، وليس لبيئات الإنتاجية.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> تطبيق لا يوجد لديه تحديث لهذه النسخة","<strong>%n</strong> تطبيق لا يوجد لديه تحديث لهذه النسخة","<strong>%n</strong> تطبيقان لا يوجد لديهم تحديث لهذه النسخة","<strong>%n</strong> تطبيقات لا توجد لديها تحديث لهذه النسخة","<strong>%n</strong> تطبيقات لا توجد لديها تحديث لهذه النسخة","<strong>%n</strong>تطبيقات لا توجد لديها تحديث لهذه النسخة"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "لاحظ أنه بعد نزول إصدار جديد، قد يستغرق الأمر بعض الوقت قبل ظهوره هنا. نطرح إصدارات جديدة موزعة بمرور الوقت على مستخدمينا وأحيانًا نتخطى إصدارًا عند اكتشاف مشاكل."
+ "Changelog for app {app}" : "سجل التغييرات للتطبيق {app}",
+ "What's new in {app} version {version}" : "ما الجديد في الإصدار {version} من التطبيق {app}",
+ "{version} is available. Get more information on how to update." : "الإصدار {version} متوفر. أحصُل على معلومات عن كيفية التحديث."
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/updatenotification/l10n/ar.json b/apps/updatenotification/l10n/ar.json
index b7975d22746..14f07bab509 100644
--- a/apps/updatenotification/l10n/ar.json
+++ b/apps/updatenotification/l10n/ar.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} متوفر. أحصل على معلومات كيفية التحديث.",
- "Channel updated" : "حُدثت القناة",
+ "Channel updated" : "قناة التحديث",
+ "Web updater is disabled" : "التحديث من خلال الويب معطل",
+ "App updated" : "تمّ تحديث التطبيق",
+ "See what's new" : "إطَّلِع على الجديد",
+ "{app} updated to version {version}" : "تمّ تحديث التطبيق {app} إلى الإصدار {version}",
"Update notifications" : "إشعارات التحديث",
- "The update server could not be reached since %d days to check for new updates." : "تعذر الوصول إلى خادم التحديث منذ %d أيام للتحقق من وجود تحديثات جديدة.",
- "Please check the Nextcloud and server log files for errors." : "يرجى التحقق من Nextcloud وملفات تسجيل الخادم بحثًا عن الأخطاء.",
- "Update to %1$s is available." : "التحديث إلى %1$s متوفر.",
- "Update for %1$s to version %2$s is available." : "التحديث من النسخة %1$s إلى %2$s متوفر.",
+ "The update server could not be reached since %d days to check for new updates." : "تعذر الوصول إلى خادم التحديث للتحقق من وجود تحديثات جديدة منذ %d أيام.",
+ "Please check the Nextcloud and server log files for errors." : "يرجى التحقق من نكست كلاود و سجل أنشطة الخادم log بحثًا عن الأخطاء.",
+ "Update to {serverAndVersion} is available." : "تحديث الـ {serverAndVersion} متوفّر.",
"Update for {app} to version %s is available." : "التحديث ل {app} نسخة رقم %s متوفر.",
"Update notification" : "إشعار التحديث",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "يعرض إشعارات التحديث لـ Nextcloud ويوفر SSO للمُحدِّث.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "يعرض إشعارات التحديث لنكست كلاود، وتحديثات التطبيقات، و يوفر تسجيل الدخول الموحّد SSO للمُحدِّث.",
+ "Give feedback" : "سجِّل انطباعك",
+ "Get started" : "البدء...",
+ "No changelog available" : "لا يوجد سجل بالتغييرات",
+ "What's new in {app} {version}" : "ما هو الجديد في {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "توجد نسخة جديدة: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "لاحظ أنه بعد كل إصدار جديد، لا يظهر التحديث إلا بعد الإصدار الثانوي الأول أو الأحدث. نحن نطرح إصدارات جديدة موزعة على مدار الوقت، و أحيانًا نتخطى إصدارًا عند اكتشاف مشكلات فيه. تعرّف على المزيد حول التحديثات وقنوات الإصدار على {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "تمّ الفحص في {lastCheckedDate} - إفتَح سجل التغيير",
+ "Checking apps for compatible versions" : "فحص التطبيقات من ناحية توافر أي إصدارات متوافقة",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "الرجاء التأكد أن ملف الconfig.php الخاص بك لا يعين قيمة <samp>appstoreenabled</samp> إلى false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "لم يُمكن الاتصال مع متجر التطبيقات App Store أو لم يتم إرجاع أي تحديثات. إبحث يدويّاً عن التحديثات أو تأكّد من أن الخادم الخاص بك متصل بالإنترنت و يستطيع الاتصال بالمتجر.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>كل </strong>التطبيقات لها نسخ متوفقة مع نسخة نكست كلاود هذه.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong>تطبيق ليس له إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح.","<strong>%n</strong> من التطبيقات ليس لها إصدار متوافق مع إصدار نكست كلود المتاح."],
+ "Enterprise" : "المؤسسة",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "لاستخدام المؤسسات. يوفر دائمًا أحدث مستوى من التصحيح ، ولكنه لن يتم تحديثه إلى الإصدار الرئيسي التالي على الفور. يحدث هذا التحديث بمجرد أن تقوم شركة Nextcloud GmbH بإجراء مزيد من الصلابة والاختبار لعمليات النشر واسعة النطاق والمهمة. هذه القناة متاحة فقط للعملاء وتوفر حزمة Nextcloud للمؤسسة.",
+ "Stable" : "مستقر",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "أحدث نسخة مستقرة. مناسبه للاستخدام المنتظم وسيتم تحديثه دائمًا إلى أحدث إصدار رئيسي.",
+ "Beta" : "تجريبي",
+ "A pre-release version only for testing new features, not for production environments." : "نسخة تجريبية فقط لاختبار الميزات الجديدة ، وليس لبيئات الإنتاجية.",
+ "Update" : "تحديث",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "لم يعد الإصدار الذي تقوم بتشغيله قيد الصيانة. يرجى التأكد من التحديث إلى إصدار مدعوم في أقرب وقت ممكن.",
- "Apps missing updates" : "التطبيقات تفقد تحديثات",
+ "Apps missing compatible version" : "تفتقد التطبيقات إلى إصدار متوافق",
"View in store" : "العرض على المتجر",
- "Apps with available updates" : "يتوفر تحديثات للتطبيقات",
+ "Apps with compatible version" : "تطبيقات بإصدار متوافق",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "يرجى ملاحظة أنه لا يوصى باستخدام أداة تحديث الويب مع أكثر من 100 حساب! الرجاء استخدام الأمر السطري للتحديث command line updater بدلاً من ذلك!",
"Open updater" : "فتح المحدِّث",
"Download now" : "حمل الآن",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "مُحدِّث الوِب Web updater تمّ تعطيله. رجاءً، استعمل للتحديث الأمر السطري updater أو آلية تحديث مناسبة لطريقتك في التثبيت (مثل Docker pull).",
"What's new?" : "مالجديد؟",
+ "View changelog" : "اعرض سجل التغييرات",
"The update check is not yet finished. Please refresh the page." : "التحقق من التحديث لم ينته بعد. يرجى تحديث الصفحة.",
"Your version is up to date." : "النسخة لديك هي الأحدث.",
"A non-default update server is in use to be checked for updates:" : "يتم استخدام خادم تحديث غير افتراضي للتحقق من وجود تحديثات:",
- "Update channel:" : "قناة التحديث:",
+ "Update channel" : "قناة التحديث",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "يؤثر تغيير قناة التحديث أيضًا على صفحة إدارة التطبيقات. على سبيل المثال بعد التبديل إلى القناة التجريبية، سيتم تقديم تحديثات التطبيق التجريبي لك في صفحة إدارة التطبيقات.",
+ "Current update channel:" : "قناة التحديث الحالية:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "يمكنك دائمًا التحديث إلى إصدار أحدث. لكن لا يمكنك الرجوع إلى إصدار أكثر استقرارًا.",
"Notify members of the following groups about available updates:" : "إشعار أعضاء المجموعات التالية بتوفر التحديثات:",
- "Only notification for app updates are available." : "يتوفر إشعار فقط عن تحديثات التطبيق.",
+ "No groups" : "لا توجد مجموعات",
+ "Only notifications for app updates are available." : "توجد فقط إشعارات حول تحديثات التطبيقات",
"The selected update channel makes dedicated notifications for the server obsolete." : "قناة التحديث المحددة تجعل الإشعارات المخصصة للخادم قديمة.",
"The selected update channel does not support updates of the server." : "قناة التحديث المحددة لا تدعم تحديثات الخادم.",
- "A new version is available: <strong>{newVersionString}</strong>" : "توجد نسخة جديدة: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "فحص في {lastCheckedDate}",
- "Checking apps for compatible updates" : "التحقق من التطبيقات للحصول على تحديثات متوافقة",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "الرجاء التأكد أن ملف الconfig.php الخاص بك لا يعين قيمة <samp>appstoreenabled</samp> إلى false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "تعذر الاتصال بمتجر التطبيقات أو أن متجر التطبيقات لم يُرجع أي تحديثات على الإطلاق. ابحث يدويًا عن التحديثات أو تأكد من وصول الخادم إلى الإنترنت ويمكنه الاتصال بمتجر التطبيقات.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>جميع</strong> التطبيقات لديها تحديث لهذا الإصدار",
- "View changelog" : "اعرض سجل التغييرات",
- "Enterprise" : "المؤسسة",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "لاستخدام المؤسسات. يوفر دائمًا أحدث مستوى من التصحيح ، ولكنه لن يتم تحديثه إلى الإصدار الرئيسي التالي على الفور. يحدث هذا التحديث بمجرد أن تقوم شركة Nextcloud GmbH بإجراء مزيد من الصلابة والاختبار لعمليات النشر واسعة النطاق والمهمة. هذه القناة متاحة فقط للعملاء وتوفر حزمة Nextcloud للمؤسسة.",
- "Stable" : "مستقر",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "أحدث نسخة مستقرة. مناسبه للاستخدام المنتظم وسيتم تحديثه دائمًا إلى أحدث إصدار رئيسي.",
- "Beta" : "تجريبي",
- "A pre-release version only for testing new features, not for production environments." : "نسخة تجريبية فقط لاختبار الميزات الجديدة ، وليس لبيئات الإنتاجية.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> تطبيق لا يوجد لديه تحديث لهذه النسخة","<strong>%n</strong> تطبيق لا يوجد لديه تحديث لهذه النسخة","<strong>%n</strong> تطبيقان لا يوجد لديهم تحديث لهذه النسخة","<strong>%n</strong> تطبيقات لا توجد لديها تحديث لهذه النسخة","<strong>%n</strong> تطبيقات لا توجد لديها تحديث لهذه النسخة","<strong>%n</strong>تطبيقات لا توجد لديها تحديث لهذه النسخة"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "لاحظ أنه بعد نزول إصدار جديد، قد يستغرق الأمر بعض الوقت قبل ظهوره هنا. نطرح إصدارات جديدة موزعة بمرور الوقت على مستخدمينا وأحيانًا نتخطى إصدارًا عند اكتشاف مشاكل."
+ "Changelog for app {app}" : "سجل التغييرات للتطبيق {app}",
+ "What's new in {app} version {version}" : "ما الجديد في الإصدار {version} من التطبيق {app}",
+ "{version} is available. Get more information on how to update." : "الإصدار {version} متوفر. أحصُل على معلومات عن كيفية التحديث."
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ast.js b/apps/updatenotification/l10n/ast.js
index f07d841bfc5..60a1e21e4cb 100644
--- a/apps/updatenotification/l10n/ast.js
+++ b/apps/updatenotification/l10n/ast.js
@@ -1,27 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Ta disponible {version}. Consigui más infromación tocante a cómo anovar.",
"Channel updated" : "Anovóse la canal",
+ "Web updater is disabled" : "L'anovador web ta desactiváu",
+ "App updated" : "Anovóse l'aplicación",
+ "See what's new" : "Ver les novedaes",
+ "{app} updated to version {version}" : "«{app}» anovóse a la versión {version}",
"Update notifications" : "Avisos d'anovamientu",
- "The update server could not be reached since %d days to check for new updates." : "Nun pudo algamase'l sirvidor d'anovamientu dende hai %d díes pa comprobar anovamientos.",
- "Please check the Nextcloud and server log files for errors." : "Comprueba los fallos de los ficheros de rexistru del sirvidor y Nextcloud, por favor.",
- "Update to %1$s is available." : "Ta disponible l'anovamientu a %1$s",
- "Update for %1$s to version %2$s is available." : "Ta disponible l'anovamientu pa %1$s a la versión %2$s.",
- "Update for {app} to version %s is available." : "Ta disponible l'anovamientu pa {app} a la versión %s.",
+ "The update server could not be reached since %d days to check for new updates." : "Nun se pudo algamar el sirvidor dende hai %d díes pa comprobar los anovamientos.",
+ "Please check the Nextcloud and server log files for errors." : "Comprueba los errores de los ficheros de rexistru de Nextcloud y del sirvidor.",
+ "Update to {serverAndVersion} is available." : "Hai un anovamientu a la versión {serverAndVersion}.",
+ "Update for {app} to version %s is available." : "Hai un anovamientu a la versión %s de l'aplicación «{app}».",
"Update notification" : "Avisu d'anovamientu",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Amuesa avisos d'anovamientu pa Nextcloud, aplicaciones y forne'l SSO al anovador.",
+ "Give feedback" : "Opinar",
+ "Get started" : "Comenzar",
+ "No changelog available" : "Nun hai nengún rexistru de cambeos disponible.",
+ "What's new in {app} {version}" : "Novedaes de {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Hai un anovamientu disponible: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Decátate que, dempués d'una versión nueva, namás s'amuesa l'anovamientu dempués de la primer versión menor o posterior. Distribuyimos los anovamientos de forma repetida nel tiempu y, de xemes en cuando, omitimos una verisón si atopamos problemes. Conoz más tocante a los anovamientos y canales d'anovamientu en {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Comprobóse'l {lastCheckedDate} - Abrir el rexistru de cambeos",
+ "Checking apps for compatible versions" : "Comprobando les versiones compatibles de les aplicaciones",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Asegúrate de que'l ficheru «config.php» nun tien la opción <samp>appstoreenabled</samp>configurada con «false».",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nun se pudo conectar cola tienda d'aplicaciones o nun se devolvió nengún anovamientu. Busca manualmente los anovamientos o asegúrate de que'l sirvidor tien accesu a internet y pue conectase a la tienda d'aplicaciones.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Toles</strong> aplicaciones tienen disponible una versión compatible con esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicación nun tienen disponible nenguna versión compatble con esta versión de Nextcloud.","<strong>%n</strong> aplicaciones nun tienen disponible nenguna versión compatble con esta versión de Nextcloud."],
+ "Enterprise" : "Empresa",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pa usu empresarial. Forne siempres los parches más nuevos mas nun va anovase inmediatamente a la versión mayor siguiente. Esti anovamientu produzse cuando Nextcloud GmbH fexo les pruebes y ameyores adicionales pa implementaciones crítiques y a escala grande. Esta canal namás ta disponible pa los veceros y forne'l paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versión estable más recién. Ye afayadiza pa un usu continuu y va anovase siempres a la versión mayor más recién.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versión preliminar namás pa probar funciones nueves, non pa entornos de producción.",
+ "Update" : "Anovar",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión qu'executes yá nun ta caltenida. Asegúrate d'anovar a una versión sofitada lo más pronto posible.",
+ "Apps missing compatible version" : "Aplicaciones a les que-y falten la versión compatible",
"View in store" : "Ver na tienda",
- "Open updater" : "Abrir anovador",
+ "Apps with compatible version" : "Aplicaciones cola versión compatible",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "¡Decátate que nun s'aconseya l'anovador web con más de 100 cuentes! Usa l'anovador de la llinia de comandos.",
+ "Open updater" : "Abrir l'anovador",
"Download now" : "Baxar agora",
- "The update check is not yet finished. Please refresh the page." : "Entá nun finó la comprobación d'anovamientu. Refresca la páxina, por favor.",
- "Your version is up to date." : "La to versión ta anovada",
- "A non-default update server is in use to be checked for updates:" : "Úsase un sirvidor non predetermináu pa comprobar anovamientos:",
- "Update channel:" : "Canal d'anovamientu:",
- "Notify members of the following groups about available updates:" : "Avisar a los miembros de los grupos de darréu tocante a anovamientos disponibles:",
- "Only notification for app updates are available." : "Namái tán disponibles los avisos pa los anovamientos d'aplicaciones.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "La canal esbillada d'anovamientu fai avisos dedicaos pa lo obsoleto del sirvidor.",
- "The selected update channel does not support updates of the server." : "El canal esbilláu d'anovamientu nun sofita anovamientos del sirvidor.",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Asegúrate que'l config.php nun tien afitao <samp>appstoreenabled</samp> en false",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nun pudo coneutase a la tienda d'aplicaciones o la tienda d'aplicaciones nun devolvió anovamientos. Gueta a mano anovamientos o asegúrate que'l to sirvidor tien accesu a internet y pue coneutase a la tienda d'aplicaciones."
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "L'anovador web ta desactiváu. Usa l'anovador de la llinia de comandos o'l mecanismu d'anovamientu afayadizu pal to métodu d'instalación (p. exem. Docker) p'anovar.",
+ "What's new?" : "Novedaes",
+ "View changelog" : "Ver el rexistru de cambeos",
+ "The update check is not yet finished. Please refresh the page." : "La comprobación d'anovamientos entá nun finó. Anueva la páxina.",
+ "Your version is up to date." : "Esta versión ta anovada.",
+ "A non-default update server is in use to be checked for updates:" : "Hai un sirvidor que nun ye'l predetermináu pa comprobar anovamientos:",
+ "Update channel" : "Canal d'anovamientu",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Camudar la canal d'anovamientu tamién afeuta a la páxina d'alministración d'aplicaciones. Por exemplu, dempués de cambiar a la canal beta, úfrense anovamientos d'aplicaciones beta na páxina d'alministración d'aplicaciones.",
+ "Current update channel:" : "Canal d'anovamientu actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempres pues anovar a una versión más recién, mas nun pues volver enxamás a una versión anterior más estable.",
+ "Notify members of the following groups about available updates:" : "Avisar a los miembros de los grupos siguientes tocante a los anovamientos disponibles:",
+ "No groups" : "Nun hai nengún grupu",
+ "Only notifications for app updates are available." : "Namás tán disponibles los anovamientos de los avisos pa les aplicaciones",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "La canal d'anovamientu seleicionada dexa obsoletos los avisos dedicaos del sirvidors.",
+ "The selected update channel does not support updates of the server." : "La canal d'anovamientu seleicionada nun sofita los anovamientos del sirvidor.",
+ "Changelog for app {app}" : "Rexistru de cambeos pa la versión «{app}»",
+ "What's new in {app} version {version}" : "Novedaes na aplicación «{app}» versión «{version}»",
+ "{version} is available. Get more information on how to update." : "{version} ta disponible. Consigui más información tocante a cómo anovar."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/ast.json b/apps/updatenotification/l10n/ast.json
index 0e91ed11616..0d3d03082ad 100644
--- a/apps/updatenotification/l10n/ast.json
+++ b/apps/updatenotification/l10n/ast.json
@@ -1,25 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Ta disponible {version}. Consigui más infromación tocante a cómo anovar.",
"Channel updated" : "Anovóse la canal",
+ "Web updater is disabled" : "L'anovador web ta desactiváu",
+ "App updated" : "Anovóse l'aplicación",
+ "See what's new" : "Ver les novedaes",
+ "{app} updated to version {version}" : "«{app}» anovóse a la versión {version}",
"Update notifications" : "Avisos d'anovamientu",
- "The update server could not be reached since %d days to check for new updates." : "Nun pudo algamase'l sirvidor d'anovamientu dende hai %d díes pa comprobar anovamientos.",
- "Please check the Nextcloud and server log files for errors." : "Comprueba los fallos de los ficheros de rexistru del sirvidor y Nextcloud, por favor.",
- "Update to %1$s is available." : "Ta disponible l'anovamientu a %1$s",
- "Update for %1$s to version %2$s is available." : "Ta disponible l'anovamientu pa %1$s a la versión %2$s.",
- "Update for {app} to version %s is available." : "Ta disponible l'anovamientu pa {app} a la versión %s.",
+ "The update server could not be reached since %d days to check for new updates." : "Nun se pudo algamar el sirvidor dende hai %d díes pa comprobar los anovamientos.",
+ "Please check the Nextcloud and server log files for errors." : "Comprueba los errores de los ficheros de rexistru de Nextcloud y del sirvidor.",
+ "Update to {serverAndVersion} is available." : "Hai un anovamientu a la versión {serverAndVersion}.",
+ "Update for {app} to version %s is available." : "Hai un anovamientu a la versión %s de l'aplicación «{app}».",
"Update notification" : "Avisu d'anovamientu",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Amuesa avisos d'anovamientu pa Nextcloud, aplicaciones y forne'l SSO al anovador.",
+ "Give feedback" : "Opinar",
+ "Get started" : "Comenzar",
+ "No changelog available" : "Nun hai nengún rexistru de cambeos disponible.",
+ "What's new in {app} {version}" : "Novedaes de {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Hai un anovamientu disponible: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Decátate que, dempués d'una versión nueva, namás s'amuesa l'anovamientu dempués de la primer versión menor o posterior. Distribuyimos los anovamientos de forma repetida nel tiempu y, de xemes en cuando, omitimos una verisón si atopamos problemes. Conoz más tocante a los anovamientos y canales d'anovamientu en {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Comprobóse'l {lastCheckedDate} - Abrir el rexistru de cambeos",
+ "Checking apps for compatible versions" : "Comprobando les versiones compatibles de les aplicaciones",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Asegúrate de que'l ficheru «config.php» nun tien la opción <samp>appstoreenabled</samp>configurada con «false».",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nun se pudo conectar cola tienda d'aplicaciones o nun se devolvió nengún anovamientu. Busca manualmente los anovamientos o asegúrate de que'l sirvidor tien accesu a internet y pue conectase a la tienda d'aplicaciones.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Toles</strong> aplicaciones tienen disponible una versión compatible con esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicación nun tienen disponible nenguna versión compatble con esta versión de Nextcloud.","<strong>%n</strong> aplicaciones nun tienen disponible nenguna versión compatble con esta versión de Nextcloud."],
+ "Enterprise" : "Empresa",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pa usu empresarial. Forne siempres los parches más nuevos mas nun va anovase inmediatamente a la versión mayor siguiente. Esti anovamientu produzse cuando Nextcloud GmbH fexo les pruebes y ameyores adicionales pa implementaciones crítiques y a escala grande. Esta canal namás ta disponible pa los veceros y forne'l paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versión estable más recién. Ye afayadiza pa un usu continuu y va anovase siempres a la versión mayor más recién.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versión preliminar namás pa probar funciones nueves, non pa entornos de producción.",
+ "Update" : "Anovar",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión qu'executes yá nun ta caltenida. Asegúrate d'anovar a una versión sofitada lo más pronto posible.",
+ "Apps missing compatible version" : "Aplicaciones a les que-y falten la versión compatible",
"View in store" : "Ver na tienda",
- "Open updater" : "Abrir anovador",
+ "Apps with compatible version" : "Aplicaciones cola versión compatible",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "¡Decátate que nun s'aconseya l'anovador web con más de 100 cuentes! Usa l'anovador de la llinia de comandos.",
+ "Open updater" : "Abrir l'anovador",
"Download now" : "Baxar agora",
- "The update check is not yet finished. Please refresh the page." : "Entá nun finó la comprobación d'anovamientu. Refresca la páxina, por favor.",
- "Your version is up to date." : "La to versión ta anovada",
- "A non-default update server is in use to be checked for updates:" : "Úsase un sirvidor non predetermináu pa comprobar anovamientos:",
- "Update channel:" : "Canal d'anovamientu:",
- "Notify members of the following groups about available updates:" : "Avisar a los miembros de los grupos de darréu tocante a anovamientos disponibles:",
- "Only notification for app updates are available." : "Namái tán disponibles los avisos pa los anovamientos d'aplicaciones.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "La canal esbillada d'anovamientu fai avisos dedicaos pa lo obsoleto del sirvidor.",
- "The selected update channel does not support updates of the server." : "El canal esbilláu d'anovamientu nun sofita anovamientos del sirvidor.",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Asegúrate que'l config.php nun tien afitao <samp>appstoreenabled</samp> en false",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nun pudo coneutase a la tienda d'aplicaciones o la tienda d'aplicaciones nun devolvió anovamientos. Gueta a mano anovamientos o asegúrate que'l to sirvidor tien accesu a internet y pue coneutase a la tienda d'aplicaciones."
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "L'anovador web ta desactiváu. Usa l'anovador de la llinia de comandos o'l mecanismu d'anovamientu afayadizu pal to métodu d'instalación (p. exem. Docker) p'anovar.",
+ "What's new?" : "Novedaes",
+ "View changelog" : "Ver el rexistru de cambeos",
+ "The update check is not yet finished. Please refresh the page." : "La comprobación d'anovamientos entá nun finó. Anueva la páxina.",
+ "Your version is up to date." : "Esta versión ta anovada.",
+ "A non-default update server is in use to be checked for updates:" : "Hai un sirvidor que nun ye'l predetermináu pa comprobar anovamientos:",
+ "Update channel" : "Canal d'anovamientu",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Camudar la canal d'anovamientu tamién afeuta a la páxina d'alministración d'aplicaciones. Por exemplu, dempués de cambiar a la canal beta, úfrense anovamientos d'aplicaciones beta na páxina d'alministración d'aplicaciones.",
+ "Current update channel:" : "Canal d'anovamientu actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempres pues anovar a una versión más recién, mas nun pues volver enxamás a una versión anterior más estable.",
+ "Notify members of the following groups about available updates:" : "Avisar a los miembros de los grupos siguientes tocante a los anovamientos disponibles:",
+ "No groups" : "Nun hai nengún grupu",
+ "Only notifications for app updates are available." : "Namás tán disponibles los anovamientos de los avisos pa les aplicaciones",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "La canal d'anovamientu seleicionada dexa obsoletos los avisos dedicaos del sirvidors.",
+ "The selected update channel does not support updates of the server." : "La canal d'anovamientu seleicionada nun sofita los anovamientos del sirvidor.",
+ "Changelog for app {app}" : "Rexistru de cambeos pa la versión «{app}»",
+ "What's new in {app} version {version}" : "Novedaes na aplicación «{app}» versión «{version}»",
+ "{version} is available. Get more information on how to update." : "{version} ta disponible. Consigui más información tocante a cómo anovar."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/az.js b/apps/updatenotification/l10n/az.js
deleted file mode 100644
index 4e2a947c404..00000000000
--- a/apps/updatenotification/l10n/az.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Updater" : "Yeniləyici",
- "A new version is available: %s" : "Yeni versiya mövcuddur: %s"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/az.json b/apps/updatenotification/l10n/az.json
deleted file mode 100644
index 81ad8b46130..00000000000
--- a/apps/updatenotification/l10n/az.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Updater" : "Yeniləyici",
- "A new version is available: %s" : "Yeni versiya mövcuddur: %s"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/bg.js b/apps/updatenotification/l10n/bg.js
index 05e61df134b..b28faa7666e 100644
--- a/apps/updatenotification/l10n/bg.js
+++ b/apps/updatenotification/l10n/bg.js
@@ -1,42 +1,44 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} е налична. Намерете допълнителна информация за това как да актуализирате.",
"Channel updated" : "Канала е променен",
+ "Web updater is disabled" : "Уеб програмата за актуализиране е деактивирана",
"Update notifications" : "Известия за актуализации",
"The update server could not be reached since %d days to check for new updates." : "Няма връзка със сървъра за актуализации от %d дни.",
"Please check the Nextcloud and server log files for errors." : "Проверете журналите на Nextcloud и на сървъра за грешки.",
- "Update to %1$s is available." : "Налична е актуализация до версия %1$s.",
- "Update for %1$s to version %2$s is available." : "Налична е актуализация от %1$s до версия %2$s.",
+ "Update to {serverAndVersion} is available." : "Налична е актуализация на {serverAndVersion}.",
"Update for {app} to version %s is available." : "Обновление за {app} до версия %s е налично.",
"Update notification" : "Известие за актуализация",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Налична е нова версия: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Проверка на приложенията за съвместими версии",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Моля, уверете се, че в config.php не е зададено <samp>appstoreenabled</samp> на false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Свързването с магазина за приложения App Store не е възможно или изобщо не са върнати актуализации. Търсете ръчно за актуализации или се уверете, че вашият сървър има достъп до интернет и може да се свърже с App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Всички</strong> приложения имат налична съвместима версия за тази версия на Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> приложения нямат налична съвместима версия за тази версия на Nextcloud.","<strong>%n</strong> от приложенията нямат налична съвместима версия за тази версия на Nextcloud."],
+ "Enterprise" : "Предприятие",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За професионална употреба. Осигурява винаги най-новото ниво на корекция, но няма да се актуализира веднага до следващото голямо издание. Тази актуализация се случва, след като Nextcloud GmbH направи допълнително подсилване и тестване за широкомащабни и критични за мисията внедрявания. Този канал е достъпен само за клиенти и доставчици на пакета Nextcloud Enterprise.",
+ "Stable" : "Стабилна",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Последната стабилна версия. Подходяща е за ежедневно ползване и се актуализации до последната главна версия.",
+ "Beta" : "Бета",
+ "A pre-release version only for testing new features, not for production environments." : "Версия само за тестване на нови функционалности, която не е подходяща за ползване в производствена среда.",
+ "Update" : "Обновяване",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Инсталираната версия вече не се поддържа. Моля актуализирайте до поддържана версия възможно най-скоро.",
- "Apps missing updates" : "Приложения без актуализация",
+ "Apps missing compatible version" : "Липсва съвместима версия на приложенията",
"View in store" : "Преглед в магазина",
- "Apps with available updates" : "Приложенията, с налични актуализации",
+ "Apps with compatible version" : "Приложения със съвместима версия",
"Open updater" : "Отвори актуализиращата програма",
"Download now" : "Свали сега",
"What's new?" : "Какви са промените?",
+ "View changelog" : "Преглед на списъка с промени",
"The update check is not yet finished. Please refresh the page." : "Проверката за актуализации не е приключила. Заредете страницата отново.",
"Your version is up to date." : "Ползвате последната версия.",
"A non-default update server is in use to be checked for updates:" : "Проверката за налични актуализации се извършва чрез сървър, който е различен от стандартния:",
- "Update channel:" : "Канал за актуализиране:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Винаги може да актуализирате до по-нова версия. Но не може да се върнете до по-стабилна (по-стара) версия.",
"Notify members of the following groups about available updates:" : "Известявай следните групи при наличие на актуализация:",
- "Only notification for app updates are available." : "Налични са само известия за актуализации на приложенията.",
+ "No groups" : "Няма групи",
+ "Only notifications for app updates are available." : "Налични са само известия за актуализации на приложенията.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Избрания канал за актуализации прави известията за този сървър остарели.",
"The selected update channel does not support updates of the server." : "Избрания канал за актуализации не поддържа сървърни актуализации.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Налична е нова версия: <strong>{newVersionString}</strong>",
- "Checking apps for compatible updates" : "Проверка на приложенията за съвместими актуализации",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Моля, уверете се, че в config.php не е зададено <samp>appstoreenabled</samp> на false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Свързването с магазина за приложения не е възможно или няма актуализации. Потърсете ръчно за актуализации или се уверете, че сървъра има връзка с Интернет и може да се свързва с магазина за приложения.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Всички</strong> приложения имат актуализация за наличната версия",
- "View changelog" : "Преглед на списъка с промени",
- "Stable" : "Стабилна",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Последната стабилна версия. Подходяща е за ежедневно ползване и се актуализации до последната главна версия.",
- "Beta" : "Бета",
- "A pre-release version only for testing new features, not for production environments." : "Версия само за тестване на нови функционалности, която не е подходяща за ползване в производствена среда.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> приложение няма актуализация за тази версия","<strong>%n</strong> приложения нямат актуализация за тази версия"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "След издаването на нова версия обикновено няма да получите веднага известие. Потребителите се известяват на интервали, което може да доведе до пропускане на версия ако се появят проблеми."
+ "{version} is available. Get more information on how to update." : "{version} е налична. Намерете допълнителна информация за това как да актуализирате."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/bg.json b/apps/updatenotification/l10n/bg.json
index 1bca53a2a98..e7862712193 100644
--- a/apps/updatenotification/l10n/bg.json
+++ b/apps/updatenotification/l10n/bg.json
@@ -1,40 +1,42 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} е налична. Намерете допълнителна информация за това как да актуализирате.",
"Channel updated" : "Канала е променен",
+ "Web updater is disabled" : "Уеб програмата за актуализиране е деактивирана",
"Update notifications" : "Известия за актуализации",
"The update server could not be reached since %d days to check for new updates." : "Няма връзка със сървъра за актуализации от %d дни.",
"Please check the Nextcloud and server log files for errors." : "Проверете журналите на Nextcloud и на сървъра за грешки.",
- "Update to %1$s is available." : "Налична е актуализация до версия %1$s.",
- "Update for %1$s to version %2$s is available." : "Налична е актуализация от %1$s до версия %2$s.",
+ "Update to {serverAndVersion} is available." : "Налична е актуализация на {serverAndVersion}.",
"Update for {app} to version %s is available." : "Обновление за {app} до версия %s е налично.",
"Update notification" : "Известие за актуализация",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Налична е нова версия: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Проверка на приложенията за съвместими версии",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Моля, уверете се, че в config.php не е зададено <samp>appstoreenabled</samp> на false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Свързването с магазина за приложения App Store не е възможно или изобщо не са върнати актуализации. Търсете ръчно за актуализации или се уверете, че вашият сървър има достъп до интернет и може да се свърже с App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Всички</strong> приложения имат налична съвместима версия за тази версия на Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> приложения нямат налична съвместима версия за тази версия на Nextcloud.","<strong>%n</strong> от приложенията нямат налична съвместима версия за тази версия на Nextcloud."],
+ "Enterprise" : "Предприятие",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За професионална употреба. Осигурява винаги най-новото ниво на корекция, но няма да се актуализира веднага до следващото голямо издание. Тази актуализация се случва, след като Nextcloud GmbH направи допълнително подсилване и тестване за широкомащабни и критични за мисията внедрявания. Този канал е достъпен само за клиенти и доставчици на пакета Nextcloud Enterprise.",
+ "Stable" : "Стабилна",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Последната стабилна версия. Подходяща е за ежедневно ползване и се актуализации до последната главна версия.",
+ "Beta" : "Бета",
+ "A pre-release version only for testing new features, not for production environments." : "Версия само за тестване на нови функционалности, която не е подходяща за ползване в производствена среда.",
+ "Update" : "Обновяване",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Инсталираната версия вече не се поддържа. Моля актуализирайте до поддържана версия възможно най-скоро.",
- "Apps missing updates" : "Приложения без актуализация",
+ "Apps missing compatible version" : "Липсва съвместима версия на приложенията",
"View in store" : "Преглед в магазина",
- "Apps with available updates" : "Приложенията, с налични актуализации",
+ "Apps with compatible version" : "Приложения със съвместима версия",
"Open updater" : "Отвори актуализиращата програма",
"Download now" : "Свали сега",
"What's new?" : "Какви са промените?",
+ "View changelog" : "Преглед на списъка с промени",
"The update check is not yet finished. Please refresh the page." : "Проверката за актуализации не е приключила. Заредете страницата отново.",
"Your version is up to date." : "Ползвате последната версия.",
"A non-default update server is in use to be checked for updates:" : "Проверката за налични актуализации се извършва чрез сървър, който е различен от стандартния:",
- "Update channel:" : "Канал за актуализиране:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Винаги може да актуализирате до по-нова версия. Но не може да се върнете до по-стабилна (по-стара) версия.",
"Notify members of the following groups about available updates:" : "Известявай следните групи при наличие на актуализация:",
- "Only notification for app updates are available." : "Налични са само известия за актуализации на приложенията.",
+ "No groups" : "Няма групи",
+ "Only notifications for app updates are available." : "Налични са само известия за актуализации на приложенията.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Избрания канал за актуализации прави известията за този сървър остарели.",
"The selected update channel does not support updates of the server." : "Избрания канал за актуализации не поддържа сървърни актуализации.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Налична е нова версия: <strong>{newVersionString}</strong>",
- "Checking apps for compatible updates" : "Проверка на приложенията за съвместими актуализации",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Моля, уверете се, че в config.php не е зададено <samp>appstoreenabled</samp> на false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Свързването с магазина за приложения не е възможно или няма актуализации. Потърсете ръчно за актуализации или се уверете, че сървъра има връзка с Интернет и може да се свързва с магазина за приложения.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Всички</strong> приложения имат актуализация за наличната версия",
- "View changelog" : "Преглед на списъка с промени",
- "Stable" : "Стабилна",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Последната стабилна версия. Подходяща е за ежедневно ползване и се актуализации до последната главна версия.",
- "Beta" : "Бета",
- "A pre-release version only for testing new features, not for production environments." : "Версия само за тестване на нови функционалности, която не е подходяща за ползване в производствена среда.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> приложение няма актуализация за тази версия","<strong>%n</strong> приложения нямат актуализация за тази версия"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "След издаването на нова версия обикновено няма да получите веднага известие. Потребителите се известяват на интервали, което може да доведе до пропускане на версия ако се появят проблеми."
+ "{version} is available. Get more information on how to update." : "{version} е налична. Намерете допълнителна информация за това как да актуализирате."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/bg_BG.js b/apps/updatenotification/l10n/bg_BG.js
deleted file mode 100644
index 00e2fbf90d9..00000000000
--- a/apps/updatenotification/l10n/bg_BG.js
+++ /dev/null
@@ -1,12 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Updated channel" : "Обновяването е отказано",
- "Updater" : "Обновяване",
- "A new version is available: %s" : "Има Нова Версия: %s",
- "Open updater" : "Отвори обновяването",
- "Your version is up to date." : "Вие разполагате с последна версия",
- "Update channel:" : "Обновяване отказано:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Винаги може да оновите до по-нова версия / експирементален канал. Но неможете вече да върнете до по-стабилен канал.."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/bg_BG.json b/apps/updatenotification/l10n/bg_BG.json
deleted file mode 100644
index f4b312190d6..00000000000
--- a/apps/updatenotification/l10n/bg_BG.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "translations": {
- "Updated channel" : "Обновяването е отказано",
- "Updater" : "Обновяване",
- "A new version is available: %s" : "Има Нова Версия: %s",
- "Open updater" : "Отвори обновяването",
- "Your version is up to date." : "Вие разполагате с последна версия",
- "Update channel:" : "Обновяване отказано:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Винаги може да оновите до по-нова версия / експирементален канал. Но неможете вече да върнете до по-стабилен канал.."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/bn_BD.js b/apps/updatenotification/l10n/bn_BD.js
deleted file mode 100644
index f86c8f51d6d..00000000000
--- a/apps/updatenotification/l10n/bn_BD.js
+++ /dev/null
@@ -1,6 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Updater" : "পরিবর্ধনকারী"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/bn_BD.json b/apps/updatenotification/l10n/bn_BD.json
deleted file mode 100644
index 09a72a17e2c..00000000000
--- a/apps/updatenotification/l10n/bn_BD.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "translations": {
- "Updater" : "পরিবর্ধনকারী"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/bs.js b/apps/updatenotification/l10n/bs.js
deleted file mode 100644
index 63d9986a300..00000000000
--- a/apps/updatenotification/l10n/bs.js
+++ /dev/null
@@ -1,7 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Updater" : "Unapređivač",
- "A new version is available: %s" : "Dostupna je nova verzija: %s"
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/updatenotification/l10n/bs.json b/apps/updatenotification/l10n/bs.json
deleted file mode 100644
index 6bf82bb0714..00000000000
--- a/apps/updatenotification/l10n/bs.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{ "translations": {
- "Updater" : "Unapređivač",
- "A new version is available: %s" : "Dostupna je nova verzija: %s"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ca.js b/apps/updatenotification/l10n/ca.js
index 71f9bff6bd5..77e5d8d46e5 100644
--- a/apps/updatenotification/l10n/ca.js
+++ b/apps/updatenotification/l10n/ca.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.",
- "Channel updated" : "S'ha actualitzat el canal.",
+ "Channel updated" : "S'ha actualitzat el canal",
+ "Web updater is disabled" : "L'actualitzador web està inhabilitat",
+ "App updated" : "S'ha actualitzat l'aplicació",
+ "See what's new" : "Consulta les novetats",
+ "{app} updated to version {version}" : "S'ha actualitzat {app} a la versió {version}",
"Update notifications" : "Notificacions d'actualització",
- "The update server could not be reached since %d days to check for new updates." : "No s’ha pogut accedir al servidor d’actualitzacions des de fa %d dies per comprovar si hi ha actualitzacions noves.",
- "Please check the Nextcloud and server log files for errors." : "Si us plau, comproveu els fitxers de registre del servidor i del Nextcloud per detectar errors.",
- "Update to %1$s is available." : "Hi ha disponible l'actualització a %1$s.",
- "Update for %1$s to version %2$s is available." : "Hi ha disponible l'actualització a la versió %2$s per a %1$s.",
+ "The update server could not be reached since %d days to check for new updates." : "No s'ha pogut accedir al servidor d'actualitzacions des de fa %d dies per a comprovar si hi ha actualitzacions noves.",
+ "Please check the Nextcloud and server log files for errors." : "Consulteu els fitxers de registre del servidor i del Nextcloud per a detectar errors.",
+ "Update to {serverAndVersion} is available." : "Hi ha disponible l'actualització a {serverAndVersion}.",
"Update for {app} to version %s is available." : "Hi ha disponible l'actualització a la versió %s per a {app}.",
"Update notification" : "Notificació d'actualització",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Mostra les notificacions d’actualització de Nextcloud i proporciona l’SSO de l’actualitzador.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versió que esteu executant ja no es manté. Assegureu-vos d’actualitzar el més aviat possible a una versió suportada.",
- "Apps missing updates" : "Les aplicacions no tenen actualitzacions",
- "View in store" : "Mostra-ho al magatzem",
- "Apps with available updates" : "Aplicacions amb actualitzacions disponibles",
- "Open updater" : "Obre l'actualitzador",
- "Download now" : "Descarrega-ho ara",
- "What's new?" : "Quines novetats hi ha?",
- "The update check is not yet finished. Please refresh the page." : "La comprovació de l’actualització encara no ha finalitzat. Si us plau, actualitzeu la pàgina.",
- "Your version is up to date." : "La vostra versió està actualitzada.",
- "A non-default update server is in use to be checked for updates:" : "Es fa servir un servidor d’actualització no predeterminat per comprovar si hi ha actualitzacions:",
- "Update channel:" : "Canal d'actualitzacions:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre podeu actualitzar a una versió més recent. Però mai no podeu baixar a una versió més estable.",
- "Notify members of the following groups about available updates:" : "Notifica als membres dels següents grups sobre les actualitzacions disponibles:",
- "Only notification for app updates are available." : "Només hi ha disponible notificacions per actualitzacions d’aplicacions.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualització seleccionat deixa obsoletes les notificacions específiques del servidor.",
- "The selected update channel does not support updates of the server." : "El canal d'actualitzacions seleccionat no admet les actualitzacions del servidor.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Hi ha una nova versió disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificat el {lastCheckedDate}",
- "Checking apps for compatible updates" : "S'estàn comprovant aplicacions per a actualitzacions compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Si us plau, assegureu-vos que en el vostre config.php no s'ha establert <samp>appstoreenabled</samp> com a fals.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No s’ha pogut connectar amb el magatzem d’aplicacions o aquest no ha retornat cap actualització. Cerqueu manualment actualitzacions o assegureu-vos que el vostre servidor tingui accés a Internet i es pugui connectar al magatzem d'aplicacions.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Totes</strong> les aplicacions tenen una actualització disponible per aquesta versió",
- "View changelog" : "Mostra el registre de canvis",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Mostra les notificacions d'actualització del Nextcloud, les actualitzacions de les aplicacions i proporciona l'SSO de l'actualitzador.",
+ "Give feedback" : "Envia un comentari",
+ "Get started" : "Comença",
+ "No changelog available" : "No hi ha cap registre de canvis disponible",
+ "What's new in {app} {version}" : "Novetats a {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Hi ha disponible una nova versió: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tingueu en compte que, després d'una versió nova, només es mostrarà l'actualització després de la primera versió menor o més endavant. Distribuïm les versions noves de manera repartida en el temps i, de vegades, ometem una versió si hi trobem problemes. Obteniu més informació sobre les actualitzacions i els canals de versions a {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Darrera comprovació: {lastCheckedDate} - Obre el registre de canvis",
+ "Checking apps for compatible versions" : "S'està comprovant si hi ha versions compatibles de les aplicacions",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assegureu-vos que el fitxer config.php no defineixi <samp>appstoreenabled</samp> com a fals.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No s'ha pogut establir la connexió a la botiga d'aplicacions o no s'ha retornat cap actualització. Cerqueu les actualitzacions manualment o assegureu-vos que el servidor tingui accés a Internet i que es pugui connectar a la botiga d'aplicacions.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Totes</strong> les aplicacions tenen una versió compatible amb aquesta versió del Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Hi ha <strong>%n</strong> aplicació que no té disponible cap versió compatible amb aquesta versió del Nextcloud.","Hi ha <strong>%n</strong> aplicacions que no tenen disponible cap versió compatible amb aquesta versió del Nextcloud."],
"Enterprise" : "Empresa",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per ús empresarial. Proporciona sempre el nivell de patch més recent, però no s'actualitzarà immediatament a la propera versió principal. Aquesta actualització es produeix quan Nextcloud GmbH ha realitzat proves i enduriments addicionals per a implementacions a gran escala i de missions crítiques. Aquest canal només està disponible per als clients i proporciona el paquet Nextcloud Enterprise.",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per a ús empresarial. Proporciona sempre els pedaços més recents, però no s'actualitzarà immediatament a la versió principal següent. Aquesta actualització es produeix quan Nextcloud GmbH ha fet proves i millores addicionals per a implementacions a gran escala i crítiques. Aquest canal només està disponible per als clients i proporciona el paquet Nextcloud Enterprise.",
"Stable" : "Estable",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versió estable més recent. És adequat per un ús normal i sempre s'actualitzarà a la versió més recent.",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versió estable més recent. És adequada per a un ús normal i sempre s'actualitzarà a la versió principal més recent.",
"Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Una versió prèvia a la publicació només per provar noves funcions, no per a entorns de producció.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicació no té cap actualització disponible per aquesta versió.","<strong>%n</strong> aplicacions no tenen cap actualització disponible per aquesta versió."],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Tingueu en compte que després d'un nou llançament, pot trigar un temps abans que aparegui aquí. Despleguem noves versions distribuïdes amb el temps als nostres usuaris i, de vegades, ometem una versió quan es detecten problemes."
+ "A pre-release version only for testing new features, not for production environments." : "Una versió preliminar només per a provar característiques noves, no per a entorns de producció.",
+ "Update" : "Actualització",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versió que esteu executant ja no es manté. Assegureu-vos d’actualitzar com més aviat millor a una versió admesa.",
+ "Apps missing compatible version" : "Aplicacions sense cap versió compatible",
+ "View in store" : "Mostra-ho a la botiga",
+ "Apps with compatible version" : "Aplicacions amb una versió compatible",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Tingueu en compte que no es recomana l'actualitzador web amb més de 100 comptes. Utilitzeu l'actualitzador de la línia d'ordres.",
+ "Open updater" : "Obre l'actualitzador",
+ "Download now" : "Baixa-ho ara",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "L'actualitzador web està inhabilitat. Utilitzeu l'actualitzador de línia d'ordres o el mecanisme d'actualització adequat per al vostre mètode d'instal·lació (p. ex., Docker pull) per a actualitzar.",
+ "What's new?" : "Quines novetats hi ha?",
+ "View changelog" : "Mostra el registre de canvis",
+ "The update check is not yet finished. Please refresh the page." : "La comprovació d'actualitzacions encara no ha finalitzat. Actualitzeu la pàgina.",
+ "Your version is up to date." : "Teniu la versió més recent.",
+ "A non-default update server is in use to be checked for updates:" : "S'utilitza un servidor d'actualitzacions diferent del servidor per defecte per a comprovar si hi ha actualitzacions:",
+ "Update channel" : "Canal d'actualitzacions",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Canviar de canal d'actualitzacions també afecta la pàgina d'administració d'aplicacions. Per exemple, després de canviar al canal beta, se us oferiran actualitzacions d'aplicacions beta a la pàgina d'administració d'aplicacions.",
+ "Current update channel:" : "Canal d'actualitzacions actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre podeu actualitzar a una versió més recent, però no podeu tornar mai a una versió anterior més estable.",
+ "Notify members of the following groups about available updates:" : "Notifica els membres dels grups següents sobre les actualitzacions disponibles:",
+ "No groups" : "No hi ha cap grup",
+ "Only notifications for app updates are available." : "Només hi ha disponibles notificacions per a actualitzacions d'aplicacions.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualitzacions seleccionat deixa obsoletes les notificacions específiques del servidor.",
+ "The selected update channel does not support updates of the server." : "El canal d'actualitzacions seleccionat no admet les actualitzacions del servidor.",
+ "Changelog for app {app}" : "Registre de canvis de l'aplicació {app}",
+ "What's new in {app} version {version}" : "Novetats de la versió {version} de {app}",
+ "{version} is available. Get more information on how to update." : "{version} ja està disponible. Obteniu més informació sobre com aplicar l'actualització."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/ca.json b/apps/updatenotification/l10n/ca.json
index e06b88b1905..07bf04b4050 100644
--- a/apps/updatenotification/l10n/ca.json
+++ b/apps/updatenotification/l10n/ca.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.",
- "Channel updated" : "S'ha actualitzat el canal.",
+ "Channel updated" : "S'ha actualitzat el canal",
+ "Web updater is disabled" : "L'actualitzador web està inhabilitat",
+ "App updated" : "S'ha actualitzat l'aplicació",
+ "See what's new" : "Consulta les novetats",
+ "{app} updated to version {version}" : "S'ha actualitzat {app} a la versió {version}",
"Update notifications" : "Notificacions d'actualització",
- "The update server could not be reached since %d days to check for new updates." : "No s’ha pogut accedir al servidor d’actualitzacions des de fa %d dies per comprovar si hi ha actualitzacions noves.",
- "Please check the Nextcloud and server log files for errors." : "Si us plau, comproveu els fitxers de registre del servidor i del Nextcloud per detectar errors.",
- "Update to %1$s is available." : "Hi ha disponible l'actualització a %1$s.",
- "Update for %1$s to version %2$s is available." : "Hi ha disponible l'actualització a la versió %2$s per a %1$s.",
+ "The update server could not be reached since %d days to check for new updates." : "No s'ha pogut accedir al servidor d'actualitzacions des de fa %d dies per a comprovar si hi ha actualitzacions noves.",
+ "Please check the Nextcloud and server log files for errors." : "Consulteu els fitxers de registre del servidor i del Nextcloud per a detectar errors.",
+ "Update to {serverAndVersion} is available." : "Hi ha disponible l'actualització a {serverAndVersion}.",
"Update for {app} to version %s is available." : "Hi ha disponible l'actualització a la versió %s per a {app}.",
"Update notification" : "Notificació d'actualització",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Mostra les notificacions d’actualització de Nextcloud i proporciona l’SSO de l’actualitzador.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versió que esteu executant ja no es manté. Assegureu-vos d’actualitzar el més aviat possible a una versió suportada.",
- "Apps missing updates" : "Les aplicacions no tenen actualitzacions",
- "View in store" : "Mostra-ho al magatzem",
- "Apps with available updates" : "Aplicacions amb actualitzacions disponibles",
- "Open updater" : "Obre l'actualitzador",
- "Download now" : "Descarrega-ho ara",
- "What's new?" : "Quines novetats hi ha?",
- "The update check is not yet finished. Please refresh the page." : "La comprovació de l’actualització encara no ha finalitzat. Si us plau, actualitzeu la pàgina.",
- "Your version is up to date." : "La vostra versió està actualitzada.",
- "A non-default update server is in use to be checked for updates:" : "Es fa servir un servidor d’actualització no predeterminat per comprovar si hi ha actualitzacions:",
- "Update channel:" : "Canal d'actualitzacions:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre podeu actualitzar a una versió més recent. Però mai no podeu baixar a una versió més estable.",
- "Notify members of the following groups about available updates:" : "Notifica als membres dels següents grups sobre les actualitzacions disponibles:",
- "Only notification for app updates are available." : "Només hi ha disponible notificacions per actualitzacions d’aplicacions.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualització seleccionat deixa obsoletes les notificacions específiques del servidor.",
- "The selected update channel does not support updates of the server." : "El canal d'actualitzacions seleccionat no admet les actualitzacions del servidor.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Hi ha una nova versió disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificat el {lastCheckedDate}",
- "Checking apps for compatible updates" : "S'estàn comprovant aplicacions per a actualitzacions compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Si us plau, assegureu-vos que en el vostre config.php no s'ha establert <samp>appstoreenabled</samp> com a fals.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No s’ha pogut connectar amb el magatzem d’aplicacions o aquest no ha retornat cap actualització. Cerqueu manualment actualitzacions o assegureu-vos que el vostre servidor tingui accés a Internet i es pugui connectar al magatzem d'aplicacions.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Totes</strong> les aplicacions tenen una actualització disponible per aquesta versió",
- "View changelog" : "Mostra el registre de canvis",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Mostra les notificacions d'actualització del Nextcloud, les actualitzacions de les aplicacions i proporciona l'SSO de l'actualitzador.",
+ "Give feedback" : "Envia un comentari",
+ "Get started" : "Comença",
+ "No changelog available" : "No hi ha cap registre de canvis disponible",
+ "What's new in {app} {version}" : "Novetats a {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Hi ha disponible una nova versió: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tingueu en compte que, després d'una versió nova, només es mostrarà l'actualització després de la primera versió menor o més endavant. Distribuïm les versions noves de manera repartida en el temps i, de vegades, ometem una versió si hi trobem problemes. Obteniu més informació sobre les actualitzacions i els canals de versions a {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Darrera comprovació: {lastCheckedDate} - Obre el registre de canvis",
+ "Checking apps for compatible versions" : "S'està comprovant si hi ha versions compatibles de les aplicacions",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assegureu-vos que el fitxer config.php no defineixi <samp>appstoreenabled</samp> com a fals.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No s'ha pogut establir la connexió a la botiga d'aplicacions o no s'ha retornat cap actualització. Cerqueu les actualitzacions manualment o assegureu-vos que el servidor tingui accés a Internet i que es pugui connectar a la botiga d'aplicacions.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Totes</strong> les aplicacions tenen una versió compatible amb aquesta versió del Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Hi ha <strong>%n</strong> aplicació que no té disponible cap versió compatible amb aquesta versió del Nextcloud.","Hi ha <strong>%n</strong> aplicacions que no tenen disponible cap versió compatible amb aquesta versió del Nextcloud."],
"Enterprise" : "Empresa",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per ús empresarial. Proporciona sempre el nivell de patch més recent, però no s'actualitzarà immediatament a la propera versió principal. Aquesta actualització es produeix quan Nextcloud GmbH ha realitzat proves i enduriments addicionals per a implementacions a gran escala i de missions crítiques. Aquest canal només està disponible per als clients i proporciona el paquet Nextcloud Enterprise.",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per a ús empresarial. Proporciona sempre els pedaços més recents, però no s'actualitzarà immediatament a la versió principal següent. Aquesta actualització es produeix quan Nextcloud GmbH ha fet proves i millores addicionals per a implementacions a gran escala i crítiques. Aquest canal només està disponible per als clients i proporciona el paquet Nextcloud Enterprise.",
"Stable" : "Estable",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versió estable més recent. És adequat per un ús normal i sempre s'actualitzarà a la versió més recent.",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versió estable més recent. És adequada per a un ús normal i sempre s'actualitzarà a la versió principal més recent.",
"Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Una versió prèvia a la publicació només per provar noves funcions, no per a entorns de producció.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicació no té cap actualització disponible per aquesta versió.","<strong>%n</strong> aplicacions no tenen cap actualització disponible per aquesta versió."],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Tingueu en compte que després d'un nou llançament, pot trigar un temps abans que aparegui aquí. Despleguem noves versions distribuïdes amb el temps als nostres usuaris i, de vegades, ometem una versió quan es detecten problemes."
+ "A pre-release version only for testing new features, not for production environments." : "Una versió preliminar només per a provar característiques noves, no per a entorns de producció.",
+ "Update" : "Actualització",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versió que esteu executant ja no es manté. Assegureu-vos d’actualitzar com més aviat millor a una versió admesa.",
+ "Apps missing compatible version" : "Aplicacions sense cap versió compatible",
+ "View in store" : "Mostra-ho a la botiga",
+ "Apps with compatible version" : "Aplicacions amb una versió compatible",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Tingueu en compte que no es recomana l'actualitzador web amb més de 100 comptes. Utilitzeu l'actualitzador de la línia d'ordres.",
+ "Open updater" : "Obre l'actualitzador",
+ "Download now" : "Baixa-ho ara",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "L'actualitzador web està inhabilitat. Utilitzeu l'actualitzador de línia d'ordres o el mecanisme d'actualització adequat per al vostre mètode d'instal·lació (p. ex., Docker pull) per a actualitzar.",
+ "What's new?" : "Quines novetats hi ha?",
+ "View changelog" : "Mostra el registre de canvis",
+ "The update check is not yet finished. Please refresh the page." : "La comprovació d'actualitzacions encara no ha finalitzat. Actualitzeu la pàgina.",
+ "Your version is up to date." : "Teniu la versió més recent.",
+ "A non-default update server is in use to be checked for updates:" : "S'utilitza un servidor d'actualitzacions diferent del servidor per defecte per a comprovar si hi ha actualitzacions:",
+ "Update channel" : "Canal d'actualitzacions",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Canviar de canal d'actualitzacions també afecta la pàgina d'administració d'aplicacions. Per exemple, després de canviar al canal beta, se us oferiran actualitzacions d'aplicacions beta a la pàgina d'administració d'aplicacions.",
+ "Current update channel:" : "Canal d'actualitzacions actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre podeu actualitzar a una versió més recent, però no podeu tornar mai a una versió anterior més estable.",
+ "Notify members of the following groups about available updates:" : "Notifica els membres dels grups següents sobre les actualitzacions disponibles:",
+ "No groups" : "No hi ha cap grup",
+ "Only notifications for app updates are available." : "Només hi ha disponibles notificacions per a actualitzacions d'aplicacions.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualitzacions seleccionat deixa obsoletes les notificacions específiques del servidor.",
+ "The selected update channel does not support updates of the server." : "El canal d'actualitzacions seleccionat no admet les actualitzacions del servidor.",
+ "Changelog for app {app}" : "Registre de canvis de l'aplicació {app}",
+ "What's new in {app} version {version}" : "Novetats de la versió {version} de {app}",
+ "{version} is available. Get more information on how to update." : "{version} ja està disponible. Obteniu més informació sobre com aplicar l'actualització."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/cs.js b/apps/updatenotification/l10n/cs.js
index 6cf18618fe9..e28c7c220c0 100644
--- a/apps/updatenotification/l10n/cs.js
+++ b/apps/updatenotification/l10n/cs.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Je k dispozici {version}. Přečtěte informace o tom, jak aktualizovat.",
"Channel updated" : "Kanál aktualizován",
+ "Web updater is disabled" : "Nástroj pro aktualizaci přes webové rozhraní je vypnutý",
+ "App updated" : "Aplikace zaktualizována",
+ "See what's new" : "Zjistěte, co je nového",
+ "{app} updated to version {version}" : "{app} zaktualizováno na verzi {version}",
"Update notifications" : "Upozorňování na aktualizace",
"The update server could not be reached since %d days to check for new updates." : "Aktualizační server nebyl %d dní dosažitelný pro kontrolu aktualizací.",
"Please check the Nextcloud and server log files for errors." : "Podívejte se po chybách v záznamu událostí Nextcloud a serveru.",
- "Update to %1$s is available." : "Je dostupná aktualizace na %1$s.",
- "Update for %1$s to version %2$s is available." : "Je dostupná aktualizace pro %1$s na verzi %2$s.",
+ "Update to {serverAndVersion} is available." : "Je k dispozici aktualizace na {serverAndVersion}.",
"Update for {app} to version %s is available." : "Pro {app} je dostupná aktualizace na verzi %s.",
"Update notification" : "Upozornění na aktualizaci",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Zobrazí upozornění na aktualizace pro Nextcloud a poskytuje sjednocené přihlašování pro nástroj pro provedení aktualizace.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Zobrazí upozornění na aktualizace pro Nextcloud, aplikace a poskytuje sjednocené přihlašování pro nástroj pro provedení aktualizace.",
+ "Give feedback" : "Dát zpětnou vazbu",
+ "Get started" : "Začněte",
+ "No changelog available" : "Není k dispozici žádný soupis změn",
+ "What's new in {app} {version}" : "Co je nového v {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Je k dispozici nová verze: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Můžete si všimnout, že po vydání nové verze se aktualizace objeví až po vydání první opravné aktualizace. Nové verze totiž distribuujeme mezi uživatele postupně – a občas, pokud jsou nalezeny chyby, danou verzi i přeskočíme. Zjistěte více o aktualizacích a kanálech aktualizací kliknutím na {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Zkontrolováno {lastCheckedDate} – otevřít seznam změn",
+ "Checking apps for compatible versions" : "Kontrola kompatibilních verzí aplikací",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ověřte, že v souboru s nastaveními config.php není volba <samp>appstoreenabled</samp> nastavena na hodnotu false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nedaří se spojit s katalogem aplikací nebo tento nevrátil vůbec žádné aktualizace. Vyhledejte aktualizace ručně nebo ověřte, zda má váš server přístup k Internetu a může se spojit s katalogem.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Všechny</strong> aplikace mají k dispozici kompatibilní verzi s verzí tohoto Nextcloud serveru.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplikace nemá kompatibilní verzi pro tuto verzi Nextcloud serveru.","<strong>%n</strong> aplikace nemají kompatibilní verzi pro tuto verzi Nextcloud serveru.","<strong>%n</strong>aplikací nemá kompatibilní verzi pro tuto verzi Nextcloud serveru.","<strong>%n</strong> aplikace nemají kompatibilní verzi pro tuto verzi Nextcloud serveru."],
+ "Enterprise" : "Podnikové",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pro podnikové nasazení. Poskytuje vždy nejnovější opravy, ale nebude hned aktualizováno na další hlavní vydání. K tomu dochází až když Nextcloud GmbH dokončí další zodolnění a testování pro rozsáhlá a kritická nasazení. Tento kanál je k dispozici pouze zákazníkům a poskytuje balíček Nextcloud Enterprise.",
+ "Stable" : "Stabilní",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Nejnovější stabilní verze. Je vhodná pro běžné používání a vždy ji lze aktualizovat na nejnovější hlavní verzi",
+ "Beta" : "Vývojové",
+ "A pre-release version only for testing new features, not for production environments." : "Předprodukční verze, pouze pro zkoušení nových funkcí, není určeno pro praktické nasazení.",
+ "Update" : "Aktualizovat",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Verze, kterou provozujete, už není udržovaná. Aktualizujte co nejdříve na podporovanou verzi.",
- "Apps missing updates" : "Aplikace s chybějícími aktualizacemi",
- "View in store" : "Zobrazit v instalačním katalogu",
- "Apps with available updates" : "Aplikace s dostupnými aktualizacemi",
+ "Apps missing compatible version" : "Aplikace, které neexistují v kompatibilní verzi",
+ "View in store" : "Zobrazit v katalogu aplikací",
+ "Apps with compatible version" : "Aplikace, které existují v kompatibilní verzi",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Prosím mějte na paměti, že pro instance s více než 100 účty není doporučeno aktualizovat přes webový nástroj pro aktualizaci! V takovém případě namísto toho proveďte aktualizaci prostřednictvím příkazového řádku!",
"Open updater" : "Otevřít nástroj pro aktualizaci",
"Download now" : "Stáhnout nyní",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Webový nástroj pro aktualizování je vypnutý. Pro aktualizaci použijte ten pro příkazový řádek nebo příslušný mechanizmus aktualizace pro metodu, kterou jste nainstalovali (např. Docker pull).",
"What's new?" : "Co je nového?",
+ "View changelog" : "Zobrazit souhrn změn",
"The update check is not yet finished. Please refresh the page." : "Kontrola aktualizací ještě neskončila. Načtěte stránku znovu.",
"Your version is up to date." : "Používáte nejnovější verzi.",
"A non-default update server is in use to be checked for updates:" : "Pro kontrolu aktualizací se používá jiný než výchozí server:",
- "Update channel:" : "Kanál aktualizací:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Vždy je možné přejít na novější verzi. Poté už se ale nelze vrátit zpět ke starší verzi ze stabilnějšímu kanálu.",
+ "Update channel" : "Kanál aktualizací",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Změna kanálu aktualizací se projeví také na stránce pro správu aplikací. Např. po přepnutí kanálu na beta (testování před vydáním), budou zde nabízeny také aktualizace na testovací verze aplikací.",
+ "Current update channel:" : "Stávající kanál aktualizací:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Vždy je možné přejít na novější verzi. Poté už se ale nelze vrátit zpět ke starší verzi ze stabilního kanálu.",
"Notify members of the following groups about available updates:" : "Upozorňovat členy následujících skupin na dostupnost aktualizací:",
- "Only notification for app updates are available." : "K dispozici jsou upozornění pouze na aktualizace aplikací.",
+ "No groups" : "Žádné skupiny",
+ "Only notifications for app updates are available." : "K dispozici jsou upozornění pouze na aktualizace aplikací.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Pro zvolený kanál aktualizací se už vyhrazená upozorňování pro server nepoužívají.",
"The selected update channel does not support updates of the server." : "Vybraný kanál aktualizací nepodporuje aktualizace serveru.",
- "A new version is available: <strong>{newVersionString}</strong>" : "K dispozici je nová verze: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Můžete si všimnout, že po vydání nové verze se aktualizace objeví až po vydání první opravné aktualizace. Nové verze totiž distribuujeme mezi uživatele postupně a občas, pokud jsou nalezeny chyby, danou verzi i přeskočíme. Zjištěte více o aktualizacích a kanálech aktualizací kliknutím na {link}",
- "Checked on {lastCheckedDate}" : "Zkontrolováno {lastCheckedDate}",
- "Checking apps for compatible updates" : "Zjišťuje se dostupnost kompatibilních aktualizací aplikací",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ověřte, že v souboru s nastaveními config.php není volba <samp>appstoreenabled</samp> nastavena na hodnotu false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nedaří se spojit s katalogem aplikací nebo tento nevrátil vůbec žádné aktualizace. Vyhledejte aktualizace ručně nebo ověřte, zda má váš server přístup k Internetu a může se spojit s katalogem.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Všehny</strong> aplikace mají k dispozici aktualizaci pro tuto verzi",
- "View changelog" : "Zobrazit souhrn změn",
- "Enterprise" : "Podnikové",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pro podnikové nasazení. Poskytuje vždy nejnovější opravy, ale nebude hned aktualizováno na další hlavní vydání. K tomu dojde až Nextcloud GmbH dokončí další zodolnění a testování pro velká a kritická nasazení. Tento kanál je k dispozici pouze zákazníkům a poskytuje balíček Nextcloud Enterprise.",
- "Stable" : "Stabilní",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Nejnovější stabilní verze. Je vhodná pro běžné používání a vždy ji lze aktualizovat na nejnovější hlavní verzi",
- "Beta" : "Vývojové",
- "A pre-release version only for testing new features, not for production environments." : "Předprodukční verze, pouze pro zkoušení nových funkcí, není určeno pro praktické nasazení.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikace nemá k dispozici aktualizaci na tuto verzi","<strong>%n</strong> aplikace nemají k dispozici aktualizaci na tuto verzi","<strong>%n</strong> aplikací nemá k dispozici aktualizaci na tuto verzi","<strong>%n</strong> aplikace nemají k dispozici aktualizaci na tuto verzi"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Všimněte si, že po vydání nové verze může chvíli trvat, než se zde objeví. Nové verze totiž distribuujeme mezi uživatele postupně a pokud jsou nalezeny problémy, někdy danou verzi přeskočíme."
+ "Changelog for app {app}" : "Soupis změn v aplikaci {app}",
+ "What's new in {app} version {version}" : "Co je nového v {app} verze {version}",
+ "{version} is available. Get more information on how to update." : "Je k dispozici {version}. Přečtěte si informace o tom, jak aktualizovat."
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
diff --git a/apps/updatenotification/l10n/cs.json b/apps/updatenotification/l10n/cs.json
index 00633fb1557..b93c70348e5 100644
--- a/apps/updatenotification/l10n/cs.json
+++ b/apps/updatenotification/l10n/cs.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Je k dispozici {version}. Přečtěte informace o tom, jak aktualizovat.",
"Channel updated" : "Kanál aktualizován",
+ "Web updater is disabled" : "Nástroj pro aktualizaci přes webové rozhraní je vypnutý",
+ "App updated" : "Aplikace zaktualizována",
+ "See what's new" : "Zjistěte, co je nového",
+ "{app} updated to version {version}" : "{app} zaktualizováno na verzi {version}",
"Update notifications" : "Upozorňování na aktualizace",
"The update server could not be reached since %d days to check for new updates." : "Aktualizační server nebyl %d dní dosažitelný pro kontrolu aktualizací.",
"Please check the Nextcloud and server log files for errors." : "Podívejte se po chybách v záznamu událostí Nextcloud a serveru.",
- "Update to %1$s is available." : "Je dostupná aktualizace na %1$s.",
- "Update for %1$s to version %2$s is available." : "Je dostupná aktualizace pro %1$s na verzi %2$s.",
+ "Update to {serverAndVersion} is available." : "Je k dispozici aktualizace na {serverAndVersion}.",
"Update for {app} to version %s is available." : "Pro {app} je dostupná aktualizace na verzi %s.",
"Update notification" : "Upozornění na aktualizaci",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Zobrazí upozornění na aktualizace pro Nextcloud a poskytuje sjednocené přihlašování pro nástroj pro provedení aktualizace.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Zobrazí upozornění na aktualizace pro Nextcloud, aplikace a poskytuje sjednocené přihlašování pro nástroj pro provedení aktualizace.",
+ "Give feedback" : "Dát zpětnou vazbu",
+ "Get started" : "Začněte",
+ "No changelog available" : "Není k dispozici žádný soupis změn",
+ "What's new in {app} {version}" : "Co je nového v {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Je k dispozici nová verze: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Můžete si všimnout, že po vydání nové verze se aktualizace objeví až po vydání první opravné aktualizace. Nové verze totiž distribuujeme mezi uživatele postupně – a občas, pokud jsou nalezeny chyby, danou verzi i přeskočíme. Zjistěte více o aktualizacích a kanálech aktualizací kliknutím na {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Zkontrolováno {lastCheckedDate} – otevřít seznam změn",
+ "Checking apps for compatible versions" : "Kontrola kompatibilních verzí aplikací",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ověřte, že v souboru s nastaveními config.php není volba <samp>appstoreenabled</samp> nastavena na hodnotu false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nedaří se spojit s katalogem aplikací nebo tento nevrátil vůbec žádné aktualizace. Vyhledejte aktualizace ručně nebo ověřte, zda má váš server přístup k Internetu a může se spojit s katalogem.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Všechny</strong> aplikace mají k dispozici kompatibilní verzi s verzí tohoto Nextcloud serveru.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplikace nemá kompatibilní verzi pro tuto verzi Nextcloud serveru.","<strong>%n</strong> aplikace nemají kompatibilní verzi pro tuto verzi Nextcloud serveru.","<strong>%n</strong>aplikací nemá kompatibilní verzi pro tuto verzi Nextcloud serveru.","<strong>%n</strong> aplikace nemají kompatibilní verzi pro tuto verzi Nextcloud serveru."],
+ "Enterprise" : "Podnikové",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pro podnikové nasazení. Poskytuje vždy nejnovější opravy, ale nebude hned aktualizováno na další hlavní vydání. K tomu dochází až když Nextcloud GmbH dokončí další zodolnění a testování pro rozsáhlá a kritická nasazení. Tento kanál je k dispozici pouze zákazníkům a poskytuje balíček Nextcloud Enterprise.",
+ "Stable" : "Stabilní",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Nejnovější stabilní verze. Je vhodná pro běžné používání a vždy ji lze aktualizovat na nejnovější hlavní verzi",
+ "Beta" : "Vývojové",
+ "A pre-release version only for testing new features, not for production environments." : "Předprodukční verze, pouze pro zkoušení nových funkcí, není určeno pro praktické nasazení.",
+ "Update" : "Aktualizovat",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Verze, kterou provozujete, už není udržovaná. Aktualizujte co nejdříve na podporovanou verzi.",
- "Apps missing updates" : "Aplikace s chybějícími aktualizacemi",
- "View in store" : "Zobrazit v instalačním katalogu",
- "Apps with available updates" : "Aplikace s dostupnými aktualizacemi",
+ "Apps missing compatible version" : "Aplikace, které neexistují v kompatibilní verzi",
+ "View in store" : "Zobrazit v katalogu aplikací",
+ "Apps with compatible version" : "Aplikace, které existují v kompatibilní verzi",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Prosím mějte na paměti, že pro instance s více než 100 účty není doporučeno aktualizovat přes webový nástroj pro aktualizaci! V takovém případě namísto toho proveďte aktualizaci prostřednictvím příkazového řádku!",
"Open updater" : "Otevřít nástroj pro aktualizaci",
"Download now" : "Stáhnout nyní",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Webový nástroj pro aktualizování je vypnutý. Pro aktualizaci použijte ten pro příkazový řádek nebo příslušný mechanizmus aktualizace pro metodu, kterou jste nainstalovali (např. Docker pull).",
"What's new?" : "Co je nového?",
+ "View changelog" : "Zobrazit souhrn změn",
"The update check is not yet finished. Please refresh the page." : "Kontrola aktualizací ještě neskončila. Načtěte stránku znovu.",
"Your version is up to date." : "Používáte nejnovější verzi.",
"A non-default update server is in use to be checked for updates:" : "Pro kontrolu aktualizací se používá jiný než výchozí server:",
- "Update channel:" : "Kanál aktualizací:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Vždy je možné přejít na novější verzi. Poté už se ale nelze vrátit zpět ke starší verzi ze stabilnějšímu kanálu.",
+ "Update channel" : "Kanál aktualizací",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Změna kanálu aktualizací se projeví také na stránce pro správu aplikací. Např. po přepnutí kanálu na beta (testování před vydáním), budou zde nabízeny také aktualizace na testovací verze aplikací.",
+ "Current update channel:" : "Stávající kanál aktualizací:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Vždy je možné přejít na novější verzi. Poté už se ale nelze vrátit zpět ke starší verzi ze stabilního kanálu.",
"Notify members of the following groups about available updates:" : "Upozorňovat členy následujících skupin na dostupnost aktualizací:",
- "Only notification for app updates are available." : "K dispozici jsou upozornění pouze na aktualizace aplikací.",
+ "No groups" : "Žádné skupiny",
+ "Only notifications for app updates are available." : "K dispozici jsou upozornění pouze na aktualizace aplikací.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Pro zvolený kanál aktualizací se už vyhrazená upozorňování pro server nepoužívají.",
"The selected update channel does not support updates of the server." : "Vybraný kanál aktualizací nepodporuje aktualizace serveru.",
- "A new version is available: <strong>{newVersionString}</strong>" : "K dispozici je nová verze: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Můžete si všimnout, že po vydání nové verze se aktualizace objeví až po vydání první opravné aktualizace. Nové verze totiž distribuujeme mezi uživatele postupně a občas, pokud jsou nalezeny chyby, danou verzi i přeskočíme. Zjištěte více o aktualizacích a kanálech aktualizací kliknutím na {link}",
- "Checked on {lastCheckedDate}" : "Zkontrolováno {lastCheckedDate}",
- "Checking apps for compatible updates" : "Zjišťuje se dostupnost kompatibilních aktualizací aplikací",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ověřte, že v souboru s nastaveními config.php není volba <samp>appstoreenabled</samp> nastavena na hodnotu false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nedaří se spojit s katalogem aplikací nebo tento nevrátil vůbec žádné aktualizace. Vyhledejte aktualizace ručně nebo ověřte, zda má váš server přístup k Internetu a může se spojit s katalogem.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Všehny</strong> aplikace mají k dispozici aktualizaci pro tuto verzi",
- "View changelog" : "Zobrazit souhrn změn",
- "Enterprise" : "Podnikové",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pro podnikové nasazení. Poskytuje vždy nejnovější opravy, ale nebude hned aktualizováno na další hlavní vydání. K tomu dojde až Nextcloud GmbH dokončí další zodolnění a testování pro velká a kritická nasazení. Tento kanál je k dispozici pouze zákazníkům a poskytuje balíček Nextcloud Enterprise.",
- "Stable" : "Stabilní",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Nejnovější stabilní verze. Je vhodná pro běžné používání a vždy ji lze aktualizovat na nejnovější hlavní verzi",
- "Beta" : "Vývojové",
- "A pre-release version only for testing new features, not for production environments." : "Předprodukční verze, pouze pro zkoušení nových funkcí, není určeno pro praktické nasazení.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikace nemá k dispozici aktualizaci na tuto verzi","<strong>%n</strong> aplikace nemají k dispozici aktualizaci na tuto verzi","<strong>%n</strong> aplikací nemá k dispozici aktualizaci na tuto verzi","<strong>%n</strong> aplikace nemají k dispozici aktualizaci na tuto verzi"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Všimněte si, že po vydání nové verze může chvíli trvat, než se zde objeví. Nové verze totiž distribuujeme mezi uživatele postupně a pokud jsou nalezeny problémy, někdy danou verzi přeskočíme."
+ "Changelog for app {app}" : "Soupis změn v aplikaci {app}",
+ "What's new in {app} version {version}" : "Co je nového v {app} verze {version}",
+ "{version} is available. Get more information on how to update." : "Je k dispozici {version}. Přečtěte si informace o tom, jak aktualizovat."
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/cs_CZ.js b/apps/updatenotification/l10n/cs_CZ.js
deleted file mode 100644
index b8fcc5a8e92..00000000000
--- a/apps/updatenotification/l10n/cs_CZ.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Aktualizovat upozornění",
- "Could not start updater, please try the manual update" : "Nepodařilo se spustit aktualizátor, zkuste ruční aktualizaci",
- "{version} is available. Get more information on how to update." : "Je dostupná {version}. Přečtěte si více informací jak aktualizovat.",
- "Channel updated" : "Kanál aktualizován",
- "Update to %1$s is available." : "Je dostupná aktualizace na %1$s.",
- "Update for %1$s to version %2$s is available." : "Je dostupná aktualizace pro %1$s na verzi %2$s.",
- "Update for {app} to version %s is available." : "Pro {app} je dostupná aktualizace na verzi %s.",
- "A new version is available: %s" : "Je dostupná nová verze: %s",
- "Open updater" : "Otevřít aktualizátor",
- "Download now" : "Stáhnout nyní",
- "Your version is up to date." : "Používáte nejnovější verzi.",
- "Checked on %s" : "Zkontrolováno %s",
- "Update channel:" : "Aktualizovat kanál:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Vždy můžete aktualizovat na novější verzi / experimentální kanál. Poté ale nelze nikdy provést downgrade zpět na nižší stabilní kanál.",
- "Notify members of the following groups about available updates:" : "Upozorňovat členy následujících skupin na dostupné aktualizace:",
- "Only notification for app updates are available." : "Je možné pouze upozornění na dostupné aktualizace aplikací.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Zvolený kanál aktualizací označuje dedikovaná upozornění pro server za zastaralá.",
- "The selected update channel does not support updates of the server." : "Vybraný kanál aktualizací nepodporuje aktualizace serveru.",
- "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "Provozujete PHP %s. Abyste mohl provozovat Nextcloud 11 a vyšší, musíte mít aspoň PHP 5.6. Přijímat oznámení o těchto novějších verzích budete moct až po aktualizaci verze PHP."
-},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/cs_CZ.json b/apps/updatenotification/l10n/cs_CZ.json
deleted file mode 100644
index cdb176f8d0f..00000000000
--- a/apps/updatenotification/l10n/cs_CZ.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Update notifications" : "Aktualizovat upozornění",
- "Could not start updater, please try the manual update" : "Nepodařilo se spustit aktualizátor, zkuste ruční aktualizaci",
- "{version} is available. Get more information on how to update." : "Je dostupná {version}. Přečtěte si více informací jak aktualizovat.",
- "Channel updated" : "Kanál aktualizován",
- "Update to %1$s is available." : "Je dostupná aktualizace na %1$s.",
- "Update for %1$s to version %2$s is available." : "Je dostupná aktualizace pro %1$s na verzi %2$s.",
- "Update for {app} to version %s is available." : "Pro {app} je dostupná aktualizace na verzi %s.",
- "A new version is available: %s" : "Je dostupná nová verze: %s",
- "Open updater" : "Otevřít aktualizátor",
- "Download now" : "Stáhnout nyní",
- "Your version is up to date." : "Používáte nejnovější verzi.",
- "Checked on %s" : "Zkontrolováno %s",
- "Update channel:" : "Aktualizovat kanál:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Vždy můžete aktualizovat na novější verzi / experimentální kanál. Poté ale nelze nikdy provést downgrade zpět na nižší stabilní kanál.",
- "Notify members of the following groups about available updates:" : "Upozorňovat členy následujících skupin na dostupné aktualizace:",
- "Only notification for app updates are available." : "Je možné pouze upozornění na dostupné aktualizace aplikací.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Zvolený kanál aktualizací označuje dedikovaná upozornění pro server za zastaralá.",
- "The selected update channel does not support updates of the server." : "Vybraný kanál aktualizací nepodporuje aktualizace serveru.",
- "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "Provozujete PHP %s. Abyste mohl provozovat Nextcloud 11 a vyšší, musíte mít aspoň PHP 5.6. Přijímat oznámení o těchto novějších verzích budete moct až po aktualizaci verze PHP."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/da.js b/apps/updatenotification/l10n/da.js
index b32f1b2643f..b7197785ddb 100644
--- a/apps/updatenotification/l10n/da.js
+++ b/apps/updatenotification/l10n/da.js
@@ -1,28 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer.",
"Channel updated" : "Kanal opdateret",
+ "Web updater is disabled" : "Webopdatering er deaktiveret",
+ "App updated" : "App opdateret",
+ "See what's new" : "Se hvad der er nyt",
+ "{app} updated to version {version}" : "{app} opdateret til version {version}",
"Update notifications" : "Opdaterings notifikationer",
"The update server could not be reached since %d days to check for new updates." : "Har ikke været forbundet til opdateringsserveren i %d dage for at tjekke efter nye opdateringer.",
"Please check the Nextcloud and server log files for errors." : "Tjek venligst Nextcloud server log for fejl.",
- "Update to %1$s is available." : "Opdatering til %1$s er tilgængelig.",
- "Update for %1$s to version %2$s is available." : "Opdatering af %1$s til version %2$s er tilgængelig.",
+ "Update to {serverAndVersion} is available." : "Opdatering til {serverAndVersion} er tilgængelig.",
"Update for {app} to version %s is available." : "Opdatering af {app} til version %s er tilgængelig.",
+ "Update notification" : "Opdaterings notifikation",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Viser opdateringsnotifikationer til Nextcloud, app opdateringer og leverer SSO for opdateren.",
+ "Give feedback" : "Giv feedback",
+ "Get started" : "Kom i gang",
+ "No changelog available" : "Ingen ændringslog tilgængelig",
+ "What's new in {app} {version}" : "Hvad er nyt i {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "En ny version er tilgængelig: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Bemærk at efter en ny udgivelse, så vil opdateringen kun vises efter en den første mindre udgivelse eller senere. Vi ruller nye versioner ud, spredt over tid og nogle gange springer vi en version over, hvis der opdages problemer. Lære mere om opdateringer og udgivelseskanaler på {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Kontrolleret den {lastCheckedDate} - Åben ændringslog",
+ "Checking apps for compatible versions" : "Kontrollere apps for kompatible versioner",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Vær venligst sikker på at din config.php ikke sætter <samp>appstoreenabled</samp> til falsk.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kunne ikke forbinde til App Store, eller der er ikke returneret nogle opdateringer overhovedet. Søg manuelt efter opdateringer for at være sikker på at din server har adgang til internettet og kan forbinde til App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Alle</strong> apps har en kompatibel version til denne Nextcloud version, tilgængelig.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app har igen tilgængelig kompatibel version til denne Nextcloud version.","<strong>%n</strong> apps kar ingen kompatibel version tilgængelig, til denne Nextcloud version."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Til enterprise anvendelse. Leverer altid det seneste patch niveau, men vil ikke straks opdatere til den næste større udgivelse. Den opdatering sker først når Nextcloud GmbH har foretaget yderligere sikring og testning for storskala og missionskritiske udrulninger. Denne kanal er kun tilgængelig for kunder og leverer Nextcloud Enterprise pakken.",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den seneste stabile version. Den er passende for regulær anvendelse og vil altid opdatere til den seneste større version.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "En præudgivelses version der kun er til test af nye funktionaliteter. Ikke til produktionsmiljøer.",
+ "Update" : "Opdater",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Den version du kører er ikke vedligeholdt længere. Vær venligst sikker på at du opdaterer til en understøttet version, så hurtigt som muligt.",
+ "Apps missing compatible version" : "Apps mangler kompatibel version",
"View in store" : "Se i butik",
- "Apps with available updates" : "Apps med opdateringer",
+ "Apps with compatible version" : "Apps med kompatibel version",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Vær venligst opmærksom på at webopdatereren ikke anbefales ved mere end 100 konti! Anvend venligst kommandolinje opdatereren i stedet!",
"Open updater" : "Åbn for opdatering",
"Download now" : "Hent nu",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Webopdaterer er deaktiveret. Anvend venligst kommandolinje opdatereren eller den passende opdateringsmekanisme til din installationsmetode (fx Docker pull) for at opdatere.",
+ "What's new?" : "Hvad er nyt?",
+ "View changelog" : "Se ændringslog",
"The update check is not yet finished. Please refresh the page." : "Opdateringstjek er ikke færdigt. Genindlæs venligst siden.",
"Your version is up to date." : "Du har seneste version.",
"A non-default update server is in use to be checked for updates:" : "En ikke standard opdateringsserver bliver brugt for at tjekke efter opdateringer:",
- "Update channel:" : "Opdatér kanal:",
+ "Update channel" : "Opdateringskanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Ændring af opdateringskanalen kan også påvirke app administrationssiden. Fx efter skift til beta kanal, så vil beta opdateringer til apps blive tilbudt via app administrationssiden.",
+ "Current update channel:" : "Aktuel opdateringskanal:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Du kan altid opdatere til en nyere version. Men du kan aldrig nedgradere til en mere stabil version.",
"Notify members of the following groups about available updates:" : "Meddel brugere fra følgende gruppe om tilgængelige opdateringer: ",
- "Only notification for app updates are available." : "Kun notifikation for app opdateringer tilgængelige.",
+ "No groups" : "Ingen grupper",
+ "Only notifications for app updates are available." : "Kun notifikationer for app opdateringer er tilgængelige.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Den valgte kanal lave dedikerede notifikationer for serveren ligegyldige.",
"The selected update channel does not support updates of the server." : "Den valgte opdateringskanal understøtter ikke opdatering af serveren.",
- "View changelog" : "Se ændringslog",
- "Beta" : "Beta",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Bemærk at efter en ny udgivelse kan det tage noget tid før den bliver vist her. Vi udruller nye opdateringer spredt ud og nogle gange springer man versioner over hvis der bliver fundet fejl i dem."
+ "Changelog for app {app}" : "Ændringslog for app {app}",
+ "What's new in {app} version {version}" : "Hvad er nyt i {app} version {version}",
+ "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/da.json b/apps/updatenotification/l10n/da.json
index f08460c4a6a..e3ddea2d04b 100644
--- a/apps/updatenotification/l10n/da.json
+++ b/apps/updatenotification/l10n/da.json
@@ -1,26 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer.",
"Channel updated" : "Kanal opdateret",
+ "Web updater is disabled" : "Webopdatering er deaktiveret",
+ "App updated" : "App opdateret",
+ "See what's new" : "Se hvad der er nyt",
+ "{app} updated to version {version}" : "{app} opdateret til version {version}",
"Update notifications" : "Opdaterings notifikationer",
"The update server could not be reached since %d days to check for new updates." : "Har ikke været forbundet til opdateringsserveren i %d dage for at tjekke efter nye opdateringer.",
"Please check the Nextcloud and server log files for errors." : "Tjek venligst Nextcloud server log for fejl.",
- "Update to %1$s is available." : "Opdatering til %1$s er tilgængelig.",
- "Update for %1$s to version %2$s is available." : "Opdatering af %1$s til version %2$s er tilgængelig.",
+ "Update to {serverAndVersion} is available." : "Opdatering til {serverAndVersion} er tilgængelig.",
"Update for {app} to version %s is available." : "Opdatering af {app} til version %s er tilgængelig.",
+ "Update notification" : "Opdaterings notifikation",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Viser opdateringsnotifikationer til Nextcloud, app opdateringer og leverer SSO for opdateren.",
+ "Give feedback" : "Giv feedback",
+ "Get started" : "Kom i gang",
+ "No changelog available" : "Ingen ændringslog tilgængelig",
+ "What's new in {app} {version}" : "Hvad er nyt i {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "En ny version er tilgængelig: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Bemærk at efter en ny udgivelse, så vil opdateringen kun vises efter en den første mindre udgivelse eller senere. Vi ruller nye versioner ud, spredt over tid og nogle gange springer vi en version over, hvis der opdages problemer. Lære mere om opdateringer og udgivelseskanaler på {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Kontrolleret den {lastCheckedDate} - Åben ændringslog",
+ "Checking apps for compatible versions" : "Kontrollere apps for kompatible versioner",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Vær venligst sikker på at din config.php ikke sætter <samp>appstoreenabled</samp> til falsk.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kunne ikke forbinde til App Store, eller der er ikke returneret nogle opdateringer overhovedet. Søg manuelt efter opdateringer for at være sikker på at din server har adgang til internettet og kan forbinde til App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Alle</strong> apps har en kompatibel version til denne Nextcloud version, tilgængelig.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app har igen tilgængelig kompatibel version til denne Nextcloud version.","<strong>%n</strong> apps kar ingen kompatibel version tilgængelig, til denne Nextcloud version."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Til enterprise anvendelse. Leverer altid det seneste patch niveau, men vil ikke straks opdatere til den næste større udgivelse. Den opdatering sker først når Nextcloud GmbH har foretaget yderligere sikring og testning for storskala og missionskritiske udrulninger. Denne kanal er kun tilgængelig for kunder og leverer Nextcloud Enterprise pakken.",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den seneste stabile version. Den er passende for regulær anvendelse og vil altid opdatere til den seneste større version.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "En præudgivelses version der kun er til test af nye funktionaliteter. Ikke til produktionsmiljøer.",
+ "Update" : "Opdater",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Den version du kører er ikke vedligeholdt længere. Vær venligst sikker på at du opdaterer til en understøttet version, så hurtigt som muligt.",
+ "Apps missing compatible version" : "Apps mangler kompatibel version",
"View in store" : "Se i butik",
- "Apps with available updates" : "Apps med opdateringer",
+ "Apps with compatible version" : "Apps med kompatibel version",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Vær venligst opmærksom på at webopdatereren ikke anbefales ved mere end 100 konti! Anvend venligst kommandolinje opdatereren i stedet!",
"Open updater" : "Åbn for opdatering",
"Download now" : "Hent nu",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Webopdaterer er deaktiveret. Anvend venligst kommandolinje opdatereren eller den passende opdateringsmekanisme til din installationsmetode (fx Docker pull) for at opdatere.",
+ "What's new?" : "Hvad er nyt?",
+ "View changelog" : "Se ændringslog",
"The update check is not yet finished. Please refresh the page." : "Opdateringstjek er ikke færdigt. Genindlæs venligst siden.",
"Your version is up to date." : "Du har seneste version.",
"A non-default update server is in use to be checked for updates:" : "En ikke standard opdateringsserver bliver brugt for at tjekke efter opdateringer:",
- "Update channel:" : "Opdatér kanal:",
+ "Update channel" : "Opdateringskanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Ændring af opdateringskanalen kan også påvirke app administrationssiden. Fx efter skift til beta kanal, så vil beta opdateringer til apps blive tilbudt via app administrationssiden.",
+ "Current update channel:" : "Aktuel opdateringskanal:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Du kan altid opdatere til en nyere version. Men du kan aldrig nedgradere til en mere stabil version.",
"Notify members of the following groups about available updates:" : "Meddel brugere fra følgende gruppe om tilgængelige opdateringer: ",
- "Only notification for app updates are available." : "Kun notifikation for app opdateringer tilgængelige.",
+ "No groups" : "Ingen grupper",
+ "Only notifications for app updates are available." : "Kun notifikationer for app opdateringer er tilgængelige.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Den valgte kanal lave dedikerede notifikationer for serveren ligegyldige.",
"The selected update channel does not support updates of the server." : "Den valgte opdateringskanal understøtter ikke opdatering af serveren.",
- "View changelog" : "Se ændringslog",
- "Beta" : "Beta",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Bemærk at efter en ny udgivelse kan det tage noget tid før den bliver vist her. Vi udruller nye opdateringer spredt ud og nogle gange springer man versioner over hvis der bliver fundet fejl i dem."
+ "Changelog for app {app}" : "Ændringslog for app {app}",
+ "What's new in {app} version {version}" : "Hvad er nyt i {app} version {version}",
+ "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/de.js b/apps/updatenotification/l10n/de.js
index f2e89a2f812..cf9fcf00e7c 100644
--- a/apps/updatenotification/l10n/de.js
+++ b/apps/updatenotification/l10n/de.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Weitere Informationen zur Aktualisierung.",
"Channel updated" : "Kanal aktualisiert",
+ "Web updater is disabled" : "Der Web-Updater ist deaktiviert",
+ "App updated" : "App aktualisiert",
+ "See what's new" : "Neuigkeiten ansehen",
+ "{app} updated to version {version}" : "{app} wurde auf Version {version} aktualisiert",
"Update notifications" : "Update-Benachrichtigungen",
- "The update server could not be reached since %d days to check for new updates." : "Der Aktualisierungsserver konnte seit %d Tagen nicht erreicht werden um auf verfügbare Aktualisierungen zu prüfen.",
+ "The update server could not be reached since %d days to check for new updates." : "Der Aktualisierungsserver konnte seit %d Tagen nicht erreicht werden, um auf verfügbare Aktualisierungen zu prüfen.",
"Please check the Nextcloud and server log files for errors." : "Bitte überprüfe die Server- und Nextcloud-Logdateien auf Fehler.",
- "Update to %1$s is available." : "Aktualisierung auf %1$s ist verfügbar.",
- "Update for %1$s to version %2$s is available." : "Eine Aktualisierung von %1$s auf Version %2$s ist verfügbar.",
+ "Update to {serverAndVersion} is available." : "Aktualisierung auf {serverAndVersion} ist verfügbar.",
"Update for {app} to version %s is available." : "Eine Aktualisierung für {app} auf Version %s ist verfügbar.",
"Update notification" : "Aktualisierungs-Benachrichtigung",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Zeigt Benachrichtigungen für Aktualisierungen von Nextcloud an und bietet SSO für den Aktualisierer.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Deine installierte Version wird nicht mehr unterstützt. Bitte aktualisiere baldmöglichst auf eine unterstützte Version.",
- "Apps missing updates" : "Für diese Apps fehlen Aktualisierungen",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Zeigt Update-Benachrichtigungen für Nextcloud und App-Updates an und stellt SSO für den Updater bereit.",
+ "Give feedback" : "Feedback geben",
+ "Get started" : "Loslegen",
+ "No changelog available" : "Keine Änderungsübersicht verfügbar",
+ "What's new in {app} {version}" : "Neuigkeiten in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Eine neue Version ist verfügbar: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Beachte, dass die Aktualisierung für eine neue Version erst nach der ersten Unterversion (minor release) oder später angezeigt wird. Wir stellen im Laufe der Zeit neue Versionen zur Verfügung und überspringen manchmal eine Version, wenn Probleme auftreten. Weitere Informationen zu Update- und Release-Kanälen findest du unter {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Geprüft am {lastCheckedDate} - Änderungsübersicht öffnen",
+ "Checking apps for compatible versions" : "Es werden alle Apps auf kompatible Versionen geprüft",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte sicherstellen, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp> nicht auf \"false\" steht.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Die Verbindung zum App-Store konnte nicht aufgebaut werden oder der App-Store hat keine Apps zurück geliefert. Selbst nach Updates suchen oder sicherstellen, dass der Server Zugriff auf das Internet hat und eine Verbindung zum App-Store aufbauen kann.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "Für <strong>alle</strong> Apps steht eine kompatible Version zur Verfügung.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Für <strong>%n</strong> App steht keine kompatible Version zur Verfügung.","Für <strong>%n</strong> Apps stehen keine kompatible Versionen zur Verfügung."],
+ "Enterprise" : "Version für Unternehmen",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die neueste Hauptversion aktualisiert.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
+ "Update" : "Aktualisieren",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Die installierte Version wird nicht mehr unterstützt. Bitte baldmöglichst auf eine unterstützte Version aktualisieren.",
+ "Apps missing compatible version" : "Für diese Apps fehlen kompatible Versionen",
"View in store" : "Im Store anzeigen",
- "Apps with available updates" : "Für diese Apps gibt es Aktualisierungen",
+ "Apps with compatible version" : "Für diese Apps gibt es kompatible Versionen",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Bitte beachten, dass der Web Updater bei mehr als 100 Konten nicht empfohlen wird! Bitte stattdessen den Befehlszeilen-Updater verwenden!",
"Open updater" : "Updater öffnen",
"Download now" : "Jetzt herunterladen",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Der Web-Updater ist deaktiviert. Bitte zum Aktualisieren den Befehlszeilen-Updater verwenden oder den entsprechenden Update-Mechanismus für deine Installationsmethode (z. B. Docker pull).",
"What's new?" : "Was ist neu?",
+ "View changelog" : "Liste der Änderungen ansehen",
"The update check is not yet finished. Please refresh the page." : "Die Aktualisierungsprüfung ist noch nicht abgeschlossen. Bitte die Seite neu laden.",
"Your version is up to date." : "Deine Version ist aktuell.",
"A non-default update server is in use to be checked for updates:" : "Es wird ein Nicht-Standard-Aktualisierungsserver zum Prüfen auf Aktualisierungen verwendet:",
- "Update channel:" : "Update-Kanal:",
+ "Update channel" : "Update-Kanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Das Ändern des Update-Kanals wirkt sich auch auf die Verwaltungsseite der Apps aus. So werden z.B. nach dem Wechsel auf den Beta-Kanal auf der App-Verwaltungsseite Beta-App-Updates angeboten.",
+ "Current update channel:" : "Aktueller Update-Kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ",
- "Notify members of the following groups about available updates:" : "Informiere die Mitglieder der folgenden Gruppen über verfügbare Updates:",
- "Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
+ "Notify members of the following groups about available updates:" : "Die Mitglieder der folgenden Gruppen über verfügbare Updates informieren:",
+ "No groups" : "Keine Gruppen",
+ "Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Aktualisierungskanal macht dedizierte Benachrichtigungen für Server Aktualisierungen obsolet.",
"The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Eine neue Version ist verfügbar: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Beachte, dass das Update nach einer neuen Version erst nach der ersten Hauptversion oder später angezeigt wird. Wir stellen unseren Benutzern im Laufe der Zeit neue Versionen zur Verfügung und überspringen manchmal eine Version, wenn Probleme auftreten. Weitere Informationen zu Updates und Release-Kanälen finden Sie unter {link}",
- "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}",
- "Checking apps for compatible updates" : "Es werden alle Apps auf kompatible Aktualisierungen geprüft",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte stelle sicher, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp> nicht auf \"false\" steht.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Die Verbindung zum Appstore konnte nicht aufgebaut werden oder der Appstore hat keine Apps zurück geliefert. Suche selbst nach Updates oder stelle sicher, dass Dein Server Zugriff auf das Internet hat und eine Verbindung zum Appstore aufbauen kann. ",
- "<strong>All</strong> apps have an update for this version available" : "Für <strong>alle</strong> Apps steht eine Aktualisierung zur Verfügung",
- "View changelog" : "Liste der Änderungen anschauen",
- "Enterprise" : "Version für Unternehmen",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
- "Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Für <strong>%n</strong> App steht keine Aktualisierung für diese Version zur Verfügung","Für <strong>%n</strong> Apps stehen keine Aktualisierungen für diese Version zur Verfügung"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nach Veröffentlichung einer neuen Version kann es einige Zeit dauern bis diese hier erscheint. Die neuen Versionen verteilen sich beim Ausrollen im Laufe der Zeit auf die Benutzer. Manchmal werden Versionen übersprungen, wenn Probleme gefunden wurden."
+ "Changelog for app {app}" : "Änderungsübersicht für App {app}",
+ "What's new in {app} version {version}" : "Neuigkeiten in {app} Version {version}",
+ "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Weitere Informationen zur Aktualisierung."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/de.json b/apps/updatenotification/l10n/de.json
index 089cdfd28d3..a77fea41a3e 100644
--- a/apps/updatenotification/l10n/de.json
+++ b/apps/updatenotification/l10n/de.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Weitere Informationen zur Aktualisierung.",
"Channel updated" : "Kanal aktualisiert",
+ "Web updater is disabled" : "Der Web-Updater ist deaktiviert",
+ "App updated" : "App aktualisiert",
+ "See what's new" : "Neuigkeiten ansehen",
+ "{app} updated to version {version}" : "{app} wurde auf Version {version} aktualisiert",
"Update notifications" : "Update-Benachrichtigungen",
- "The update server could not be reached since %d days to check for new updates." : "Der Aktualisierungsserver konnte seit %d Tagen nicht erreicht werden um auf verfügbare Aktualisierungen zu prüfen.",
+ "The update server could not be reached since %d days to check for new updates." : "Der Aktualisierungsserver konnte seit %d Tagen nicht erreicht werden, um auf verfügbare Aktualisierungen zu prüfen.",
"Please check the Nextcloud and server log files for errors." : "Bitte überprüfe die Server- und Nextcloud-Logdateien auf Fehler.",
- "Update to %1$s is available." : "Aktualisierung auf %1$s ist verfügbar.",
- "Update for %1$s to version %2$s is available." : "Eine Aktualisierung von %1$s auf Version %2$s ist verfügbar.",
+ "Update to {serverAndVersion} is available." : "Aktualisierung auf {serverAndVersion} ist verfügbar.",
"Update for {app} to version %s is available." : "Eine Aktualisierung für {app} auf Version %s ist verfügbar.",
"Update notification" : "Aktualisierungs-Benachrichtigung",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Zeigt Benachrichtigungen für Aktualisierungen von Nextcloud an und bietet SSO für den Aktualisierer.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Deine installierte Version wird nicht mehr unterstützt. Bitte aktualisiere baldmöglichst auf eine unterstützte Version.",
- "Apps missing updates" : "Für diese Apps fehlen Aktualisierungen",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Zeigt Update-Benachrichtigungen für Nextcloud und App-Updates an und stellt SSO für den Updater bereit.",
+ "Give feedback" : "Feedback geben",
+ "Get started" : "Loslegen",
+ "No changelog available" : "Keine Änderungsübersicht verfügbar",
+ "What's new in {app} {version}" : "Neuigkeiten in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Eine neue Version ist verfügbar: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Beachte, dass die Aktualisierung für eine neue Version erst nach der ersten Unterversion (minor release) oder später angezeigt wird. Wir stellen im Laufe der Zeit neue Versionen zur Verfügung und überspringen manchmal eine Version, wenn Probleme auftreten. Weitere Informationen zu Update- und Release-Kanälen findest du unter {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Geprüft am {lastCheckedDate} - Änderungsübersicht öffnen",
+ "Checking apps for compatible versions" : "Es werden alle Apps auf kompatible Versionen geprüft",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte sicherstellen, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp> nicht auf \"false\" steht.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Die Verbindung zum App-Store konnte nicht aufgebaut werden oder der App-Store hat keine Apps zurück geliefert. Selbst nach Updates suchen oder sicherstellen, dass der Server Zugriff auf das Internet hat und eine Verbindung zum App-Store aufbauen kann.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "Für <strong>alle</strong> Apps steht eine kompatible Version zur Verfügung.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Für <strong>%n</strong> App steht keine kompatible Version zur Verfügung.","Für <strong>%n</strong> Apps stehen keine kompatible Versionen zur Verfügung."],
+ "Enterprise" : "Version für Unternehmen",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die neueste Hauptversion aktualisiert.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
+ "Update" : "Aktualisieren",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Die installierte Version wird nicht mehr unterstützt. Bitte baldmöglichst auf eine unterstützte Version aktualisieren.",
+ "Apps missing compatible version" : "Für diese Apps fehlen kompatible Versionen",
"View in store" : "Im Store anzeigen",
- "Apps with available updates" : "Für diese Apps gibt es Aktualisierungen",
+ "Apps with compatible version" : "Für diese Apps gibt es kompatible Versionen",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Bitte beachten, dass der Web Updater bei mehr als 100 Konten nicht empfohlen wird! Bitte stattdessen den Befehlszeilen-Updater verwenden!",
"Open updater" : "Updater öffnen",
"Download now" : "Jetzt herunterladen",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Der Web-Updater ist deaktiviert. Bitte zum Aktualisieren den Befehlszeilen-Updater verwenden oder den entsprechenden Update-Mechanismus für deine Installationsmethode (z. B. Docker pull).",
"What's new?" : "Was ist neu?",
+ "View changelog" : "Liste der Änderungen ansehen",
"The update check is not yet finished. Please refresh the page." : "Die Aktualisierungsprüfung ist noch nicht abgeschlossen. Bitte die Seite neu laden.",
"Your version is up to date." : "Deine Version ist aktuell.",
"A non-default update server is in use to be checked for updates:" : "Es wird ein Nicht-Standard-Aktualisierungsserver zum Prüfen auf Aktualisierungen verwendet:",
- "Update channel:" : "Update-Kanal:",
+ "Update channel" : "Update-Kanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Das Ändern des Update-Kanals wirkt sich auch auf die Verwaltungsseite der Apps aus. So werden z.B. nach dem Wechsel auf den Beta-Kanal auf der App-Verwaltungsseite Beta-App-Updates angeboten.",
+ "Current update channel:" : "Aktueller Update-Kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ",
- "Notify members of the following groups about available updates:" : "Informiere die Mitglieder der folgenden Gruppen über verfügbare Updates:",
- "Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
+ "Notify members of the following groups about available updates:" : "Die Mitglieder der folgenden Gruppen über verfügbare Updates informieren:",
+ "No groups" : "Keine Gruppen",
+ "Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Aktualisierungskanal macht dedizierte Benachrichtigungen für Server Aktualisierungen obsolet.",
"The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Eine neue Version ist verfügbar: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Beachte, dass das Update nach einer neuen Version erst nach der ersten Hauptversion oder später angezeigt wird. Wir stellen unseren Benutzern im Laufe der Zeit neue Versionen zur Verfügung und überspringen manchmal eine Version, wenn Probleme auftreten. Weitere Informationen zu Updates und Release-Kanälen finden Sie unter {link}",
- "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}",
- "Checking apps for compatible updates" : "Es werden alle Apps auf kompatible Aktualisierungen geprüft",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte stelle sicher, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp> nicht auf \"false\" steht.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Die Verbindung zum Appstore konnte nicht aufgebaut werden oder der Appstore hat keine Apps zurück geliefert. Suche selbst nach Updates oder stelle sicher, dass Dein Server Zugriff auf das Internet hat und eine Verbindung zum Appstore aufbauen kann. ",
- "<strong>All</strong> apps have an update for this version available" : "Für <strong>alle</strong> Apps steht eine Aktualisierung zur Verfügung",
- "View changelog" : "Liste der Änderungen anschauen",
- "Enterprise" : "Version für Unternehmen",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
- "Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Für <strong>%n</strong> App steht keine Aktualisierung für diese Version zur Verfügung","Für <strong>%n</strong> Apps stehen keine Aktualisierungen für diese Version zur Verfügung"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nach Veröffentlichung einer neuen Version kann es einige Zeit dauern bis diese hier erscheint. Die neuen Versionen verteilen sich beim Ausrollen im Laufe der Zeit auf die Benutzer. Manchmal werden Versionen übersprungen, wenn Probleme gefunden wurden."
+ "Changelog for app {app}" : "Änderungsübersicht für App {app}",
+ "What's new in {app} version {version}" : "Neuigkeiten in {app} Version {version}",
+ "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Weitere Informationen zur Aktualisierung."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/de_DE.js b/apps/updatenotification/l10n/de_DE.js
index 988866a132a..b824162664b 100644
--- a/apps/updatenotification/l10n/de_DE.js
+++ b/apps/updatenotification/l10n/de_DE.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Weitere Informationen zur Aktualisierung.",
"Channel updated" : "Kanal aktualisiert",
+ "Web updater is disabled" : "Der Web-Updater ist deaktiviert",
+ "App updated" : "App aktualisiert",
+ "See what's new" : "Sehen Sie sich die Neuigkeiten an",
+ "{app} updated to version {version}" : "{app} wurde auf Version {version} aktualisiert",
"Update notifications" : "Update-Benachrichtigungen",
- "The update server could not be reached since %d days to check for new updates." : "Der Aktualisierungsserver konnte seit %d Tagen nicht erreicht werden um auf verfügbare Aktualisierungen zu prüfen.",
+ "The update server could not be reached since %d days to check for new updates." : "Der Aktualisierungsserver konnte seit %d Tagen nicht erreicht werden, um auf verfügbare Aktualisierungen zu prüfen.",
"Please check the Nextcloud and server log files for errors." : "Bitte überprüfe die Server- und Nextcloud-Logdateien auf Fehler.",
- "Update to %1$s is available." : "Aktualisierung auf %1$s ist verfügbar.",
- "Update for %1$s to version %2$s is available." : "Eine Aktualisierung von %1$s auf Version %2$s ist verfügbar.",
+ "Update to {serverAndVersion} is available." : "Aktualisierung auf {serverAndVersion} ist verfügbar.",
"Update for {app} to version %s is available." : "Eine Aktualisierung für {app} auf Version %s ist verfügbar.",
"Update notification" : "Aktualisierungs-Benachrichtigung",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Zeigt Benachrichtigungen für Aktualisierungen von Nextcloud an und bietet SSO für den Aktualisierer.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Zeigt Update-Benachrichtigungen für Nextcloud und App-Updates an und stellt SSO für den Updater bereit.",
+ "Give feedback" : "Feedback geben",
+ "Get started" : "Legen Sie los",
+ "No changelog available" : "Keine Änderungsübersicht verfügbar",
+ "What's new in {app} {version}" : "Neuigkeiten in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Eine neue Version ist verfügbar: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Beachten Sie, dass die Aktualisierung für eine neue Version erst nach der ersten Unterversion (minor release) oder später angezeigt wird. Wir stellen im Laufe der Zeit neue Versionen zur Verfügung und überspringen manchmal eine Version, wenn Probleme auftreten. Weitere Informationen zu Update- und Release-Kanälen finden Sie unter {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Geprüft am {lastCheckedDate} - Änderungsübersicht öffnen",
+ "Checking apps for compatible versions" : "Es werden alle Apps auf kompatible Versionen geprüft",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte stellen Sie sicher, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp>nicht auf \"false\" steht.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Es konnte keine Verbindung zum App-Store hergestellt werden oder es wurden keine Updates zurückgegeben. Suchen Sie manuell nach Updates oder stellen Sie sicher, dass Ihr Server Zugang zum Internet hat und eine Verbindung zum App-Store herstellen kann.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "Für <strong>alle</strong> Apps steht eine kompatible Version zur Verfügung.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Für <strong>%n</strong> App steht keine kompatible Version zur Verfügung.","Für <strong>%n</strong> Apps steht keine kompatible Version zur Verfügung."],
+ "Enterprise" : "Version für Unternehmen",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die neueste Hauptversion aktualisiert.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion, die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
+ "Update" : "Aktualisierung",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Ihre installierte Version wird nicht mehr unterstützt. Bitte aktualisieren Sie baldmöglichst auf eine unterstützte Version.",
- "Apps missing updates" : "Für diese Apps fehlen Aktualisierungen",
+ "Apps missing compatible version" : "Für diese Apps fehlen kompatible Versionen",
"View in store" : "Im Store anzeigen",
- "Apps with available updates" : "Für diese Apps gibt es Aktualisierungen",
+ "Apps with compatible version" : "Für diese Apps gibt es kompatible Versionen",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Bitte beachten Sie, dass der Web Updater bei mehr als 100 Konten nicht empfohlen wird! Bitte verwenden Sie stattdessen den Befehlszeilen-Updater!",
"Open updater" : "Updater öffnen",
"Download now" : "Jetzt herunterladen",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Der Web-Updater ist deaktiviert. Bitte verwenden Sie zum Aktualisieren den Befehlszeilen-Updater oder den entsprechenden Update-Mechanismus für Ihre Installationsmethode (z. B. Docker pull).",
"What's new?" : "Was ist neu?",
+ "View changelog" : "Liste der Änderungen anschauen",
"The update check is not yet finished. Please refresh the page." : "Die Aktualisierungsprüfung ist noch nicht abgeschlossen. Bitte die Seite neu laden.",
"Your version is up to date." : "Ihre Version ist aktuell.",
"A non-default update server is in use to be checked for updates:" : "Es wird ein Nicht-Standard-Aktualisierungsserver zum Prüfen auf Aktualisierungen verwendet:",
- "Update channel:" : "Update-Kanal:",
+ "Update channel" : "Update-Kanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Das Ändern des Update-Kanals wirkt sich auch auf die Verwaltungsseite der Apps aus. So werden z.B. nach dem Wechsel auf den Beta-Kanal auf der App-Verwaltungsseite Beta-App-Updates angeboten.",
+ "Current update channel:" : "Aktueller Update-Kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ",
- "Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:",
- "Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Aktualisierungskanal macht dedizierte Benachrichtigungen für Server Aktualisierungen obsolet.",
- "The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Eine neue Version ist verfügbar: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Beachten Sie, dass die Aktualisierung nach einer neuen Version erst nach der ersten Unterversion (minor release) oder später angezeigt wird. Wir stellen unseren Benutzern im Laufe der Zeit neue Versionen zur Verfügung und überspringen manchmal eine Version, wenn Probleme auftreten. Weitere Informationen zu Aktualisierungen und Release-Kanälen finden Sie unter {link}",
- "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}",
- "Checking apps for compatible updates" : "Es werden alle Apps auf kompatible Aktualisierungen geprüft",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte stellen Sie sicher, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp>nicht auf \"false\" steht.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Die Verbindung zum Appstore konnte nicht aufgebaut werden oder der Appstore hat keine Apps zurück geliefert. Suchen Sie selbst nach den Updates oder stellen Sie sicher, dass Ihr Server Zugriff auf das Internet hat und eine Verbindung zum Appstore aufbauen kann. ",
- "<strong>All</strong> apps have an update for this version available" : "Für <strong>alle</strong> Apps steht eine Aktualisierung zur Verfügung",
- "View changelog" : "Liste der Änderungen anschauen",
- "Enterprise" : "Version für Unternehmen",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
- "Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion, die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Für <strong>%n</strong> App steht keine Aktualisierung für diese Version zur Verfügung","Für <strong>%n</strong> Apps stehen keine Aktualisierungen für diese Version zur Verfügung"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nach Veröffentlichung einer neuen Version kann es einige Zeit dauern bis diese hier erscheint. Die neuen Versionen verteilen sich beim Ausrollen im Laufe der Zeit auf die Benutzer. Manchmal werden Versionen übersprungen, wenn Probleme gefunden wurden."
+ "Notify members of the following groups about available updates:" : "Die Mitglieder der folgenden Gruppen über verfügbare Updates informieren:",
+ "No groups" : "Keine Gruppen",
+ "Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Update-Kanal macht dedizierte Benachrichtigungen für Serveraktualisierungen obsolet.",
+ "The selected update channel does not support updates of the server." : "Der gewählte Update-Kanal unterstützt keine Aktualisierungen für Server.",
+ "Changelog for app {app}" : "Änderungsübersicht für App {app}",
+ "What's new in {app} version {version}" : "Neuigkeiten in {app} Version {version}",
+ "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Weitere Informationen zur Aktualisierung."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/de_DE.json b/apps/updatenotification/l10n/de_DE.json
index 1a06dd8dac9..de59ee49b35 100644
--- a/apps/updatenotification/l10n/de_DE.json
+++ b/apps/updatenotification/l10n/de_DE.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Weitere Informationen zur Aktualisierung.",
"Channel updated" : "Kanal aktualisiert",
+ "Web updater is disabled" : "Der Web-Updater ist deaktiviert",
+ "App updated" : "App aktualisiert",
+ "See what's new" : "Sehen Sie sich die Neuigkeiten an",
+ "{app} updated to version {version}" : "{app} wurde auf Version {version} aktualisiert",
"Update notifications" : "Update-Benachrichtigungen",
- "The update server could not be reached since %d days to check for new updates." : "Der Aktualisierungsserver konnte seit %d Tagen nicht erreicht werden um auf verfügbare Aktualisierungen zu prüfen.",
+ "The update server could not be reached since %d days to check for new updates." : "Der Aktualisierungsserver konnte seit %d Tagen nicht erreicht werden, um auf verfügbare Aktualisierungen zu prüfen.",
"Please check the Nextcloud and server log files for errors." : "Bitte überprüfe die Server- und Nextcloud-Logdateien auf Fehler.",
- "Update to %1$s is available." : "Aktualisierung auf %1$s ist verfügbar.",
- "Update for %1$s to version %2$s is available." : "Eine Aktualisierung von %1$s auf Version %2$s ist verfügbar.",
+ "Update to {serverAndVersion} is available." : "Aktualisierung auf {serverAndVersion} ist verfügbar.",
"Update for {app} to version %s is available." : "Eine Aktualisierung für {app} auf Version %s ist verfügbar.",
"Update notification" : "Aktualisierungs-Benachrichtigung",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Zeigt Benachrichtigungen für Aktualisierungen von Nextcloud an und bietet SSO für den Aktualisierer.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Zeigt Update-Benachrichtigungen für Nextcloud und App-Updates an und stellt SSO für den Updater bereit.",
+ "Give feedback" : "Feedback geben",
+ "Get started" : "Legen Sie los",
+ "No changelog available" : "Keine Änderungsübersicht verfügbar",
+ "What's new in {app} {version}" : "Neuigkeiten in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Eine neue Version ist verfügbar: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Beachten Sie, dass die Aktualisierung für eine neue Version erst nach der ersten Unterversion (minor release) oder später angezeigt wird. Wir stellen im Laufe der Zeit neue Versionen zur Verfügung und überspringen manchmal eine Version, wenn Probleme auftreten. Weitere Informationen zu Update- und Release-Kanälen finden Sie unter {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Geprüft am {lastCheckedDate} - Änderungsübersicht öffnen",
+ "Checking apps for compatible versions" : "Es werden alle Apps auf kompatible Versionen geprüft",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte stellen Sie sicher, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp>nicht auf \"false\" steht.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Es konnte keine Verbindung zum App-Store hergestellt werden oder es wurden keine Updates zurückgegeben. Suchen Sie manuell nach Updates oder stellen Sie sicher, dass Ihr Server Zugang zum Internet hat und eine Verbindung zum App-Store herstellen kann.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "Für <strong>alle</strong> Apps steht eine kompatible Version zur Verfügung.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Für <strong>%n</strong> App steht keine kompatible Version zur Verfügung.","Für <strong>%n</strong> Apps steht keine kompatible Version zur Verfügung."],
+ "Enterprise" : "Version für Unternehmen",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die neueste Hauptversion aktualisiert.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion, die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
+ "Update" : "Aktualisierung",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Ihre installierte Version wird nicht mehr unterstützt. Bitte aktualisieren Sie baldmöglichst auf eine unterstützte Version.",
- "Apps missing updates" : "Für diese Apps fehlen Aktualisierungen",
+ "Apps missing compatible version" : "Für diese Apps fehlen kompatible Versionen",
"View in store" : "Im Store anzeigen",
- "Apps with available updates" : "Für diese Apps gibt es Aktualisierungen",
+ "Apps with compatible version" : "Für diese Apps gibt es kompatible Versionen",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Bitte beachten Sie, dass der Web Updater bei mehr als 100 Konten nicht empfohlen wird! Bitte verwenden Sie stattdessen den Befehlszeilen-Updater!",
"Open updater" : "Updater öffnen",
"Download now" : "Jetzt herunterladen",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Der Web-Updater ist deaktiviert. Bitte verwenden Sie zum Aktualisieren den Befehlszeilen-Updater oder den entsprechenden Update-Mechanismus für Ihre Installationsmethode (z. B. Docker pull).",
"What's new?" : "Was ist neu?",
+ "View changelog" : "Liste der Änderungen anschauen",
"The update check is not yet finished. Please refresh the page." : "Die Aktualisierungsprüfung ist noch nicht abgeschlossen. Bitte die Seite neu laden.",
"Your version is up to date." : "Ihre Version ist aktuell.",
"A non-default update server is in use to be checked for updates:" : "Es wird ein Nicht-Standard-Aktualisierungsserver zum Prüfen auf Aktualisierungen verwendet:",
- "Update channel:" : "Update-Kanal:",
+ "Update channel" : "Update-Kanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Das Ändern des Update-Kanals wirkt sich auch auf die Verwaltungsseite der Apps aus. So werden z.B. nach dem Wechsel auf den Beta-Kanal auf der App-Verwaltungsseite Beta-App-Updates angeboten.",
+ "Current update channel:" : "Aktueller Update-Kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ",
- "Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:",
- "Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Aktualisierungskanal macht dedizierte Benachrichtigungen für Server Aktualisierungen obsolet.",
- "The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Eine neue Version ist verfügbar: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Beachten Sie, dass die Aktualisierung nach einer neuen Version erst nach der ersten Unterversion (minor release) oder später angezeigt wird. Wir stellen unseren Benutzern im Laufe der Zeit neue Versionen zur Verfügung und überspringen manchmal eine Version, wenn Probleme auftreten. Weitere Informationen zu Aktualisierungen und Release-Kanälen finden Sie unter {link}",
- "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}",
- "Checking apps for compatible updates" : "Es werden alle Apps auf kompatible Aktualisierungen geprüft",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bitte stellen Sie sicher, dass in der \"config.php\"-Datei die Variable <samp>appstoreenabled</samp>nicht auf \"false\" steht.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Die Verbindung zum Appstore konnte nicht aufgebaut werden oder der Appstore hat keine Apps zurück geliefert. Suchen Sie selbst nach den Updates oder stellen Sie sicher, dass Ihr Server Zugriff auf das Internet hat und eine Verbindung zum Appstore aufbauen kann. ",
- "<strong>All</strong> apps have an update for this version available" : "Für <strong>alle</strong> Apps steht eine Aktualisierung zur Verfügung",
- "View changelog" : "Liste der Änderungen anschauen",
- "Enterprise" : "Version für Unternehmen",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Für den Einsatz in Unternehmen. Stellt immer die neueste Patch-Version bereit, wird jedoch nicht sofort auf die nächste Hauptversion aktualisiert. Diese Aktualisierung wird durchgeführt, sobald die Nextcloud GmbH zusätzliche Vorbereitungen und Tests für umfangreiche und unternehmenskritische Software-Verteilungen durchgeführt hat. Dieser Kanal steht nur Kunden zur Verfügung und enthält das Nextcloud Firmen-Paket .",
- "Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Die aktuellste stabile Version. Diese ist für den regelmäßigen Gebrauch geeignet und wird immer auf die letzte Hauptversion aktualisiert.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Eine Vorabversion, die einzig zum Testen neuer Funktionen dient, nicht aber für den Einsatz in Produktivumgebungen geeignet ist.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Für <strong>%n</strong> App steht keine Aktualisierung für diese Version zur Verfügung","Für <strong>%n</strong> Apps stehen keine Aktualisierungen für diese Version zur Verfügung"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nach Veröffentlichung einer neuen Version kann es einige Zeit dauern bis diese hier erscheint. Die neuen Versionen verteilen sich beim Ausrollen im Laufe der Zeit auf die Benutzer. Manchmal werden Versionen übersprungen, wenn Probleme gefunden wurden."
+ "Notify members of the following groups about available updates:" : "Die Mitglieder der folgenden Gruppen über verfügbare Updates informieren:",
+ "No groups" : "Keine Gruppen",
+ "Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Update-Kanal macht dedizierte Benachrichtigungen für Serveraktualisierungen obsolet.",
+ "The selected update channel does not support updates of the server." : "Der gewählte Update-Kanal unterstützt keine Aktualisierungen für Server.",
+ "Changelog for app {app}" : "Änderungsübersicht für App {app}",
+ "What's new in {app} version {version}" : "Neuigkeiten in {app} Version {version}",
+ "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Weitere Informationen zur Aktualisierung."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/el.js b/apps/updatenotification/l10n/el.js
index b517147e963..c77270c0b0d 100644
--- a/apps/updatenotification/l10n/el.js
+++ b/apps/updatenotification/l10n/el.js
@@ -1,47 +1,42 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση.",
"Channel updated" : "Ενημερωμένο κανάλι",
+ "Web updater is disabled" : "Η ενημερώσεις μέσω ιστού έχουν απενεργοποιηθεί",
"Update notifications" : "Ειδοποιήσεις ενημέρωσης",
"The update server could not be reached since %d days to check for new updates." : "Ο διακομιστής ενημέρωσης δεν ήταν προσβάσιμος από %dημέρες για να ελέγξει για νέες ενημερώσεις. ",
"Please check the Nextcloud and server log files for errors." : "Παρακαλούμε ελέγξτε για σφάλματα στα αρχεία ιστορικού του Nextcloud και του διακομιστή σας.",
- "Update to %1$s is available." : "Είναι διαθέσιμη η ενημέρωση σε %1$s.",
- "Update for %1$s to version %2$s is available." : "Είναι διαθέσιμη η ενημέρωση από την έκδοση %1$s στην %2$s.",
"Update for {app} to version %s is available." : "Είναι διαθέσιμη η ενημέρωση της εφαρμογής {app} στην έκδοση %s",
"Update notification" : "Ειδοποίηση ενημέρωσης",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Εμφανίζει ειδοποιήσεις ενημέρωσης για το Nextcloud και παρέχει το SSO για την εφαρμογή ενημέρωσης.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Μία νέα έκδοση είναι διαθέσιμη: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Έλεγχος εφαρμογών για συμβατές εκδόσεις",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Σιγουρευτείτε πως το config.php δεν έχει οριστεί σε ψευδήςψ<samp>ενεργοποίησηαγοράςεφαρμογών</samp>.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Δεν ήταν δυνατή η σύνδεση στο App Store ή δε βρέθηκαν καθόλου ενημερώσεις. Αναζητήστε χειρωνακτικά ενημερώσεις ή βεβαιωθείτε ότι ο διακομιστής σας έχει πρόσβαση στο διαδίκτυο και μπορεί να συνδεθεί στο App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Όλες</strong> οι εφαρμογές έχουν διαθέσιμη μια συμβατή έκδοση για αυτήν την έκδοση Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> εφαρμογή δεν έχει διαθέσιμη συμβατή έκδοση για αυτήν την έκδοση Nextcloud.","<strong>%n</strong> εφαρμογές δεν έχουν διαθέσιμη συμβατή έκδοση για αυτήν την έκδοση Nextcloud."],
+ "Enterprise" : "Επαγγελματιών",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Για επαγγελματική χρήση. Παρέχει πάντα την τελευταία ενημέρωση, αλλά δεν θα ενημερωθεί αμέσως στην επόμενη μεγάλη έκδοση. Η ενημέρωση αυτή συμβαίνει μόλις η Nextcloud GmbH πραγματοποιήσει επιπλέον ελέγχους και δοκιμές για εφαρμογές μεγάλης κλίμακας και κρίσιμης σημασίας για την αποστολή. Αυτό το κανάλι είναι διαθέσιμο μόνο στους πελάτες και παρέχει το πακέτο Nextcloud για Επαγγελματίες.",
+ "Stable" : "Σταθερός",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Η πιο πρόσφατη σταθερή έκδοση. Είναι κατάλληλη για τακτική χρήση και πάντα θα ενημερώνεται με την τελευταία μεγάλη έκδοση.",
+ "Beta" : "Δοκιμαστικό",
+ "A pre-release version only for testing new features, not for production environments." : "Μια προηγούμενη έκδοση μόνο για τη δοκιμή νέων λειτουργιών, όχι για περιβάλλοντα παραγωγής.",
+ "Update" : "Ενημέρωση",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Η έκδοση που εκτελείτε δεν διατηρείται πια. Βεβαιωθείτε ότι ενημερώσατε σε μια υποστηριζόμενη έκδοση το συντομότερο δυνατό.",
- "Apps missing updates" : "Ελλιπείς ενημερώσεις εφαρμογών",
+ "Apps missing compatible version" : "Εφαρμογές χωρίς συμβατή έκδοση",
"View in store" : "Προβολή στο κέντρο εφαρμογών",
- "Apps with available updates" : "Εφαρμογές με διαθέσιμες ενημερώσεις",
+ "Apps with compatible version" : "Εφαρμογές με συμβατή έκδοση",
"Open updater" : "Άνοιγμα εφαρμογής ενημέρωσης",
"Download now" : "Λήψη τώρα",
"What's new?" : "Τι νέο υπάρχει;",
+ "View changelog" : "Εμφάνιση αλλαγών",
"The update check is not yet finished. Please refresh the page." : "Ο έλεγχος ενημερώσεων δεν τελείωσε ακόμη. Παρακαλώ ανανεώστε την σελίδα.",
"Your version is up to date." : "Έχετε την τελευταία έκδοση.",
"A non-default update server is in use to be checked for updates:" : "Ένας μή-προεπιλεγμένος διακομιστής είναι σε χρήση για έλεγχο ενημερώσεων:",
- "Update channel:" : "Ενημέρωση καναλιού:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Μπορείτε πάντα να ενημερώσετε σε μια νεότερη έκδοση. Αλλά δεν μπορείτε ποτέ να υποβαθμίσετε σε μια πιο σταθερή έκδοση.",
"Notify members of the following groups about available updates:" : "Να ενημερωθούν τα μέλη των παρακάτω ομάδων σχετικά με τις διαθέσιμες ενημερώσεις:",
- "Only notification for app updates are available." : "Είναι μόνο διαθέσιμες οι ενημερώσεις για την εφαρμογή",
+ "Only notifications for app updates are available." : "Διατίθενται μόνο ειδοποιήσεις για ενημερώσεις εφαρμογών.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Το συγκεκριμένο κανάλι ενημέρωσης καθιστά παρωχημένες τις ειδοποιήσεις που προορίζονται για τον διακομιστή.",
"The selected update channel does not support updates of the server." : "Το συγκεκριμένο κανάλι ενημέρωσης δεν υποστηρίζει ενημερώσεις διακομιστή.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Μία νέα έκδοση είναι διαθέσιμη: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Σημειώστε ότι μετά από μια νέα έκδοση, η ενημέρωση εμφανίζεται μόνο μετά την πρώτη υποέκδοση ή αργότερα. Κυκλοφορούμε νέες εκδόσεις που διαμοιράζονται με την πάροδο του χρόνου στους χρήστες μας και μερικές φορές παραλείπουμε μια έκδοση όταν εντοπίζονται προβλήματα. Μάθετε περισσότερα σχετικά με τις ενημερώσεις και τα κανάλια κυκλοφορίας στη διεύθυνση {link}",
- "Checked on {lastCheckedDate}" : "Έγινε έλεγχος στις {lastCheckedDate}",
- "Checking apps for compatible updates" : "Έλεγχος εφαρμογών για συμβατές ενημερώσεις",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Σιγουρευτείτε πως το config.php δεν έχει οριστεί σε ψευδήςψ<samp>ενεργοποίησηαγοράςεφαρμογών</samp>.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Αδυναμία σύνδεσης στο κατάστημα εφαρμογών, ή το κατάστημα εφαρμογών δεν εξέδωσε καμία ενημέρωση. Αναζητήστε χειροκίνητα ενημερώσεις ή βεβαιωθείτε ότι ο εξυπηρετητής έχει πρόσβαση στο διαδίκτυο και μπορεί να συνδεθεί στο κατάστημα εφαρμογών. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Όλες</strong> οι εφαρμογές έχουν αναβάθμιση για αυτή την έκδοση διαθέσιμη",
- "View changelog" : "Εμφάνιση αλλαγών",
- "Enterprise" : "Επαγγελματιών",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Για επαγγελματική χρήση. Παρέχει πάντα την τελευταία ενημέρωση, αλλά δεν θα ενημερωθεί αμέσως στην επόμενη μεγάλη έκδοση. Η ενημέρωση αυτή συμβαίνει μόλις η Nextcloud GmbH πραγματοποιήσει επιπλέον ελέγχους και δοκιμές για εφαρμογές μεγάλης κλίμακας και κρίσιμης σημασίας για την αποστολή. Αυτό το κανάλι είναι διαθέσιμο μόνο στους πελάτες και παρέχει το πακέτο Nextcloud για Επαγγελματίες.",
- "Stable" : "Σταθερός",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Η πιο πρόσφατη σταθερή έκδοση. Είναι κατάλληλη για τακτική χρήση και πάντα θα ενημερώνεται με την τελευταία μεγάλη έκδοση.",
- "Beta" : "Δοκιμαστικό",
- "A pre-release version only for testing new features, not for production environments." : "Μια προηγούμενη έκδοση μόνο για τη δοκιμή νέων λειτουργιών, όχι για περιβάλλοντα παραγωγής.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Η <strong>%n</strong> εφαρμογή δεν έχει αναβάθμιση για αυτή την έκδοση διαθέσιμη","Οι <strong>%n</strong> εφαρμογές δεν έχουν αναβάθμιση για αυτή την έκδοση διαθέσιμη"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Σημειώστε ότι μετά από μια νέα διανομή μπορεί να περάσει λίγος καιρός πριν εμφανιστεί εδώ. Κυκλοφορούμε κατά διαστήματα νέες εκδόσεις στους χρήστες μας και κάποιες φορές παραλείπουμε κάποια έκδοση αν βρεθούν προβλήματα."
+ "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/el.json b/apps/updatenotification/l10n/el.json
index 7b54bbb9c21..abb289695d2 100644
--- a/apps/updatenotification/l10n/el.json
+++ b/apps/updatenotification/l10n/el.json
@@ -1,45 +1,40 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση.",
"Channel updated" : "Ενημερωμένο κανάλι",
+ "Web updater is disabled" : "Η ενημερώσεις μέσω ιστού έχουν απενεργοποιηθεί",
"Update notifications" : "Ειδοποιήσεις ενημέρωσης",
"The update server could not be reached since %d days to check for new updates." : "Ο διακομιστής ενημέρωσης δεν ήταν προσβάσιμος από %dημέρες για να ελέγξει για νέες ενημερώσεις. ",
"Please check the Nextcloud and server log files for errors." : "Παρακαλούμε ελέγξτε για σφάλματα στα αρχεία ιστορικού του Nextcloud και του διακομιστή σας.",
- "Update to %1$s is available." : "Είναι διαθέσιμη η ενημέρωση σε %1$s.",
- "Update for %1$s to version %2$s is available." : "Είναι διαθέσιμη η ενημέρωση από την έκδοση %1$s στην %2$s.",
"Update for {app} to version %s is available." : "Είναι διαθέσιμη η ενημέρωση της εφαρμογής {app} στην έκδοση %s",
"Update notification" : "Ειδοποίηση ενημέρωσης",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Εμφανίζει ειδοποιήσεις ενημέρωσης για το Nextcloud και παρέχει το SSO για την εφαρμογή ενημέρωσης.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Μία νέα έκδοση είναι διαθέσιμη: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Έλεγχος εφαρμογών για συμβατές εκδόσεις",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Σιγουρευτείτε πως το config.php δεν έχει οριστεί σε ψευδήςψ<samp>ενεργοποίησηαγοράςεφαρμογών</samp>.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Δεν ήταν δυνατή η σύνδεση στο App Store ή δε βρέθηκαν καθόλου ενημερώσεις. Αναζητήστε χειρωνακτικά ενημερώσεις ή βεβαιωθείτε ότι ο διακομιστής σας έχει πρόσβαση στο διαδίκτυο και μπορεί να συνδεθεί στο App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Όλες</strong> οι εφαρμογές έχουν διαθέσιμη μια συμβατή έκδοση για αυτήν την έκδοση Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> εφαρμογή δεν έχει διαθέσιμη συμβατή έκδοση για αυτήν την έκδοση Nextcloud.","<strong>%n</strong> εφαρμογές δεν έχουν διαθέσιμη συμβατή έκδοση για αυτήν την έκδοση Nextcloud."],
+ "Enterprise" : "Επαγγελματιών",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Για επαγγελματική χρήση. Παρέχει πάντα την τελευταία ενημέρωση, αλλά δεν θα ενημερωθεί αμέσως στην επόμενη μεγάλη έκδοση. Η ενημέρωση αυτή συμβαίνει μόλις η Nextcloud GmbH πραγματοποιήσει επιπλέον ελέγχους και δοκιμές για εφαρμογές μεγάλης κλίμακας και κρίσιμης σημασίας για την αποστολή. Αυτό το κανάλι είναι διαθέσιμο μόνο στους πελάτες και παρέχει το πακέτο Nextcloud για Επαγγελματίες.",
+ "Stable" : "Σταθερός",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Η πιο πρόσφατη σταθερή έκδοση. Είναι κατάλληλη για τακτική χρήση και πάντα θα ενημερώνεται με την τελευταία μεγάλη έκδοση.",
+ "Beta" : "Δοκιμαστικό",
+ "A pre-release version only for testing new features, not for production environments." : "Μια προηγούμενη έκδοση μόνο για τη δοκιμή νέων λειτουργιών, όχι για περιβάλλοντα παραγωγής.",
+ "Update" : "Ενημέρωση",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Η έκδοση που εκτελείτε δεν διατηρείται πια. Βεβαιωθείτε ότι ενημερώσατε σε μια υποστηριζόμενη έκδοση το συντομότερο δυνατό.",
- "Apps missing updates" : "Ελλιπείς ενημερώσεις εφαρμογών",
+ "Apps missing compatible version" : "Εφαρμογές χωρίς συμβατή έκδοση",
"View in store" : "Προβολή στο κέντρο εφαρμογών",
- "Apps with available updates" : "Εφαρμογές με διαθέσιμες ενημερώσεις",
+ "Apps with compatible version" : "Εφαρμογές με συμβατή έκδοση",
"Open updater" : "Άνοιγμα εφαρμογής ενημέρωσης",
"Download now" : "Λήψη τώρα",
"What's new?" : "Τι νέο υπάρχει;",
+ "View changelog" : "Εμφάνιση αλλαγών",
"The update check is not yet finished. Please refresh the page." : "Ο έλεγχος ενημερώσεων δεν τελείωσε ακόμη. Παρακαλώ ανανεώστε την σελίδα.",
"Your version is up to date." : "Έχετε την τελευταία έκδοση.",
"A non-default update server is in use to be checked for updates:" : "Ένας μή-προεπιλεγμένος διακομιστής είναι σε χρήση για έλεγχο ενημερώσεων:",
- "Update channel:" : "Ενημέρωση καναλιού:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Μπορείτε πάντα να ενημερώσετε σε μια νεότερη έκδοση. Αλλά δεν μπορείτε ποτέ να υποβαθμίσετε σε μια πιο σταθερή έκδοση.",
"Notify members of the following groups about available updates:" : "Να ενημερωθούν τα μέλη των παρακάτω ομάδων σχετικά με τις διαθέσιμες ενημερώσεις:",
- "Only notification for app updates are available." : "Είναι μόνο διαθέσιμες οι ενημερώσεις για την εφαρμογή",
+ "Only notifications for app updates are available." : "Διατίθενται μόνο ειδοποιήσεις για ενημερώσεις εφαρμογών.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Το συγκεκριμένο κανάλι ενημέρωσης καθιστά παρωχημένες τις ειδοποιήσεις που προορίζονται για τον διακομιστή.",
"The selected update channel does not support updates of the server." : "Το συγκεκριμένο κανάλι ενημέρωσης δεν υποστηρίζει ενημερώσεις διακομιστή.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Μία νέα έκδοση είναι διαθέσιμη: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Σημειώστε ότι μετά από μια νέα έκδοση, η ενημέρωση εμφανίζεται μόνο μετά την πρώτη υποέκδοση ή αργότερα. Κυκλοφορούμε νέες εκδόσεις που διαμοιράζονται με την πάροδο του χρόνου στους χρήστες μας και μερικές φορές παραλείπουμε μια έκδοση όταν εντοπίζονται προβλήματα. Μάθετε περισσότερα σχετικά με τις ενημερώσεις και τα κανάλια κυκλοφορίας στη διεύθυνση {link}",
- "Checked on {lastCheckedDate}" : "Έγινε έλεγχος στις {lastCheckedDate}",
- "Checking apps for compatible updates" : "Έλεγχος εφαρμογών για συμβατές ενημερώσεις",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Σιγουρευτείτε πως το config.php δεν έχει οριστεί σε ψευδήςψ<samp>ενεργοποίησηαγοράςεφαρμογών</samp>.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Αδυναμία σύνδεσης στο κατάστημα εφαρμογών, ή το κατάστημα εφαρμογών δεν εξέδωσε καμία ενημέρωση. Αναζητήστε χειροκίνητα ενημερώσεις ή βεβαιωθείτε ότι ο εξυπηρετητής έχει πρόσβαση στο διαδίκτυο και μπορεί να συνδεθεί στο κατάστημα εφαρμογών. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Όλες</strong> οι εφαρμογές έχουν αναβάθμιση για αυτή την έκδοση διαθέσιμη",
- "View changelog" : "Εμφάνιση αλλαγών",
- "Enterprise" : "Επαγγελματιών",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Για επαγγελματική χρήση. Παρέχει πάντα την τελευταία ενημέρωση, αλλά δεν θα ενημερωθεί αμέσως στην επόμενη μεγάλη έκδοση. Η ενημέρωση αυτή συμβαίνει μόλις η Nextcloud GmbH πραγματοποιήσει επιπλέον ελέγχους και δοκιμές για εφαρμογές μεγάλης κλίμακας και κρίσιμης σημασίας για την αποστολή. Αυτό το κανάλι είναι διαθέσιμο μόνο στους πελάτες και παρέχει το πακέτο Nextcloud για Επαγγελματίες.",
- "Stable" : "Σταθερός",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Η πιο πρόσφατη σταθερή έκδοση. Είναι κατάλληλη για τακτική χρήση και πάντα θα ενημερώνεται με την τελευταία μεγάλη έκδοση.",
- "Beta" : "Δοκιμαστικό",
- "A pre-release version only for testing new features, not for production environments." : "Μια προηγούμενη έκδοση μόνο για τη δοκιμή νέων λειτουργιών, όχι για περιβάλλοντα παραγωγής.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Η <strong>%n</strong> εφαρμογή δεν έχει αναβάθμιση για αυτή την έκδοση διαθέσιμη","Οι <strong>%n</strong> εφαρμογές δεν έχουν αναβάθμιση για αυτή την έκδοση διαθέσιμη"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Σημειώστε ότι μετά από μια νέα διανομή μπορεί να περάσει λίγος καιρός πριν εμφανιστεί εδώ. Κυκλοφορούμε κατά διαστήματα νέες εκδόσεις στους χρήστες μας και κάποιες φορές παραλείπουμε κάποια έκδοση αν βρεθούν προβλήματα."
+ "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/en_GB.js b/apps/updatenotification/l10n/en_GB.js
index a38cb86005b..6995db205bc 100644
--- a/apps/updatenotification/l10n/en_GB.js
+++ b/apps/updatenotification/l10n/en_GB.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update.",
"Channel updated" : "Channel updated",
+ "Web updater is disabled" : "Web updater is disabled",
+ "App updated" : "App updated",
+ "See what's new" : "See what's new",
+ "{app} updated to version {version}" : "{app} updated to version {version}",
"Update notifications" : "Update notifications",
"The update server could not be reached since %d days to check for new updates." : "The update server could not be reached since %d days to check for new updates.",
"Please check the Nextcloud and server log files for errors." : "Please check the Nextcloud and server log files for errors.",
- "Update to %1$s is available." : "Update to %1$s is available.",
- "Update for %1$s to version %2$s is available." : "Update for %1$s to version %2$s is available.",
+ "Update to {serverAndVersion} is available." : "Update to {serverAndVersion} is available.",
"Update for {app} to version %s is available." : "Update for {app} to version %s is available.",
"Update notification" : "Update notification",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Displays update notifications for Nextcloud and provides the SSO for the updater.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.",
- "Apps missing updates" : "Apps missing updates",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater.",
+ "Give feedback" : "Give feedback",
+ "Get started" : "Get started",
+ "No changelog available" : "No changelog available",
+ "What's new in {app} {version}" : "What's new in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Checked on {lastCheckedDate} - Open changelog",
+ "Checking apps for compatible versions" : "Checking apps for compatible versions",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>All</strong> apps have a compatible version for this Nextcloud version available.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app has no compatible version for this Nextcloud version available.","<strong>%n</strong> apps have no compatible version for this Nextcloud version available."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.",
+ "Stable" : "Stable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "The most recent stable version. It is suited for regular use and will always update to the latest major version.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "A pre-release version only for testing new features, not for production environments.",
+ "Update" : "Update",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "The version you are running is not maintained any more. Please make sure to update to a supported version as soon as possible.",
+ "Apps missing compatible version" : "Apps missing compatible version",
"View in store" : "View in store",
- "Apps with available updates" : "Apps with available updates",
+ "Apps with compatible version" : "Apps with compatible version",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!",
"Open updater" : "Open updater",
"Download now" : "Download now",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update.",
"What's new?" : "What's new?",
+ "View changelog" : "View changelog",
"The update check is not yet finished. Please refresh the page." : "The update check is not yet finished. Please refresh the page.",
"Your version is up to date." : "Your version is up to date.",
"A non-default update server is in use to be checked for updates:" : "A non-default update server is in use to be checked for updates:",
- "Update channel:" : "Update channel:",
+ "Update channel" : "Update channel",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page.",
+ "Current update channel:" : "Current update channel:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "You can always update to a newer version, but you can never downgrade to a more stable version.",
"Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
- "Only notification for app updates are available." : "Only notification for app updates are available.",
+ "No groups" : "No groups",
+ "Only notifications for app updates are available." : "Only notifications for app updates are available.",
"The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.",
"The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Checked on {lastCheckedDate}",
- "Checking apps for compatible updates" : "Checking apps for compatible updates",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>All</strong> apps have an update for this version available",
- "View changelog" : "View changelog",
- "Enterprise" : "Enterprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.",
- "Stable" : "Stable",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "The most recent stable version. It is suited for regular use and will always update to the latest major version.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "A pre-release version only for testing new features, not for production environments.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app has no update for this version available","<strong>%n</strong> apps have no update for this version available"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found."
+ "Changelog for app {app}" : "Changelog for app {app}",
+ "What's new in {app} version {version}" : "What's new in {app} version {version}",
+ "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/en_GB.json b/apps/updatenotification/l10n/en_GB.json
index 448e72d86db..6a2a6dbc4d5 100644
--- a/apps/updatenotification/l10n/en_GB.json
+++ b/apps/updatenotification/l10n/en_GB.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update.",
"Channel updated" : "Channel updated",
+ "Web updater is disabled" : "Web updater is disabled",
+ "App updated" : "App updated",
+ "See what's new" : "See what's new",
+ "{app} updated to version {version}" : "{app} updated to version {version}",
"Update notifications" : "Update notifications",
"The update server could not be reached since %d days to check for new updates." : "The update server could not be reached since %d days to check for new updates.",
"Please check the Nextcloud and server log files for errors." : "Please check the Nextcloud and server log files for errors.",
- "Update to %1$s is available." : "Update to %1$s is available.",
- "Update for %1$s to version %2$s is available." : "Update for %1$s to version %2$s is available.",
+ "Update to {serverAndVersion} is available." : "Update to {serverAndVersion} is available.",
"Update for {app} to version %s is available." : "Update for {app} to version %s is available.",
"Update notification" : "Update notification",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Displays update notifications for Nextcloud and provides the SSO for the updater.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.",
- "Apps missing updates" : "Apps missing updates",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater.",
+ "Give feedback" : "Give feedback",
+ "Get started" : "Get started",
+ "No changelog available" : "No changelog available",
+ "What's new in {app} {version}" : "What's new in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Checked on {lastCheckedDate} - Open changelog",
+ "Checking apps for compatible versions" : "Checking apps for compatible versions",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>All</strong> apps have a compatible version for this Nextcloud version available.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app has no compatible version for this Nextcloud version available.","<strong>%n</strong> apps have no compatible version for this Nextcloud version available."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.",
+ "Stable" : "Stable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "The most recent stable version. It is suited for regular use and will always update to the latest major version.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "A pre-release version only for testing new features, not for production environments.",
+ "Update" : "Update",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "The version you are running is not maintained any more. Please make sure to update to a supported version as soon as possible.",
+ "Apps missing compatible version" : "Apps missing compatible version",
"View in store" : "View in store",
- "Apps with available updates" : "Apps with available updates",
+ "Apps with compatible version" : "Apps with compatible version",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!",
"Open updater" : "Open updater",
"Download now" : "Download now",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update.",
"What's new?" : "What's new?",
+ "View changelog" : "View changelog",
"The update check is not yet finished. Please refresh the page." : "The update check is not yet finished. Please refresh the page.",
"Your version is up to date." : "Your version is up to date.",
"A non-default update server is in use to be checked for updates:" : "A non-default update server is in use to be checked for updates:",
- "Update channel:" : "Update channel:",
+ "Update channel" : "Update channel",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page.",
+ "Current update channel:" : "Current update channel:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "You can always update to a newer version, but you can never downgrade to a more stable version.",
"Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
- "Only notification for app updates are available." : "Only notification for app updates are available.",
+ "No groups" : "No groups",
+ "Only notifications for app updates are available." : "Only notifications for app updates are available.",
"The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.",
"The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Checked on {lastCheckedDate}",
- "Checking apps for compatible updates" : "Checking apps for compatible updates",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>All</strong> apps have an update for this version available",
- "View changelog" : "View changelog",
- "Enterprise" : "Enterprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.",
- "Stable" : "Stable",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "The most recent stable version. It is suited for regular use and will always update to the latest major version.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "A pre-release version only for testing new features, not for production environments.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app has no update for this version available","<strong>%n</strong> apps have no update for this version available"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found."
+ "Changelog for app {app}" : "Changelog for app {app}",
+ "What's new in {app} version {version}" : "What's new in {app} version {version}",
+ "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/eo.js b/apps/updatenotification/l10n/eo.js
index 06942cc579a..e714e10c2e9 100644
--- a/apps/updatenotification/l10n/eo.js
+++ b/apps/updatenotification/l10n/eo.js
@@ -1,46 +1,34 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} disponeblas. Ekhavi pli da informo pri kiel ĝisdatigi.",
"Channel updated" : "Kanalo ĝisdatigita",
"Update notifications" : "Sciigoj pri ĝisdatigoj",
"The update server could not be reached since %d days to check for new updates." : "La servilo de ĝisdatigoj ne atingeblis de %d tagoj.",
"Please check the Nextcloud and server log files for errors." : "Bv. kontroli la protokoldosieron de Nextcloud kaj de la servilo pri eraroj.",
- "Update to %1$s is available." : "Ĝisdatigo al %1$s disponeblas.",
- "Update for %1$s to version %2$s is available." : "Ĝisdatigo de %1$s al versio %2$s disponeblas.",
"Update for {app} to version %s is available." : "Ĝisdatigo de {app} al versio %s disponeblas.",
"Update notification" : "Sciigo pri ĝisdatigoj",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Montras sciigojn pri ĝisdatigoj pri Nextcloud kaj provizas ununuran ensaluton („SSO“ angle) por la ĝisdatigilo.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Nova versio disponeblas: <strong>{newVersionString}</strong>",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bv. certigi, ke via dosiero „config.php“ ne agordas <samp>appstoreenabled</samp> al malvero („false“).",
+ "Enterprise" : "Firmao",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Por firmaa uzo. Ĝi uzas ĉiam la plej freŝan flikaĵon, sed ĝi ne tuj ĝisdatiĝos al la sekva ĉefversio. Transiro al la sekva ĉefversio okazos, kiam Nextcloud GmbH faros plifortigaĵojn kaj pliajn testojn rilate al uzo en granda kaj grava kunteksto. Ĝi nur disponeblas por klientoj kaj ĝi estas la Nextcloud-a firmapakaĵo.",
+ "Stable" : "Stabila",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La plej freŝa stabila versio. Ĝi taŭgas por ĉiutaga uzo, kaj ĝi ĝisdatiĝos ĉiufoje al la lasta ĉefversio.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Antaŭeldona versio nur por testi novajn trajtojn; ne taŭgas por produktada medio.",
+ "Update" : "Ĝisdatigi",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versio, kiun vi nun uzas, ne plus estas subtenata. Bv. ĝisdatigi al subtenata versio kiel eble plej rapide.",
- "Apps missing updates" : "Aplikaĵoj kun mankantaj ĝisdatigoj",
"View in store" : "Vidi en la aplikaĵejo",
- "Apps with available updates" : "Apikaĵoj kun disponeblaj ĝisdatigoj",
"Open updater" : "Malfermi la ĝisdatigilon",
"Download now" : "Elŝuti nun",
"What's new?" : "Kio nova?",
+ "View changelog" : "Vidi ŝanĝoprotokolon",
"The update check is not yet finished. Please refresh the page." : "La kontrolo pri ĝisdatigoj ankoraŭ ne finiĝis. Bv. aktualigi la paĝon.",
"Your version is up to date." : "Via versio estas ĝisdata.",
"A non-default update server is in use to be checked for updates:" : "Nedefaŭlta servilo por ĝisdatigoj uziĝas por kontroli ĝisdatigojn:",
- "Update channel:" : "Ĝisdatiga kanalo:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Vi povas ĝisdatigi iam ajn al pli nova versio. Sed vi povas neniam malĝisdatigi al pli stabila versio.",
"Notify members of the following groups about available updates:" : "Sciigi anojn de la jenaj grupoj pri disponeblaj ĝisdatigoj:",
- "Only notification for app updates are available." : "Nur sciigoj pri aplikaĵaj ĝisdatigoj disponeblas.",
"The selected update channel makes dedicated notifications for the server obsolete." : "La elektita kanalo pri ĝisdatigoj igas la dediĉitajn sciigojn por la servilo neutilaj.",
"The selected update channel does not support updates of the server." : "La elektita ĝisdatiga kanalo ne subtenas ĝisdatigojn de la servilo.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Nova versio disponeblas: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Kontrolita je {lastCheckedDate}",
- "Checking apps for compatible updates" : "Kontrolado de aplikaĵoj pri kongruaj ĝisdatigoj",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bv. certigi, ke via dosiero „config.php“ ne agordas <samp>appstoreenabled</samp> al malvero („false“).",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Ne eblis konektiĝi al aplikaĵejo, aŭ la aplikaĵejo sendis neniun ĝisdatigojn. Serĉu permane pri ĝisdatigoj, aŭ certigu, ke via servilo povas aliri al la interreto kaj povas konektiĝi al la aplikaĵejo.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Ĉiuj</strong> aplikaĵoj havas ĝisdatigon por tiu ĉi versio",
- "View changelog" : "Vidi ŝanĝoprotokolon",
- "Enterprise" : "Firmao",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Por firmaa uzo. Ĝi uzas ĉiam la plej freŝan flikaĵon, sed ĝi ne tuj ĝisdatiĝos al la sekva ĉefversio. Transiro al la sekva ĉefversio okazos, kiam Nextcloud GmbH faros plifortigaĵojn kaj pliajn testojn rilate al uzo en granda kaj grava kunteksto. Ĝi nur disponeblas por klientoj kaj ĝi estas la Nextcloud-a firmapakaĵo.",
- "Stable" : "Stabila",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La plej freŝa stabila versio. Ĝi taŭgas por ĉiutaga uzo, kaj ĝi ĝisdatiĝos ĉiufoje al la lasta ĉefversio.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Antaŭeldona versio nur por testi novajn trajtojn; ne taŭgas por produktada medio.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikaĵo havas neniun ĝisdatigon por tiu versio","<strong>%n</strong> aplikaĵoj havas neniun ĝisdatigon por tiu versio"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Rimarku, ke, post nova eldono, necesos iom da tempo, antaŭ ol ĝi montriĝos ĉi tie. Ni eldonas novajn versiojn laŭgrade al niaj uzantoj, kaj ni kelkfoje preterlasas version, kiam oni trovas problemojn."
+ "{version} is available. Get more information on how to update." : "{version} disponeblas. Ekhavi pli da informo pri kiel ĝisdatigi."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/eo.json b/apps/updatenotification/l10n/eo.json
index f90eb83eb4e..ead2edc152b 100644
--- a/apps/updatenotification/l10n/eo.json
+++ b/apps/updatenotification/l10n/eo.json
@@ -1,44 +1,32 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} disponeblas. Ekhavi pli da informo pri kiel ĝisdatigi.",
"Channel updated" : "Kanalo ĝisdatigita",
"Update notifications" : "Sciigoj pri ĝisdatigoj",
"The update server could not be reached since %d days to check for new updates." : "La servilo de ĝisdatigoj ne atingeblis de %d tagoj.",
"Please check the Nextcloud and server log files for errors." : "Bv. kontroli la protokoldosieron de Nextcloud kaj de la servilo pri eraroj.",
- "Update to %1$s is available." : "Ĝisdatigo al %1$s disponeblas.",
- "Update for %1$s to version %2$s is available." : "Ĝisdatigo de %1$s al versio %2$s disponeblas.",
"Update for {app} to version %s is available." : "Ĝisdatigo de {app} al versio %s disponeblas.",
"Update notification" : "Sciigo pri ĝisdatigoj",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Montras sciigojn pri ĝisdatigoj pri Nextcloud kaj provizas ununuran ensaluton („SSO“ angle) por la ĝisdatigilo.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Nova versio disponeblas: <strong>{newVersionString}</strong>",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bv. certigi, ke via dosiero „config.php“ ne agordas <samp>appstoreenabled</samp> al malvero („false“).",
+ "Enterprise" : "Firmao",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Por firmaa uzo. Ĝi uzas ĉiam la plej freŝan flikaĵon, sed ĝi ne tuj ĝisdatiĝos al la sekva ĉefversio. Transiro al la sekva ĉefversio okazos, kiam Nextcloud GmbH faros plifortigaĵojn kaj pliajn testojn rilate al uzo en granda kaj grava kunteksto. Ĝi nur disponeblas por klientoj kaj ĝi estas la Nextcloud-a firmapakaĵo.",
+ "Stable" : "Stabila",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La plej freŝa stabila versio. Ĝi taŭgas por ĉiutaga uzo, kaj ĝi ĝisdatiĝos ĉiufoje al la lasta ĉefversio.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Antaŭeldona versio nur por testi novajn trajtojn; ne taŭgas por produktada medio.",
+ "Update" : "Ĝisdatigi",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versio, kiun vi nun uzas, ne plus estas subtenata. Bv. ĝisdatigi al subtenata versio kiel eble plej rapide.",
- "Apps missing updates" : "Aplikaĵoj kun mankantaj ĝisdatigoj",
"View in store" : "Vidi en la aplikaĵejo",
- "Apps with available updates" : "Apikaĵoj kun disponeblaj ĝisdatigoj",
"Open updater" : "Malfermi la ĝisdatigilon",
"Download now" : "Elŝuti nun",
"What's new?" : "Kio nova?",
+ "View changelog" : "Vidi ŝanĝoprotokolon",
"The update check is not yet finished. Please refresh the page." : "La kontrolo pri ĝisdatigoj ankoraŭ ne finiĝis. Bv. aktualigi la paĝon.",
"Your version is up to date." : "Via versio estas ĝisdata.",
"A non-default update server is in use to be checked for updates:" : "Nedefaŭlta servilo por ĝisdatigoj uziĝas por kontroli ĝisdatigojn:",
- "Update channel:" : "Ĝisdatiga kanalo:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Vi povas ĝisdatigi iam ajn al pli nova versio. Sed vi povas neniam malĝisdatigi al pli stabila versio.",
"Notify members of the following groups about available updates:" : "Sciigi anojn de la jenaj grupoj pri disponeblaj ĝisdatigoj:",
- "Only notification for app updates are available." : "Nur sciigoj pri aplikaĵaj ĝisdatigoj disponeblas.",
"The selected update channel makes dedicated notifications for the server obsolete." : "La elektita kanalo pri ĝisdatigoj igas la dediĉitajn sciigojn por la servilo neutilaj.",
"The selected update channel does not support updates of the server." : "La elektita ĝisdatiga kanalo ne subtenas ĝisdatigojn de la servilo.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Nova versio disponeblas: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Kontrolita je {lastCheckedDate}",
- "Checking apps for compatible updates" : "Kontrolado de aplikaĵoj pri kongruaj ĝisdatigoj",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Bv. certigi, ke via dosiero „config.php“ ne agordas <samp>appstoreenabled</samp> al malvero („false“).",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Ne eblis konektiĝi al aplikaĵejo, aŭ la aplikaĵejo sendis neniun ĝisdatigojn. Serĉu permane pri ĝisdatigoj, aŭ certigu, ke via servilo povas aliri al la interreto kaj povas konektiĝi al la aplikaĵejo.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Ĉiuj</strong> aplikaĵoj havas ĝisdatigon por tiu ĉi versio",
- "View changelog" : "Vidi ŝanĝoprotokolon",
- "Enterprise" : "Firmao",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Por firmaa uzo. Ĝi uzas ĉiam la plej freŝan flikaĵon, sed ĝi ne tuj ĝisdatiĝos al la sekva ĉefversio. Transiro al la sekva ĉefversio okazos, kiam Nextcloud GmbH faros plifortigaĵojn kaj pliajn testojn rilate al uzo en granda kaj grava kunteksto. Ĝi nur disponeblas por klientoj kaj ĝi estas la Nextcloud-a firmapakaĵo.",
- "Stable" : "Stabila",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La plej freŝa stabila versio. Ĝi taŭgas por ĉiutaga uzo, kaj ĝi ĝisdatiĝos ĉiufoje al la lasta ĉefversio.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Antaŭeldona versio nur por testi novajn trajtojn; ne taŭgas por produktada medio.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikaĵo havas neniun ĝisdatigon por tiu versio","<strong>%n</strong> aplikaĵoj havas neniun ĝisdatigon por tiu versio"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Rimarku, ke, post nova eldono, necesos iom da tempo, antaŭ ol ĝi montriĝos ĉi tie. Ni eldonas novajn versiojn laŭgrade al niaj uzantoj, kaj ni kelkfoje preterlasas version, kiam oni trovas problemojn."
+ "{version} is available. Get more information on how to update." : "{version} disponeblas. Ekhavi pli da informo pri kiel ĝisdatigi."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es.js b/apps/updatenotification/l10n/es.js
index db832fd0362..3ee9a3fb99f 100644
--- a/apps/updatenotification/l10n/es.js
+++ b/apps/updatenotification/l10n/es.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obtenga más información sobre cómo actualizar.",
"Channel updated" : "Canal actualizado",
+ "Web updater is disabled" : "El actualizador web está desactivado",
+ "App updated" : "Aplicación actualizada",
+ "See what's new" : "Novedades",
+ "{app} updated to version {version}" : "{app} actualizada a la versión {version}",
"Update notifications" : "Actualizar notificaciones",
"The update server could not be reached since %d days to check for new updates." : "No se ha podido contactar con el servidor de actualizaciones desde hace %d días para comprobar nuevas actualizaciones.",
"Please check the Nextcloud and server log files for errors." : "Por favor, revisa los archivos de registro de Nextcloud y del servidor en busca de errores.",
- "Update to %1$s is available." : "La actualización a %1$s está disponible.",
- "Update for %1$s to version %2$s is available." : "La actualización de %1$s a la versión %2$s está disponible.",
+ "Update to {serverAndVersion} is available." : "La actualización a {serverAndVersion} está disponible.",
"Update for {app} to version %s is available." : "Actualización de {app} a la versión %s está disponible.",
"Update notification" : "Notificación de actualización",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Muestra notificaciones de actualizaciones para Nexcloud y provee el SSO para el actualizador.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Muestra las notificaciones de actualización para Nextcloud, actualizaciones de apps y proporciona el SSO para el actualizador.",
+ "Give feedback" : "Dar opinión",
+ "Get started" : "Comenzar",
+ "No changelog available" : "No hay un registro de cambios disponible",
+ "What's new in {app} {version}" : "Novedades en {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "La nueva versión está disponible: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tenga en cuenta que tras un nuevo lanzamiento, la actualización sólo se mostrará después de la primera versión menor o posterior. Las nuevas versiones se distribuyen a lo largo del tiempo y a veces se omiten versiones cuando se encuentran problemas. Obtenga más información acerca de las actualizaciones y los canales de lanzamiento en {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Comprobado en {lastCheckedDate} - Abrir registro de cambios",
+ "Checking apps for compatible versions" : "Comprobando las versiones comatibles de las apps ",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegúrate de que tu config.php no tiene configurado <samp>appstoreenabled</samp> como 'false'.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No se ha podido conectar a la App Store o no se ha devuelto ninguna actualización. Busque manualmente las actualizaciones o asegúrese de que su servidor tiene acceso a Internet y pueda conectarse a la App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> las apps son compatibles con esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app no es compatible con esta versión de Nextcloud.","<strong>%n</strong> apps no son compatibles con la versión de Nextcloud.","<strong>%n</strong> apps no son compatibles con la versión de Nextcloud."],
+ "Enterprise" : "Empresa",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Proporciona siempre el último nivel de actualización, pero no realiza inmediatamente la actualización a la siguiente versión mayor. La actualización ocurre cuando Nextcloud GmbH ha realizado una revisión dedicada, pruebas para despliegues a gran escala y servicios críticos. Este canal está disponible únicamente para los clientes del paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Es la versión estable más reciente. Es adecuada para uso en producción y siempre se actualizará a la última versión principal.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Es la versión preliminar para poder probar nuevas características, no para entornos de producción.",
+ "Update" : "Actualizar",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que usas yo no está mantenida. Por favor, asegúrate de actualizar a una versión reciente tan pronto como sea posible.",
- "Apps missing updates" : "Apps con actualizaciones no disponibles",
+ "Apps missing compatible version" : "Apps sin versión compatible",
"View in store" : "Ver en la tienda",
- "Apps with available updates" : "Apps con actualizaciones disponibles",
+ "Apps with compatible version" : "Apps con versión compatible",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "¡Tenga en cuenta que el actualizador web no se recomienda con más de 100 usuarios! por favor, ¡utilice el actualizador de la línea de comandos!",
"Open updater" : "Abrir el actualizador",
"Download now" : "Descargar ahora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "El actualizador web está desactivado. Por favor, utilice el actualizador de línea de comandos o el mecanismo de actualización apropiado para su método de instalación (p. ej., Docker pull) para actualizar.",
"What's new?" : "¿Qué novedades hay?",
- "The update check is not yet finished. Please refresh the page." : "La comprobación de actuliazaciones no ha finalizado aún. Por favor, recarga la página.",
+ "View changelog" : "Ver registro de cambios",
+ "The update check is not yet finished. Please refresh the page." : "La comprobación de actualizaciones no ha finalizado aún. Por favor, recarga la página.",
"Your version is up to date." : "Su versión está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Se está usando un servidor de actualizaciones no estándar para comprobar las actualizaciones:",
- "Update channel:" : "Canal de actualización: ",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puedes actualizar a una versión más reciente. Pero no podrás desactualizar a la versión anterior.",
+ "Update channel" : "Canal de actualización",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Cambiar el canal de actualización también afecta a la página de administración de aplicaciones. P. ej., al cambiar al canal beta, se le ofrecerán actualizaciones de aplicaciones beta en la página de administración de aplicaciones.",
+ "Current update channel:" : "Canal de actualización actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puede actualizar a una versión más nueva. Pero nunca podrá retroceder a una versión anterior.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos sobre actualizaciones disponibles:",
- "Only notification for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps",
+ "No groups" : "Sin grupos",
+ "Only notifications for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps.",
"The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace obsoletas las notificaciones dedicadas para el servidor.",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor",
- "A new version is available: <strong>{newVersionString}</strong>" : "La nueva versión está disponible: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tenga en cuenta que tras un nueva lanzamiento, la actualización sólo se mostrará después de la primera versión menor o posterior. Las nuevas versiones se distribuyen entre nuestros usuarios a lo largo del tiempo y a veces se omite una versión cuando se encuentran problemas. Obtenga más información sobre las actualizaciones y los canales de lanzamiento en {link}",
- "Checked on {lastCheckedDate}" : "Comprobado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Comprobando que las apps tengan actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegúrate de que tu config.php no tiene configurado <samp>appstoreenabled</samp> como 'false'.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No se ha podido conectar con la appstore o no ha devuelto ninguna actualización. Busca actualizaciones manualmente o asegúrate de que tu servidor tiene acceso a internet y puede conectarse a la appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las apps tienen disponible una actualización para esta versión",
- "View changelog" : "Ver registro de cambios",
- "Enterprise" : "Empresa",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Proporciona siempre el último nivel de actualización, pero no realiza inmediatamente la actualización a la siguiente versión mayor. La actualización ocurre cuando Nextcloud GmbH ha realizado una revisión dedicada, pruebas para despliegues a gran escala y servicios críticos. Este canal está disponible únicamente para los clientes del paquete Nextcloud Enterprise.",
- "Stable" : "Estable",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Es la versión estable más reciente. Es adecuada para uso en producción y siempre se actualizará a la última versión principal.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Es la versión preliminar para poder probar nuevas características, no para entornos de producción.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app no dispone de actualización para esta versión.","<strong>%n</strong> apps no disponen de actualización para esta versión."],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota: tras un nuevo lanzamiento, puede pasar algo de tiempo antes de que aparezca aquí. Escalonamos la difusión de nuevas versiones a nuestros usuarios y a veces saltamos una versión cuando aparecen problemas."
+ "Changelog for app {app}" : "Registro de cambios para la aplicación {app}",
+ "What's new in {app} version {version}" : "Novedades en {app} versión {version}",
+ "{version} is available. Get more information on how to update." : "{version} está disponible. Obtenga más información sobre cómo actualizar."
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es.json b/apps/updatenotification/l10n/es.json
index cc34d9f01cc..c700ef56234 100644
--- a/apps/updatenotification/l10n/es.json
+++ b/apps/updatenotification/l10n/es.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obtenga más información sobre cómo actualizar.",
"Channel updated" : "Canal actualizado",
+ "Web updater is disabled" : "El actualizador web está desactivado",
+ "App updated" : "Aplicación actualizada",
+ "See what's new" : "Novedades",
+ "{app} updated to version {version}" : "{app} actualizada a la versión {version}",
"Update notifications" : "Actualizar notificaciones",
"The update server could not be reached since %d days to check for new updates." : "No se ha podido contactar con el servidor de actualizaciones desde hace %d días para comprobar nuevas actualizaciones.",
"Please check the Nextcloud and server log files for errors." : "Por favor, revisa los archivos de registro de Nextcloud y del servidor en busca de errores.",
- "Update to %1$s is available." : "La actualización a %1$s está disponible.",
- "Update for %1$s to version %2$s is available." : "La actualización de %1$s a la versión %2$s está disponible.",
+ "Update to {serverAndVersion} is available." : "La actualización a {serverAndVersion} está disponible.",
"Update for {app} to version %s is available." : "Actualización de {app} a la versión %s está disponible.",
"Update notification" : "Notificación de actualización",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Muestra notificaciones de actualizaciones para Nexcloud y provee el SSO para el actualizador.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Muestra las notificaciones de actualización para Nextcloud, actualizaciones de apps y proporciona el SSO para el actualizador.",
+ "Give feedback" : "Dar opinión",
+ "Get started" : "Comenzar",
+ "No changelog available" : "No hay un registro de cambios disponible",
+ "What's new in {app} {version}" : "Novedades en {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "La nueva versión está disponible: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tenga en cuenta que tras un nuevo lanzamiento, la actualización sólo se mostrará después de la primera versión menor o posterior. Las nuevas versiones se distribuyen a lo largo del tiempo y a veces se omiten versiones cuando se encuentran problemas. Obtenga más información acerca de las actualizaciones y los canales de lanzamiento en {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Comprobado en {lastCheckedDate} - Abrir registro de cambios",
+ "Checking apps for compatible versions" : "Comprobando las versiones comatibles de las apps ",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegúrate de que tu config.php no tiene configurado <samp>appstoreenabled</samp> como 'false'.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No se ha podido conectar a la App Store o no se ha devuelto ninguna actualización. Busque manualmente las actualizaciones o asegúrese de que su servidor tiene acceso a Internet y pueda conectarse a la App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> las apps son compatibles con esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app no es compatible con esta versión de Nextcloud.","<strong>%n</strong> apps no son compatibles con la versión de Nextcloud.","<strong>%n</strong> apps no son compatibles con la versión de Nextcloud."],
+ "Enterprise" : "Empresa",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Proporciona siempre el último nivel de actualización, pero no realiza inmediatamente la actualización a la siguiente versión mayor. La actualización ocurre cuando Nextcloud GmbH ha realizado una revisión dedicada, pruebas para despliegues a gran escala y servicios críticos. Este canal está disponible únicamente para los clientes del paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Es la versión estable más reciente. Es adecuada para uso en producción y siempre se actualizará a la última versión principal.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Es la versión preliminar para poder probar nuevas características, no para entornos de producción.",
+ "Update" : "Actualizar",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que usas yo no está mantenida. Por favor, asegúrate de actualizar a una versión reciente tan pronto como sea posible.",
- "Apps missing updates" : "Apps con actualizaciones no disponibles",
+ "Apps missing compatible version" : "Apps sin versión compatible",
"View in store" : "Ver en la tienda",
- "Apps with available updates" : "Apps con actualizaciones disponibles",
+ "Apps with compatible version" : "Apps con versión compatible",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "¡Tenga en cuenta que el actualizador web no se recomienda con más de 100 usuarios! por favor, ¡utilice el actualizador de la línea de comandos!",
"Open updater" : "Abrir el actualizador",
"Download now" : "Descargar ahora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "El actualizador web está desactivado. Por favor, utilice el actualizador de línea de comandos o el mecanismo de actualización apropiado para su método de instalación (p. ej., Docker pull) para actualizar.",
"What's new?" : "¿Qué novedades hay?",
- "The update check is not yet finished. Please refresh the page." : "La comprobación de actuliazaciones no ha finalizado aún. Por favor, recarga la página.",
+ "View changelog" : "Ver registro de cambios",
+ "The update check is not yet finished. Please refresh the page." : "La comprobación de actualizaciones no ha finalizado aún. Por favor, recarga la página.",
"Your version is up to date." : "Su versión está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Se está usando un servidor de actualizaciones no estándar para comprobar las actualizaciones:",
- "Update channel:" : "Canal de actualización: ",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puedes actualizar a una versión más reciente. Pero no podrás desactualizar a la versión anterior.",
+ "Update channel" : "Canal de actualización",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Cambiar el canal de actualización también afecta a la página de administración de aplicaciones. P. ej., al cambiar al canal beta, se le ofrecerán actualizaciones de aplicaciones beta en la página de administración de aplicaciones.",
+ "Current update channel:" : "Canal de actualización actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puede actualizar a una versión más nueva. Pero nunca podrá retroceder a una versión anterior.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos sobre actualizaciones disponibles:",
- "Only notification for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps",
+ "No groups" : "Sin grupos",
+ "Only notifications for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps.",
"The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace obsoletas las notificaciones dedicadas para el servidor.",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor",
- "A new version is available: <strong>{newVersionString}</strong>" : "La nueva versión está disponible: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tenga en cuenta que tras un nueva lanzamiento, la actualización sólo se mostrará después de la primera versión menor o posterior. Las nuevas versiones se distribuyen entre nuestros usuarios a lo largo del tiempo y a veces se omite una versión cuando se encuentran problemas. Obtenga más información sobre las actualizaciones y los canales de lanzamiento en {link}",
- "Checked on {lastCheckedDate}" : "Comprobado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Comprobando que las apps tengan actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegúrate de que tu config.php no tiene configurado <samp>appstoreenabled</samp> como 'false'.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No se ha podido conectar con la appstore o no ha devuelto ninguna actualización. Busca actualizaciones manualmente o asegúrate de que tu servidor tiene acceso a internet y puede conectarse a la appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las apps tienen disponible una actualización para esta versión",
- "View changelog" : "Ver registro de cambios",
- "Enterprise" : "Empresa",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Proporciona siempre el último nivel de actualización, pero no realiza inmediatamente la actualización a la siguiente versión mayor. La actualización ocurre cuando Nextcloud GmbH ha realizado una revisión dedicada, pruebas para despliegues a gran escala y servicios críticos. Este canal está disponible únicamente para los clientes del paquete Nextcloud Enterprise.",
- "Stable" : "Estable",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Es la versión estable más reciente. Es adecuada para uso en producción y siempre se actualizará a la última versión principal.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Es la versión preliminar para poder probar nuevas características, no para entornos de producción.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app no dispone de actualización para esta versión.","<strong>%n</strong> apps no disponen de actualización para esta versión."],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota: tras un nuevo lanzamiento, puede pasar algo de tiempo antes de que aparezca aquí. Escalonamos la difusión de nuevas versiones a nuestros usuarios y a veces saltamos una versión cuando aparecen problemas."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+ "Changelog for app {app}" : "Registro de cambios para la aplicación {app}",
+ "What's new in {app} version {version}" : "Novedades en {app} versión {version}",
+ "{version} is available. Get more information on how to update." : "{version} está disponible. Obtenga más información sobre cómo actualizar."
+},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_419.js b/apps/updatenotification/l10n/es_419.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_419.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_419.json b/apps/updatenotification/l10n/es_419.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_419.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_AR.js b/apps/updatenotification/l10n/es_AR.js
index 4e161667c41..fcf8d744a1b 100644
--- a/apps/updatenotification/l10n/es_AR.js
+++ b/apps/updatenotification/l10n/es_AR.js
@@ -1,25 +1,42 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} no está disponible. Obtenga más información acerca de cómo actualizar. ",
- "Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
+ "Web updater is disabled" : "El actualizador web está desactivado",
+ "Update notifications" : "Actualizar notificaciones",
"The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
"Please check the Nextcloud and server log files for errors." : "Favor de verificar los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
"Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
+ "Update notification" : "Notificación de actualización",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Comprobando que las apps tengan actualizaciones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a \"false\".",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No se ha podido conectar a la App Store o no se ha devuelto ninguna actualización. Busque manualmente las actualizaciones o asegúrese de que su servidor tiene acceso a Internet y pueda conectarse a la App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> las apps son compatibles con esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["La app <strong>%n</strong> no tiene una versión disponible compatible con esta versión de Nextcloud.","Las apps 1%n1 no tienen una versión disponible compatible con esta versión de Nextcloud.","Las apps <strong>%n</strong> no tienen una versión compatible con esta versión de Nextcloud."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Proporciona siempre el último nivel de actualización, pero no realiza inmediatamente la actualización a la siguiente versión mayor. La actualización ocurre cuando Nextcloud GmbH ha realizado una revisión dedicada, pruebas para despliegues a gran escala y servicios críticos. Este canal está disponible únicamente para los clientes del paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Es la versión estable más reciente. Es adecuada para uso en producción y siempre se actualizará a la última versión principal.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Es la versión preliminar para poder probar nuevas características, no para entornos de producción.",
+ "Update" : "Actualizar",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que usás yo no está mantenida. Por favor, asegurate de actualizar a una versión reciente tan pronto como sea posible.",
+ "Apps missing compatible version" : "Apps sin versión compatible",
+ "View in store" : "Ver en la tienda",
+ "Apps with compatible version" : "Apps con versión compatible",
"Open updater" : "Abrir actualizador",
- "Your version is up to date." : "Su verisón está actualizada.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puede actualizar a una versión más reciente / canal experimental. Sinembargo nunca podrá desactualizar la versión a un canal más estable. ",
+ "Download now" : "Descargar ahora",
+ "What's new?" : "¿Qué novedades hay?",
+ "View changelog" : "Ver registro de cambios",
+ "The update check is not yet finished. Please refresh the page." : "La comprobación de actualizaciones no ha finalizado aún. Por favor, recargá la página.",
+ "Your version is up to date." : "Su versión está actualizada.",
+ "A non-default update server is in use to be checked for updates:" : "Se está usando un servidor de actualizaciones no estándar para comprobar las actualizaciones:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puedes actualizar a una versión más reciente. Pero no podrás volver a una versión anterior estable.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
+ "Only notifications for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, favor de intentar la actualización manual",
- "A new version is available: %s" : "Una nueva versión está disponible: %s",
- "Download now" : "Descargar ahora",
- "Checked on %s" : "Verificado el %s",
- "Update channel:" : "Actualizar el canal:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. "
+ "{version} is available. Get more information on how to update." : "{version} está disponible. Obtenga más información sobre cómo actualizar."
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_AR.json b/apps/updatenotification/l10n/es_AR.json
index 7293dbb1a1b..0d8aa3ab786 100644
--- a/apps/updatenotification/l10n/es_AR.json
+++ b/apps/updatenotification/l10n/es_AR.json
@@ -1,23 +1,40 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} no está disponible. Obtenga más información acerca de cómo actualizar. ",
- "Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
+ "Web updater is disabled" : "El actualizador web está desactivado",
+ "Update notifications" : "Actualizar notificaciones",
"The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
"Please check the Nextcloud and server log files for errors." : "Favor de verificar los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
"Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
+ "Update notification" : "Notificación de actualización",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Comprobando que las apps tengan actualizaciones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a \"false\".",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No se ha podido conectar a la App Store o no se ha devuelto ninguna actualización. Busque manualmente las actualizaciones o asegúrese de que su servidor tiene acceso a Internet y pueda conectarse a la App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> las apps son compatibles con esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["La app <strong>%n</strong> no tiene una versión disponible compatible con esta versión de Nextcloud.","Las apps 1%n1 no tienen una versión disponible compatible con esta versión de Nextcloud.","Las apps <strong>%n</strong> no tienen una versión compatible con esta versión de Nextcloud."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Proporciona siempre el último nivel de actualización, pero no realiza inmediatamente la actualización a la siguiente versión mayor. La actualización ocurre cuando Nextcloud GmbH ha realizado una revisión dedicada, pruebas para despliegues a gran escala y servicios críticos. Este canal está disponible únicamente para los clientes del paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Es la versión estable más reciente. Es adecuada para uso en producción y siempre se actualizará a la última versión principal.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Es la versión preliminar para poder probar nuevas características, no para entornos de producción.",
+ "Update" : "Actualizar",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que usás yo no está mantenida. Por favor, asegurate de actualizar a una versión reciente tan pronto como sea posible.",
+ "Apps missing compatible version" : "Apps sin versión compatible",
+ "View in store" : "Ver en la tienda",
+ "Apps with compatible version" : "Apps con versión compatible",
"Open updater" : "Abrir actualizador",
- "Your version is up to date." : "Su verisón está actualizada.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puede actualizar a una versión más reciente / canal experimental. Sinembargo nunca podrá desactualizar la versión a un canal más estable. ",
+ "Download now" : "Descargar ahora",
+ "What's new?" : "¿Qué novedades hay?",
+ "View changelog" : "Ver registro de cambios",
+ "The update check is not yet finished. Please refresh the page." : "La comprobación de actualizaciones no ha finalizado aún. Por favor, recargá la página.",
+ "Your version is up to date." : "Su versión está actualizada.",
+ "A non-default update server is in use to be checked for updates:" : "Se está usando un servidor de actualizaciones no estándar para comprobar las actualizaciones:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puedes actualizar a una versión más reciente. Pero no podrás volver a una versión anterior estable.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
+ "Only notifications for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, favor de intentar la actualización manual",
- "A new version is available: %s" : "Una nueva versión está disponible: %s",
- "Download now" : "Descargar ahora",
- "Checked on %s" : "Verificado el %s",
- "Update channel:" : "Actualizar el canal:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. "
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+ "{version} is available. Get more information on how to update." : "{version} está disponible. Obtenga más información sobre cómo actualizar."
+},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_CL.js b/apps/updatenotification/l10n/es_CL.js
deleted file mode 100644
index 797a7637b15..00000000000
--- a/apps/updatenotification/l10n/es_CL.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_CL.json b/apps/updatenotification/l10n/es_CL.json
deleted file mode 100644
index 7bb25440ab1..00000000000
--- a/apps/updatenotification/l10n/es_CL.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_CO.js b/apps/updatenotification/l10n/es_CO.js
deleted file mode 100644
index 797a7637b15..00000000000
--- a/apps/updatenotification/l10n/es_CO.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_CO.json b/apps/updatenotification/l10n/es_CO.json
deleted file mode 100644
index 7bb25440ab1..00000000000
--- a/apps/updatenotification/l10n/es_CO.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_CR.js b/apps/updatenotification/l10n/es_CR.js
deleted file mode 100644
index 797a7637b15..00000000000
--- a/apps/updatenotification/l10n/es_CR.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_CR.json b/apps/updatenotification/l10n/es_CR.json
deleted file mode 100644
index 7bb25440ab1..00000000000
--- a/apps/updatenotification/l10n/es_CR.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_DO.js b/apps/updatenotification/l10n/es_DO.js
deleted file mode 100644
index 797a7637b15..00000000000
--- a/apps/updatenotification/l10n/es_DO.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_DO.json b/apps/updatenotification/l10n/es_DO.json
deleted file mode 100644
index 7bb25440ab1..00000000000
--- a/apps/updatenotification/l10n/es_DO.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_EC.js b/apps/updatenotification/l10n/es_EC.js
index 797a7637b15..baf8e5de5a7 100644
--- a/apps/updatenotification/l10n/es_EC.js
+++ b/apps/updatenotification/l10n/es_EC.js
@@ -1,35 +1,47 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
"Channel updated" : "Canal actualizado",
+ "Web updater is disabled" : "El actualizador web está desactivado",
"Update notifications" : "Actualizar notificaciones",
"The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
"Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
+ "Update to {serverAndVersion} is available." : "Hay una actualización disponible a {serverAndVersion}.",
"Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
"Update notification" : "Notificación de actualización",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Comprobando aplicaciones en busca de versiones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No se pudo conectar con la Tienda de aplicaciones o no se han devuelto actualizaciones en absoluto. Busca actualizaciones manualmente o asegúrate de que tu servidor tenga acceso a Internet y pueda conectarse a la Tienda de aplicaciones.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> las aplicaciones tienen una versión compatible disponible para esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicación no tiene una versión compatible disponible para esta versión de Nextcloud.","<strong>%n</strong> aplicaciones no tienen una versión compatible disponible para esta versión de Nextcloud.","<strong>%n</strong> aplicaciones no tienen una versión compatible disponible para esta versión de Nextcloud."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Siempre proporciona el último nivel de parche, pero no se actualizará inmediatamente a la siguiente versión principal. Esa actualización se realizará una vez que Nextcloud GmbH haya realizado una mayor fortificación y pruebas para implementaciones a gran escala y críticas para la misión. Este canal solo está disponible para clientes y proporciona el paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versión estable más reciente. Es adecuada para uso regular y siempre se actualizará a la última versión principal.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versión previa al lanzamiento solo para probar nuevas funciones, no apta para entornos de producción.",
+ "Update" : "Actualizar",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
+ "Apps missing compatible version" : "Aplicaciones sin versión compatible",
"View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
+ "Apps with compatible version" : "Aplicaciones con versión compatible",
"Open updater" : "Abrir actualizador",
"Download now" : "Descargar ahora",
+ "What's new?" : "¿Qué hay de nuevo?",
+ "View changelog" : "Ver registro de cambios",
"The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
"Your version is up to date." : "Tu verisón está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
+ "Update channel" : "Canal de actualización",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Al cambiar el canal de actualización, también se afecta la página de administración de aplicaciones. Por ejemplo, al cambiar al canal beta, se te ofrecerán actualizaciones beta de aplicaciones en la página de administración de aplicaciones.",
+ "Current update channel:" : "Canal de actualización actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puedes actualizar a una versión más nueva. Pero nunca puedes retroceder a una versión más estable.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
+ "No groups" : "Sin grupos",
+ "Only notifications for app updates are available." : "Solo están disponibles notificaciones para actualizaciones de aplicaciones.",
"The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
+ "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. "
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_EC.json b/apps/updatenotification/l10n/es_EC.json
index 7bb25440ab1..2d0d1dd7bdd 100644
--- a/apps/updatenotification/l10n/es_EC.json
+++ b/apps/updatenotification/l10n/es_EC.json
@@ -1,33 +1,45 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
"Channel updated" : "Canal actualizado",
+ "Web updater is disabled" : "El actualizador web está desactivado",
"Update notifications" : "Actualizar notificaciones",
"The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
"Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
+ "Update to {serverAndVersion} is available." : "Hay una actualización disponible a {serverAndVersion}.",
"Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
"Update notification" : "Notificación de actualización",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Comprobando aplicaciones en busca de versiones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No se pudo conectar con la Tienda de aplicaciones o no se han devuelto actualizaciones en absoluto. Busca actualizaciones manualmente o asegúrate de que tu servidor tenga acceso a Internet y pueda conectarse a la Tienda de aplicaciones.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> las aplicaciones tienen una versión compatible disponible para esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicación no tiene una versión compatible disponible para esta versión de Nextcloud.","<strong>%n</strong> aplicaciones no tienen una versión compatible disponible para esta versión de Nextcloud.","<strong>%n</strong> aplicaciones no tienen una versión compatible disponible para esta versión de Nextcloud."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Siempre proporciona el último nivel de parche, pero no se actualizará inmediatamente a la siguiente versión principal. Esa actualización se realizará una vez que Nextcloud GmbH haya realizado una mayor fortificación y pruebas para implementaciones a gran escala y críticas para la misión. Este canal solo está disponible para clientes y proporciona el paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versión estable más reciente. Es adecuada para uso regular y siempre se actualizará a la última versión principal.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versión previa al lanzamiento solo para probar nuevas funciones, no apta para entornos de producción.",
+ "Update" : "Actualizar",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
+ "Apps missing compatible version" : "Aplicaciones sin versión compatible",
"View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
+ "Apps with compatible version" : "Aplicaciones con versión compatible",
"Open updater" : "Abrir actualizador",
"Download now" : "Descargar ahora",
+ "What's new?" : "¿Qué hay de nuevo?",
+ "View changelog" : "Ver registro de cambios",
"The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
"Your version is up to date." : "Tu verisón está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
+ "Update channel" : "Canal de actualización",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Al cambiar el canal de actualización, también se afecta la página de administración de aplicaciones. Por ejemplo, al cambiar al canal beta, se te ofrecerán actualizaciones beta de aplicaciones en la página de administración de aplicaciones.",
+ "Current update channel:" : "Canal de actualización actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puedes actualizar a una versión más nueva. Pero nunca puedes retroceder a una versión más estable.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
+ "No groups" : "Sin grupos",
+ "Only notifications for app updates are available." : "Solo están disponibles notificaciones para actualizaciones de aplicaciones.",
"The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+ "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. "
+},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_GT.js b/apps/updatenotification/l10n/es_GT.js
deleted file mode 100644
index 797a7637b15..00000000000
--- a/apps/updatenotification/l10n/es_GT.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_GT.json b/apps/updatenotification/l10n/es_GT.json
deleted file mode 100644
index 7bb25440ab1..00000000000
--- a/apps/updatenotification/l10n/es_GT.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_HN.js b/apps/updatenotification/l10n/es_HN.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_HN.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_HN.json b/apps/updatenotification/l10n/es_HN.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_HN.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_MX.js b/apps/updatenotification/l10n/es_MX.js
index ef7b54263b7..7b6b0394429 100644
--- a/apps/updatenotification/l10n/es_MX.js
+++ b/apps/updatenotification/l10n/es_MX.js
@@ -1,37 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
"Channel updated" : "Canal actualizado",
+ "Web updater is disabled" : "El actualizador web está desactivado",
+ "App updated" : "Aplicación actualizada",
+ "See what's new" : "Novedades",
+ "{app} updated to version {version}" : "{app} actualizada a la versión {version}",
"Update notifications" : "Actualizar notificaciones",
"The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
"Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
+ "Update to {serverAndVersion} is available." : "La actualización a {serverAndVersion} está disponible.",
"Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
"Update notification" : "Notificación de actualización",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Despliega las notifiaciones de actualización para Nextcloud y provee el SSO para el actualizador.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Muestra las notificaciones de actualización para Nextcloud, actualizaciones de aplicaciones y proporciona el SSO para el actualizador.",
+ "Give feedback" : "Dar opinión",
+ "Get started" : "¡Empezar!",
+ "No changelog available" : "No hay un registro de cambios disponible",
+ "What's new in {app} {version}" : "Novedades en {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tenga en cuenta que tras un nueva lanzamiento, la actualización sólo se mostrará después de la primera versión menor o posterior. Las nuevas versiones se distribuyen a lo largo del tiempo y a veces se omiten versiones cuando se encuentran problemas. Obtenga más información acerca de las actualizaciones y los canales de lanzamiento en {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Comprobado en {lastCheckedDate} - Abrir el registro de cambios",
+ "Checking apps for compatible versions" : "Comprobando aplicaciones en busca de versiones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No se pudo conectar con la tienda de aplicaciones o no se ha devuelto ninguna actualización. Busque manualmente las actualizaciones o asegúrese de que su servidor tenga acceso a internet y pueda conectarse a la tienda de aplicaciones.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> las aplicaciones tienen una versión compatible disponible para esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicación no tiene una versión compatible disponible para esta versión de Nextcloud.","<strong>%n</strong> aplicaciones no tienen una versión compatible disponible para esta versión de Nextcloud.","<strong>%n</strong> aplicaciones no tienen una versión compatible disponible para esta versión de Nextcloud."],
+ "Enterprise" : "Empresarial",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Proporciona siempre el último parche, pero no se actualizará inmediatamente a la siguiente versión principal. Esa actualización se realizará una vez que Nextcloud GmbH haya realizado una fortificación adicional y pruebas para implementaciones a gran escala y críticas para la misión. Este canal sólo está disponible para clientes y proporciona el paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versión estable más reciente. Es adecuada para uso regular y siempre se actualizará a la última versión principal.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versión preliminar para poder probar nuevas características, no para ambientes de producción.",
+ "Update" : "Actualizar",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "Apps missing updates" : "Aplicaciones con actualizaciones faltantes",
+ "Apps missing compatible version" : "Aplicaciones sin versión compatible",
"View in store" : "Ver en tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
+ "Apps with compatible version" : "Aplicaciones con versión compatible",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "¡Tenga en cuenta que el actualizador web no se recomienda con más de 100 usuarios! por favor, ¡utilice el actualizador de la línea de comandos!",
"Open updater" : "Abrir actualizador",
"Download now" : "Descargar ahora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "El actualizador web está desactivado. Por favor, utilice el actualizador de la línea de comandos o el mecanismo de actualización apropiado para su método de instalación (por ejemplo, Docker pull) para actualizar.",
+ "What's new?" : "¿Qué hay de nuevo?",
+ "View changelog" : "Ver el registro de cambios",
"The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
"Your version is up to date." : "Tu verisón está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
+ "Update channel" : "Canal de actualizaciones",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Cambiar el canal de actualización también afecta a la página de administración de aplicaciones. Por ejemplo, al cambiar al canal beta, se le ofrecerán actualizaciones de aplicaciones beta en la página de administración de aplicaciones.",
+ "Current update channel:" : "Canal de actualizaciones actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puede actualizar a una versión más reciente. Pero nunca podrá retroceder a una versión más estable.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
+ "No groups" : "Sin grupos",
+ "Only notifications for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de aplicaciones.",
"The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
+ "Changelog for app {app}" : "Registro de cambios para la aplicación {app}",
+ "What's new in {app} version {version}" : "Novedades en {app} versión {version}",
+ "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. "
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/es_MX.json b/apps/updatenotification/l10n/es_MX.json
index 6348327cc3a..4c48849d0ce 100644
--- a/apps/updatenotification/l10n/es_MX.json
+++ b/apps/updatenotification/l10n/es_MX.json
@@ -1,35 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
"Channel updated" : "Canal actualizado",
+ "Web updater is disabled" : "El actualizador web está desactivado",
+ "App updated" : "Aplicación actualizada",
+ "See what's new" : "Novedades",
+ "{app} updated to version {version}" : "{app} actualizada a la versión {version}",
"Update notifications" : "Actualizar notificaciones",
"The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
"Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
+ "Update to {serverAndVersion} is available." : "La actualización a {serverAndVersion} está disponible.",
"Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
"Update notification" : "Notificación de actualización",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Despliega las notifiaciones de actualización para Nextcloud y provee el SSO para el actualizador.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Muestra las notificaciones de actualización para Nextcloud, actualizaciones de aplicaciones y proporciona el SSO para el actualizador.",
+ "Give feedback" : "Dar opinión",
+ "Get started" : "¡Empezar!",
+ "No changelog available" : "No hay un registro de cambios disponible",
+ "What's new in {app} {version}" : "Novedades en {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tenga en cuenta que tras un nueva lanzamiento, la actualización sólo se mostrará después de la primera versión menor o posterior. Las nuevas versiones se distribuyen a lo largo del tiempo y a veces se omiten versiones cuando se encuentran problemas. Obtenga más información acerca de las actualizaciones y los canales de lanzamiento en {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Comprobado en {lastCheckedDate} - Abrir el registro de cambios",
+ "Checking apps for compatible versions" : "Comprobando aplicaciones en busca de versiones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No se pudo conectar con la tienda de aplicaciones o no se ha devuelto ninguna actualización. Busque manualmente las actualizaciones o asegúrese de que su servidor tenga acceso a internet y pueda conectarse a la tienda de aplicaciones.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> las aplicaciones tienen una versión compatible disponible para esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicación no tiene una versión compatible disponible para esta versión de Nextcloud.","<strong>%n</strong> aplicaciones no tienen una versión compatible disponible para esta versión de Nextcloud.","<strong>%n</strong> aplicaciones no tienen una versión compatible disponible para esta versión de Nextcloud."],
+ "Enterprise" : "Empresarial",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Proporciona siempre el último parche, pero no se actualizará inmediatamente a la siguiente versión principal. Esa actualización se realizará una vez que Nextcloud GmbH haya realizado una fortificación adicional y pruebas para implementaciones a gran escala y críticas para la misión. Este canal sólo está disponible para clientes y proporciona el paquete Nextcloud Enterprise.",
+ "Stable" : "Estable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versión estable más reciente. Es adecuada para uso regular y siempre se actualizará a la última versión principal.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versión preliminar para poder probar nuevas características, no para ambientes de producción.",
+ "Update" : "Actualizar",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "Apps missing updates" : "Aplicaciones con actualizaciones faltantes",
+ "Apps missing compatible version" : "Aplicaciones sin versión compatible",
"View in store" : "Ver en tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
+ "Apps with compatible version" : "Aplicaciones con versión compatible",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "¡Tenga en cuenta que el actualizador web no se recomienda con más de 100 usuarios! por favor, ¡utilice el actualizador de la línea de comandos!",
"Open updater" : "Abrir actualizador",
"Download now" : "Descargar ahora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "El actualizador web está desactivado. Por favor, utilice el actualizador de la línea de comandos o el mecanismo de actualización apropiado para su método de instalación (por ejemplo, Docker pull) para actualizar.",
+ "What's new?" : "¿Qué hay de nuevo?",
+ "View changelog" : "Ver el registro de cambios",
"The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
"Your version is up to date." : "Tu verisón está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
+ "Update channel" : "Canal de actualizaciones",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Cambiar el canal de actualización también afecta a la página de administración de aplicaciones. Por ejemplo, al cambiar al canal beta, se le ofrecerán actualizaciones de aplicaciones beta en la página de administración de aplicaciones.",
+ "Current update channel:" : "Canal de actualizaciones actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Siempre puede actualizar a una versión más reciente. Pero nunca podrá retroceder a una versión más estable.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
+ "No groups" : "Sin grupos",
+ "Only notifications for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de aplicaciones.",
"The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+ "Changelog for app {app}" : "Registro de cambios para la aplicación {app}",
+ "What's new in {app} version {version}" : "Novedades en {app} versión {version}",
+ "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. "
+},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_NI.js b/apps/updatenotification/l10n/es_NI.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_NI.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_NI.json b/apps/updatenotification/l10n/es_NI.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_NI.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_PA.js b/apps/updatenotification/l10n/es_PA.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_PA.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_PA.json b/apps/updatenotification/l10n/es_PA.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_PA.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_PE.js b/apps/updatenotification/l10n/es_PE.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_PE.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_PE.json b/apps/updatenotification/l10n/es_PE.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_PE.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_PR.js b/apps/updatenotification/l10n/es_PR.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_PR.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_PR.json b/apps/updatenotification/l10n/es_PR.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_PR.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_PY.js b/apps/updatenotification/l10n/es_PY.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_PY.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_PY.json b/apps/updatenotification/l10n/es_PY.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_PY.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_SV.js b/apps/updatenotification/l10n/es_SV.js
deleted file mode 100644
index 797a7637b15..00000000000
--- a/apps/updatenotification/l10n/es_SV.js
+++ /dev/null
@@ -1,35 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_SV.json b/apps/updatenotification/l10n/es_SV.json
deleted file mode 100644
index 7bb25440ab1..00000000000
--- a/apps/updatenotification/l10n/es_SV.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "Update notification" : "Notificación de actualización",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
- "View in store" : "Ver en la tienda",
- "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_UY.js b/apps/updatenotification/l10n/es_UY.js
deleted file mode 100644
index 160f50324b3..00000000000
--- a/apps/updatenotification/l10n/es_UY.js
+++ /dev/null
@@ -1,27 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/es_UY.json b/apps/updatenotification/l10n/es_UY.json
deleted file mode 100644
index 6deb3d02df1..00000000000
--- a/apps/updatenotification/l10n/es_UY.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
- "Channel updated" : "Canal actualizado",
- "Update notifications" : "Actualizar notificaciones",
- "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ",
- "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ",
- "Update to %1$s is available." : "La actualización a %1$s está disponible. ",
- "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
- "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
- "View in store" : "Ver en la tienda",
- "Open updater" : "Abrir actualizador",
- "Download now" : "Descargar ahora",
- "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.",
- "Your version is up to date." : "Tu verisón está actualizada.",
- "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
- "Update channel:" : "Actualizar el canal:",
- "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
- "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
- "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor, asegurate de que tu archivo config.php no establezca <samp>appstoreenabled</samp> a falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó actualizaciones. Busca manualmente actualizaciones o asegurate de que el servidor tenga acceso a Internet y que pueda conectarse a la appstore. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/et_EE.js b/apps/updatenotification/l10n/et_EE.js
index 08bb12ef9b1..6c2ea50b26c 100644
--- a/apps/updatenotification/l10n/et_EE.js
+++ b/apps/updatenotification/l10n/et_EE.js
@@ -1,21 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} on saadaval. Vaata lisainfot uuendamise kohta.",
- "Your version is up to date." : "Su versioon on ajakohane.",
- "Update channel:" : "Uuenduste kanal:",
- "Notify members of the following groups about available updates:" : "Teavita jägmiste gruppide liikmeid saadaval olevatest uuendustest:",
- "Only notification for app updates are available." : "Saadaval on ainult rakenduste uuenduste kohta käivad teated.",
- "Could not start updater, please try the manual update" : "Uuendajat ei saanud käivitad, proovige käsitsi uuendada",
- "Update notifications" : "Uuendusmärguanded",
"Channel updated" : "Kanal värskendatud",
- "Update to %1$s is available." : "Uuendus versioonile %1$s on saadaval.",
- "Update for %1$s to version %2$s is available." : "Uuendus versioonilt %1$s versioonile %2$s on saadaval.",
+ "Web updater is disabled" : "Veebiuuendaja on keelatud",
+ "App updated" : "Rakendus on uuendatud",
+ "See what's new" : "Kae, mida uut leidub",
+ "{app} updated to version {version}" : "{app} uuendati versioonile {version}",
+ "Update notifications" : "Uuendusmärguanded",
+ "The update server could not be reached since %d days to check for new updates." : "Uuenduste serveriga ei ole uuenduste otsimiseks saadud ühendust %d päeva.",
+ "Please check the Nextcloud and server log files for errors." : "Palun vaata Nextcloudi ja serveri logifaile tõrgete leidmiseks.",
+ "Update to {serverAndVersion} is available." : "Uuendus {serverAndVersion}-le on saadaval.",
"Update for {app} to version %s is available." : "Uuendus {app} versioonile %s on saadaval.",
- "A new version is available: %s" : "Saadaval on uus versioon: %s",
+ "Update notification" : "Uuendusmärguanne",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Näitab uuendusmärguannet Nexticloudi, rakenduste uuenduste puhul ja pakub SSO linki nende uuendamiseks.",
+ "Give feedback" : "Jaga tagasisidet",
+ "Get started" : "Alusta",
+ "No changelog available" : "Muudatuste logi pole saadaval",
+ "What's new in {app} {version}" : "Mida uut {app} {version} sisaldab",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Saadaval on uus versioon: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Palun arvesta, et peale uue versiooni ilmumist teave pole kohe saadaval. Me jagame uute versioonide levituse ajas laiali ning vigade tuvastamisel võime ka levitamise katkestada. Lisateave uuenduste ja uuenduskanalite kohta leidub siin: {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Kontrollitud {lastCheckedDate} - Ava muudatuste logi",
+ "Checking apps for compatible versions" : "Kontrollin rakenduste ühilduvaid versioone",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Palun kontrolli, et selle serveri config.php failis poleks <samp>appstoreenabled</samp> võtme väärtuseks „false“.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kas rakendustepoega polnud võimalik ühendust luua või päringu vastuses polnud uuenduste teavet. Otsi uuendusi käsitsi või kontrolli, et serveri internetiühendus toimib ja tal on võimalik rakendustepoe liidesele ligi saada.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Kõikidel</strong> rakendustel on selle Nextcloudi versiooniga ühilduv versioon.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["1%n1 rakenduse versioon ei ühildus selle Nextcloudi versiooniga.","<strong>%n</strong> rakenduse versioon ei ühildus selle Nextcloudi versiooniga."],
+ "Enterprise" : "Suurorganisatsioonide versioon",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Mõeldud suurorganisatsioonidele. Tagab alati, et viimased pisiparandused on lisatud, kuid järgmine suurem uuendus mitte. See on võimalik alles siis, kui Nextcloud GmbH on lisanud tugevdusmeetmeid ja läbinud suurte ning missioonikriitiliste paigalduste kontekstis vajaliku testimise. See uuenduskanal on saadaval vaid lepingulistele klientidele ning on osa Nextcloudi paketist suurorganisatsioonidele (Nextcloud Enterprise).",
+ "Stable" : "Stabiilne versioon",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Viimane stabiilne versioon. Sobib tavakasutuseks ning alati sisaldab uuendamist viimase põhiversioonini.",
+ "Beta" : "Beetaversioon",
+ "A pre-release version only for testing new features, not for production environments." : "Eelversioon uute funktsionaalsuste testimiseks ning ei sobi kasutamiseks igapäevases tarvekeskkonnas.",
+ "Update" : "Uuenda",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Versiooni, mida kasutad, ei uuendata enam. Palun uuenda toetatud versioonile võimalikult kiiresti.",
+ "Apps missing compatible version" : "Rakendustel puuduvad toetatud versioonid",
+ "View in store" : "Vaata poes",
+ "Apps with compatible version" : "Rakendused toetatud versiooniga",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Palun arvesta, et veebipõhine uuendaja pole soovitatav, kui serveris on üle 100 kasutajakonto! Sel puhul kasuta käsureapõhist uuendajat!",
"Open updater" : "Ava uuendaja",
- "Download now" : "Lae kohe alla",
- "Checked on %s" : "Kontrollitud %s",
- "The update check is not yet finished. Please refresh the page." : "Uuenduste kontrollimine pole veel lõppenud. Palun värskendage lehte."
+ "Download now" : "Laadi kohe alla",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Veebipõhine uuendaja pole kasutusel. Palun kasuta tarkvara uuendamiseks käsureapõhist uuendajat või sinu paigalduse meetodile ettenähtud lahendust (nt. Docker pull).",
+ "What's new?" : "Mida on uut?",
+ "View changelog" : "Vaata muudatuste logi",
+ "The update check is not yet finished. Please refresh the page." : "Uuenduste kontrollimine pole veel lõppenud. Palun värskendage lehte.",
+ "Your version is up to date." : "Su versioon on ajakohane.",
+ "A non-default update server is in use to be checked for updates:" : "Uuenduste kontrollimiseks on kasutav vaikimisi serverist erinev server:",
+ "Update channel" : "Uuenduste kanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Uuenduskanalite muutmine mõjutab ka rakenduste haldamise lehte. Kui võtad serveri jaoks kasutusele beetaversiooni, siis pakutakse sulle selles vaates ka rakenduste beetaversioone.",
+ "Current update channel:" : "Praegune uuenduste kanal:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sa saad alati uuendada järgmisele stabiilsele versioonile, kuid ei saa kasutusele võtta eelmist stabiilset versiooni.",
+ "Notify members of the following groups about available updates:" : "Teavita jägmiste gruppide liikmeid saadaval olevatest uuendustest:",
+ "No groups" : "Gruppe pole",
+ "Only notifications for app updates are available." : "Vaid rakenduste uuenduste märguanded on saadaval.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Valitud uuenduskanal muudab serveri uuendusmärguanded mõttetuks.",
+ "The selected update channel does not support updates of the server." : "Valitud uuenduskanal ei toeta selle serveri uuendamist.",
+ "Changelog for app {app}" : "{app} rakenduse muudatuste logi",
+ "What's new in {app} version {version}" : "Mida uut {app} {version} sisaldab",
+ "{version} is available. Get more information on how to update." : "{version} on saadaval. Vaata lisainfot uuendamise kohta."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/et_EE.json b/apps/updatenotification/l10n/et_EE.json
index bef68816b6c..5fb637195ae 100644
--- a/apps/updatenotification/l10n/et_EE.json
+++ b/apps/updatenotification/l10n/et_EE.json
@@ -1,19 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} on saadaval. Vaata lisainfot uuendamise kohta.",
- "Your version is up to date." : "Su versioon on ajakohane.",
- "Update channel:" : "Uuenduste kanal:",
- "Notify members of the following groups about available updates:" : "Teavita jägmiste gruppide liikmeid saadaval olevatest uuendustest:",
- "Only notification for app updates are available." : "Saadaval on ainult rakenduste uuenduste kohta käivad teated.",
- "Could not start updater, please try the manual update" : "Uuendajat ei saanud käivitad, proovige käsitsi uuendada",
- "Update notifications" : "Uuendusmärguanded",
"Channel updated" : "Kanal värskendatud",
- "Update to %1$s is available." : "Uuendus versioonile %1$s on saadaval.",
- "Update for %1$s to version %2$s is available." : "Uuendus versioonilt %1$s versioonile %2$s on saadaval.",
+ "Web updater is disabled" : "Veebiuuendaja on keelatud",
+ "App updated" : "Rakendus on uuendatud",
+ "See what's new" : "Kae, mida uut leidub",
+ "{app} updated to version {version}" : "{app} uuendati versioonile {version}",
+ "Update notifications" : "Uuendusmärguanded",
+ "The update server could not be reached since %d days to check for new updates." : "Uuenduste serveriga ei ole uuenduste otsimiseks saadud ühendust %d päeva.",
+ "Please check the Nextcloud and server log files for errors." : "Palun vaata Nextcloudi ja serveri logifaile tõrgete leidmiseks.",
+ "Update to {serverAndVersion} is available." : "Uuendus {serverAndVersion}-le on saadaval.",
"Update for {app} to version %s is available." : "Uuendus {app} versioonile %s on saadaval.",
- "A new version is available: %s" : "Saadaval on uus versioon: %s",
+ "Update notification" : "Uuendusmärguanne",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Näitab uuendusmärguannet Nexticloudi, rakenduste uuenduste puhul ja pakub SSO linki nende uuendamiseks.",
+ "Give feedback" : "Jaga tagasisidet",
+ "Get started" : "Alusta",
+ "No changelog available" : "Muudatuste logi pole saadaval",
+ "What's new in {app} {version}" : "Mida uut {app} {version} sisaldab",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Saadaval on uus versioon: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Palun arvesta, et peale uue versiooni ilmumist teave pole kohe saadaval. Me jagame uute versioonide levituse ajas laiali ning vigade tuvastamisel võime ka levitamise katkestada. Lisateave uuenduste ja uuenduskanalite kohta leidub siin: {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Kontrollitud {lastCheckedDate} - Ava muudatuste logi",
+ "Checking apps for compatible versions" : "Kontrollin rakenduste ühilduvaid versioone",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Palun kontrolli, et selle serveri config.php failis poleks <samp>appstoreenabled</samp> võtme väärtuseks „false“.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kas rakendustepoega polnud võimalik ühendust luua või päringu vastuses polnud uuenduste teavet. Otsi uuendusi käsitsi või kontrolli, et serveri internetiühendus toimib ja tal on võimalik rakendustepoe liidesele ligi saada.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Kõikidel</strong> rakendustel on selle Nextcloudi versiooniga ühilduv versioon.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["1%n1 rakenduse versioon ei ühildus selle Nextcloudi versiooniga.","<strong>%n</strong> rakenduse versioon ei ühildus selle Nextcloudi versiooniga."],
+ "Enterprise" : "Suurorganisatsioonide versioon",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Mõeldud suurorganisatsioonidele. Tagab alati, et viimased pisiparandused on lisatud, kuid järgmine suurem uuendus mitte. See on võimalik alles siis, kui Nextcloud GmbH on lisanud tugevdusmeetmeid ja läbinud suurte ning missioonikriitiliste paigalduste kontekstis vajaliku testimise. See uuenduskanal on saadaval vaid lepingulistele klientidele ning on osa Nextcloudi paketist suurorganisatsioonidele (Nextcloud Enterprise).",
+ "Stable" : "Stabiilne versioon",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Viimane stabiilne versioon. Sobib tavakasutuseks ning alati sisaldab uuendamist viimase põhiversioonini.",
+ "Beta" : "Beetaversioon",
+ "A pre-release version only for testing new features, not for production environments." : "Eelversioon uute funktsionaalsuste testimiseks ning ei sobi kasutamiseks igapäevases tarvekeskkonnas.",
+ "Update" : "Uuenda",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Versiooni, mida kasutad, ei uuendata enam. Palun uuenda toetatud versioonile võimalikult kiiresti.",
+ "Apps missing compatible version" : "Rakendustel puuduvad toetatud versioonid",
+ "View in store" : "Vaata poes",
+ "Apps with compatible version" : "Rakendused toetatud versiooniga",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Palun arvesta, et veebipõhine uuendaja pole soovitatav, kui serveris on üle 100 kasutajakonto! Sel puhul kasuta käsureapõhist uuendajat!",
"Open updater" : "Ava uuendaja",
- "Download now" : "Lae kohe alla",
- "Checked on %s" : "Kontrollitud %s",
- "The update check is not yet finished. Please refresh the page." : "Uuenduste kontrollimine pole veel lõppenud. Palun värskendage lehte."
+ "Download now" : "Laadi kohe alla",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Veebipõhine uuendaja pole kasutusel. Palun kasuta tarkvara uuendamiseks käsureapõhist uuendajat või sinu paigalduse meetodile ettenähtud lahendust (nt. Docker pull).",
+ "What's new?" : "Mida on uut?",
+ "View changelog" : "Vaata muudatuste logi",
+ "The update check is not yet finished. Please refresh the page." : "Uuenduste kontrollimine pole veel lõppenud. Palun värskendage lehte.",
+ "Your version is up to date." : "Su versioon on ajakohane.",
+ "A non-default update server is in use to be checked for updates:" : "Uuenduste kontrollimiseks on kasutav vaikimisi serverist erinev server:",
+ "Update channel" : "Uuenduste kanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Uuenduskanalite muutmine mõjutab ka rakenduste haldamise lehte. Kui võtad serveri jaoks kasutusele beetaversiooni, siis pakutakse sulle selles vaates ka rakenduste beetaversioone.",
+ "Current update channel:" : "Praegune uuenduste kanal:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sa saad alati uuendada järgmisele stabiilsele versioonile, kuid ei saa kasutusele võtta eelmist stabiilset versiooni.",
+ "Notify members of the following groups about available updates:" : "Teavita jägmiste gruppide liikmeid saadaval olevatest uuendustest:",
+ "No groups" : "Gruppe pole",
+ "Only notifications for app updates are available." : "Vaid rakenduste uuenduste märguanded on saadaval.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Valitud uuenduskanal muudab serveri uuendusmärguanded mõttetuks.",
+ "The selected update channel does not support updates of the server." : "Valitud uuenduskanal ei toeta selle serveri uuendamist.",
+ "Changelog for app {app}" : "{app} rakenduse muudatuste logi",
+ "What's new in {app} version {version}" : "Mida uut {app} {version} sisaldab",
+ "{version} is available. Get more information on how to update." : "{version} on saadaval. Vaata lisainfot uuendamise kohta."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/eu.js b/apps/updatenotification/l10n/eu.js
index dc7c2bee60c..e96e1430b66 100644
--- a/apps/updatenotification/l10n/eu.js
+++ b/apps/updatenotification/l10n/eu.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} eskuragarri dago. Lortu informazio gehiago eguneraketa nola egiteari buruz.",
"Channel updated" : "Kanala eguneratuta",
+ "Web updater is disabled" : "Web eguneratzailea desgaituta dago",
+ "App updated" : "Aplikazioa eguneratuta dago",
+ "See what's new" : "Ikusi zer den berri",
+ "{app} updated to version {version}" : "{app} eguneratuta dago {version} bertsioan",
"Update notifications" : "Eguneratu jakinarazpenak",
"The update server could not be reached since %d days to check for new updates." : "Eguneratzeen zerbitzaria ezin izan da atzitu eguneratze berriak bilatzeko orain dela %d egunetik.",
"Please check the Nextcloud and server log files for errors." : "Mesedez, egiaztatu Nextcloud eta zerbitzariaren erregistroko fitxategiak akatsak dauden ikusteko.",
- "Update to %1$s is available." : "%1$s-ra eguneratzea eskuragarri dago.",
- "Update for %1$s to version %2$s is available." : "%1$s(r)entzako %2$s bertsiora eguneratzea eskuragarri dago.",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} eguneratzea eskuragarri dago.",
"Update for {app} to version %s is available." : "{app}(r)entzako eguneraketa %s bertsiora eskuragarri dago.",
"Update notification" : "Eguneratu jakinarazpena",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloud eguneratzeko jakinarazpenak erakusten ditu eta SSO-a eskaintzen dio eguneratzaileari.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Nextcloud eguneratzeko jakinarazpenak eta aplikazioenak erakusten ditu, eta SSO-a eskaintzen dio eguneratzaileari.",
+ "Give feedback" : "Eman feedback-a",
+ "Get started" : "Hasi",
+ "No changelog available" : "Ez dago aldaketen egunkaririk eskuragarri ",
+ "What's new in {app} {version}" : "Zer da berri {app} {version} bertsioan",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Bertsio berri bat dago eskuragarri: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Kontuan izan bertsio berri baten ondoren eguneratzea lehen bertsio txikia edo geroago bakarrik agertzen dela. Denboran zehar tartekatuta zabaltzen ditugu bertsio berriak gure erabiltzaileentzat eta batzuetan bertsio bat saltatu egiten dugu, arazoak aurkitzen direnean. Lortu informazio gehiago eguneratzeei eta kanalak askatzeari buruz {link} helbidean ",
+ "Checked on {lastCheckedDate} - Open changelog" : "{lastCheckedDate} datan egiaztatuta - Ireki aldaketen egunkaria",
+ "Checking apps for compatible versions" : "Bertsio bateragarrientzat aplikaziorik dagoen egiaztatzen",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ziurtatu config.php-k ez duela <samp> app store gaitua </samp>faltsu gisa ezartzen.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Ezin izan da appstore-arekin konektatu edo honek ez du eguneratzerik itzuli. Bilatu eskuz eguneratzeak edo ziurtatu zure zerbitzariak internet konexioa duela eta aplikazio biltegiarekin konektatu daitekeela.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong></strong>aplikazio guztiek Nextcloud bertsio honetarako bertsio bateragarria erabilgarri dute.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Aplikazio <strong>%n</strong>ek ez du Nextcloud bertsio honetarako bertsio bateragarririk erabilgarri.","<strong>%n</strong>palikaziok ez dute Nextcloud bertsio honetarako bertsio bateragarririk erabilgarri."],
+ "Enterprise" : "Enpresa",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Enpresa erabilerarako. Ematen du beti azken adabaki maila, baina ez da berehala eguneratzen hurrengo bertsio nagusira. Eguneratze hori gertatzen da Nextcloud GmbH-k eskala handiko eta berebiziko garrantzia duten inplementazioetarako indartze eta probaketa osagarriak egin ondoren. Kanal hau bezeroentzako soilik dago erabilgarri eta Nextcloud Enterprise paketea ematen du.",
+ "Stable" : "Egonkorra",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Bertsio egonkor berriena. Eguneroko erabilerarako prest dago eta beti eguneratuko da azken bertsio garrantzitsuenera.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Argitaratu aurreko bertsioa funtzionalitate berriak probatzeko soilik da, ez ekoizpen inguruneetarako.",
+ "Update" : "Eguneratu",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Erabiltzen ari zaren bertsioak ez du mantenurik jasotzen dagoeneko. Eguneratu euskarria duen bertsio batera ahalik eta azkarren.",
- "Apps missing updates" : "Eguneratzeak falta dituzten aplikazioak",
+ "Apps missing compatible version" : "Bertsio bateragarria falta duten aplikazioak",
"View in store" : "Dendan ikusi",
- "Apps with available updates" : "Eguneratzeak eskuragarri dituzten aplikazioak",
+ "Apps with compatible version" : "Bertsio bateragarria duten aplikazioak",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Kontuan izan eguneratzailea ez dela gomendatzen 100 erabiltzaile baino gehiago daudenean! Horren ordez erabili komando-lerroko eguneratzailea!",
"Open updater" : "Ireki eguneratzailea",
"Download now" : "Deskargatu orain",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web eguneratzailea desgaituta dago. Eguneratzeko erabili komando-lerroko eguneratzailea edo zure instalazio motarentzat egokia den eguneratze mekanismoa (adib. Docker pull).",
"What's new?" : "Zer berri?",
+ "View changelog" : "Ikusi aldaketen egunkaria",
"The update check is not yet finished. Please refresh the page." : "Egunareketen egiaztapena ez da oraindik bukatu. Mesedez freskatu orria.",
"Your version is up to date." : "Zure bertsioa eguneratuta dago.",
"A non-default update server is in use to be checked for updates:" : "Lehenetsia ez den eguneratze zerbitzari bat dago martxan, eguneratze berriak bilatzeko:",
- "Update channel:" : "Eguneraketa kanala:",
+ "Update channel" : "Eguneratze-kanala",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Eguneratze-kanala aldatzeak aplikazioen kudeaketa orria eragiten du. Adib. beta kanalera aldatzean, beta eguneraketak eskainiko zaizkizu aplikazioen kudeaketa orrian.",
+ "Current update channel:" : "Eguneratze-kanala:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Edozein unetan eguneratu dezakezu bertsio berri batera. Baina ezin da bertsio zahar egonkorrago batera itzuli.",
"Notify members of the following groups about available updates:" : "Jakinarazi hurrengo taldeen kideei eskuragarri dauden eguneraketei buruz:",
- "Only notification for app updates are available." : "Aplikazioaren eguneraketen jakinarazpenak soilik daude eskuragarri.",
+ "No groups" : "Talderik ez",
+ "Only notifications for app updates are available." : "Aplikazioen eguneratzeen jakinarazpenak soilik daude erabilgarri.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Aukeratutako eguneraketa kanala zerbitzariaren jakinarazpen dedikatuak zaharkitzen ditu.",
"The selected update channel does not support updates of the server." : "Hautatutako eguneraketa kanalak ez ditu zerbitzariaren eguneraketak onartzen.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Bertsio berri bat dago eskuragarri: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "{lastCheckedDate}-n egiaztatuta",
- "Checking apps for compatible updates" : "Egiaztatzen eguneratzeetarako aplikazio bateragarriak",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ziurtatu config.php-k ez duela <samp> app store gaitua </samp>faltsu gisa ezartzen.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Ezin izan da appstore-arekin konektatu edo honek ez du eguneratzerik itzuli. Bilatu eskuz eguneratzeak edo ziurtatu zure zerbitzariak internet konexioa duela eta appstore-arekin konektatu daitekeela.",
- "<strong>All</strong> apps have an update for this version available" : "Aplikazio <strong>guztiek</strong> eguneraketa bat dute bertsio honentzat eskuragarri",
- "View changelog" : "Ikusi aldaketen egunkaria",
- "Enterprise" : "Enpresa",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Enpresa erabilerarako. Ematen du beti azken adabaki maila, baina ez da berehala eguneratzen hurrengo bertsio nagusira. Eguneratze hori gertatzen da Nextcloud GmbH-k eskala handiko eta berebiziko garrantzia duten inplementazioetarako indartze eta probaketa osagarriak egin ondoren. Kanal hau bezeroentzako soilik dago erabilgarri eta Nextcloud Enterprise paketea ematen du.",
- "Stable" : "Egonkorra",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Bertsio egonkor berriena. Eguneroko erabilerarako prest dago eta beti eguneratuko da azken bertsio garrantzitsuenera.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Argitaratu aurreko bertsioa funtzionalitate berriak probatzeko soilik da, ez ekoizpen inguruneetarako.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikazioak ez du bertsio hau eskuragarri eguneratzeko","<strong>%n</strong> aplikazioek ez dute bertsio hau eskuragarri eguneratzeko"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Kontuan izan bertsio berriak ateratzean denbora behar izaten dutela hemen agertzeko. Denboran zehar tartekatuta zabaltzen ditugu bertsio berriak eta batzuetan bertsio bat saltatu egiten dugu, arazoak topatzen bazaizkio. "
+ "Changelog for app {app}" : "{app} aplikazioaren aldaketen egunkaria",
+ "What's new in {app} version {version}" : "Zer da berri {app} {version} bertsioan",
+ "{version} is available. Get more information on how to update." : "{version} eskuragarri dago. Lortu informazio gehiago eguneraketa nola egiteari buruz."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/eu.json b/apps/updatenotification/l10n/eu.json
index ea1363e3110..ded7010463f 100644
--- a/apps/updatenotification/l10n/eu.json
+++ b/apps/updatenotification/l10n/eu.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} eskuragarri dago. Lortu informazio gehiago eguneraketa nola egiteari buruz.",
"Channel updated" : "Kanala eguneratuta",
+ "Web updater is disabled" : "Web eguneratzailea desgaituta dago",
+ "App updated" : "Aplikazioa eguneratuta dago",
+ "See what's new" : "Ikusi zer den berri",
+ "{app} updated to version {version}" : "{app} eguneratuta dago {version} bertsioan",
"Update notifications" : "Eguneratu jakinarazpenak",
"The update server could not be reached since %d days to check for new updates." : "Eguneratzeen zerbitzaria ezin izan da atzitu eguneratze berriak bilatzeko orain dela %d egunetik.",
"Please check the Nextcloud and server log files for errors." : "Mesedez, egiaztatu Nextcloud eta zerbitzariaren erregistroko fitxategiak akatsak dauden ikusteko.",
- "Update to %1$s is available." : "%1$s-ra eguneratzea eskuragarri dago.",
- "Update for %1$s to version %2$s is available." : "%1$s(r)entzako %2$s bertsiora eguneratzea eskuragarri dago.",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} eguneratzea eskuragarri dago.",
"Update for {app} to version %s is available." : "{app}(r)entzako eguneraketa %s bertsiora eskuragarri dago.",
"Update notification" : "Eguneratu jakinarazpena",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloud eguneratzeko jakinarazpenak erakusten ditu eta SSO-a eskaintzen dio eguneratzaileari.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Nextcloud eguneratzeko jakinarazpenak eta aplikazioenak erakusten ditu, eta SSO-a eskaintzen dio eguneratzaileari.",
+ "Give feedback" : "Eman feedback-a",
+ "Get started" : "Hasi",
+ "No changelog available" : "Ez dago aldaketen egunkaririk eskuragarri ",
+ "What's new in {app} {version}" : "Zer da berri {app} {version} bertsioan",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Bertsio berri bat dago eskuragarri: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Kontuan izan bertsio berri baten ondoren eguneratzea lehen bertsio txikia edo geroago bakarrik agertzen dela. Denboran zehar tartekatuta zabaltzen ditugu bertsio berriak gure erabiltzaileentzat eta batzuetan bertsio bat saltatu egiten dugu, arazoak aurkitzen direnean. Lortu informazio gehiago eguneratzeei eta kanalak askatzeari buruz {link} helbidean ",
+ "Checked on {lastCheckedDate} - Open changelog" : "{lastCheckedDate} datan egiaztatuta - Ireki aldaketen egunkaria",
+ "Checking apps for compatible versions" : "Bertsio bateragarrientzat aplikaziorik dagoen egiaztatzen",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ziurtatu config.php-k ez duela <samp> app store gaitua </samp>faltsu gisa ezartzen.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Ezin izan da appstore-arekin konektatu edo honek ez du eguneratzerik itzuli. Bilatu eskuz eguneratzeak edo ziurtatu zure zerbitzariak internet konexioa duela eta aplikazio biltegiarekin konektatu daitekeela.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong></strong>aplikazio guztiek Nextcloud bertsio honetarako bertsio bateragarria erabilgarri dute.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Aplikazio <strong>%n</strong>ek ez du Nextcloud bertsio honetarako bertsio bateragarririk erabilgarri.","<strong>%n</strong>palikaziok ez dute Nextcloud bertsio honetarako bertsio bateragarririk erabilgarri."],
+ "Enterprise" : "Enpresa",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Enpresa erabilerarako. Ematen du beti azken adabaki maila, baina ez da berehala eguneratzen hurrengo bertsio nagusira. Eguneratze hori gertatzen da Nextcloud GmbH-k eskala handiko eta berebiziko garrantzia duten inplementazioetarako indartze eta probaketa osagarriak egin ondoren. Kanal hau bezeroentzako soilik dago erabilgarri eta Nextcloud Enterprise paketea ematen du.",
+ "Stable" : "Egonkorra",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Bertsio egonkor berriena. Eguneroko erabilerarako prest dago eta beti eguneratuko da azken bertsio garrantzitsuenera.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Argitaratu aurreko bertsioa funtzionalitate berriak probatzeko soilik da, ez ekoizpen inguruneetarako.",
+ "Update" : "Eguneratu",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Erabiltzen ari zaren bertsioak ez du mantenurik jasotzen dagoeneko. Eguneratu euskarria duen bertsio batera ahalik eta azkarren.",
- "Apps missing updates" : "Eguneratzeak falta dituzten aplikazioak",
+ "Apps missing compatible version" : "Bertsio bateragarria falta duten aplikazioak",
"View in store" : "Dendan ikusi",
- "Apps with available updates" : "Eguneratzeak eskuragarri dituzten aplikazioak",
+ "Apps with compatible version" : "Bertsio bateragarria duten aplikazioak",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Kontuan izan eguneratzailea ez dela gomendatzen 100 erabiltzaile baino gehiago daudenean! Horren ordez erabili komando-lerroko eguneratzailea!",
"Open updater" : "Ireki eguneratzailea",
"Download now" : "Deskargatu orain",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web eguneratzailea desgaituta dago. Eguneratzeko erabili komando-lerroko eguneratzailea edo zure instalazio motarentzat egokia den eguneratze mekanismoa (adib. Docker pull).",
"What's new?" : "Zer berri?",
+ "View changelog" : "Ikusi aldaketen egunkaria",
"The update check is not yet finished. Please refresh the page." : "Egunareketen egiaztapena ez da oraindik bukatu. Mesedez freskatu orria.",
"Your version is up to date." : "Zure bertsioa eguneratuta dago.",
"A non-default update server is in use to be checked for updates:" : "Lehenetsia ez den eguneratze zerbitzari bat dago martxan, eguneratze berriak bilatzeko:",
- "Update channel:" : "Eguneraketa kanala:",
+ "Update channel" : "Eguneratze-kanala",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Eguneratze-kanala aldatzeak aplikazioen kudeaketa orria eragiten du. Adib. beta kanalera aldatzean, beta eguneraketak eskainiko zaizkizu aplikazioen kudeaketa orrian.",
+ "Current update channel:" : "Eguneratze-kanala:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Edozein unetan eguneratu dezakezu bertsio berri batera. Baina ezin da bertsio zahar egonkorrago batera itzuli.",
"Notify members of the following groups about available updates:" : "Jakinarazi hurrengo taldeen kideei eskuragarri dauden eguneraketei buruz:",
- "Only notification for app updates are available." : "Aplikazioaren eguneraketen jakinarazpenak soilik daude eskuragarri.",
+ "No groups" : "Talderik ez",
+ "Only notifications for app updates are available." : "Aplikazioen eguneratzeen jakinarazpenak soilik daude erabilgarri.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Aukeratutako eguneraketa kanala zerbitzariaren jakinarazpen dedikatuak zaharkitzen ditu.",
"The selected update channel does not support updates of the server." : "Hautatutako eguneraketa kanalak ez ditu zerbitzariaren eguneraketak onartzen.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Bertsio berri bat dago eskuragarri: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "{lastCheckedDate}-n egiaztatuta",
- "Checking apps for compatible updates" : "Egiaztatzen eguneratzeetarako aplikazio bateragarriak",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ziurtatu config.php-k ez duela <samp> app store gaitua </samp>faltsu gisa ezartzen.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Ezin izan da appstore-arekin konektatu edo honek ez du eguneratzerik itzuli. Bilatu eskuz eguneratzeak edo ziurtatu zure zerbitzariak internet konexioa duela eta appstore-arekin konektatu daitekeela.",
- "<strong>All</strong> apps have an update for this version available" : "Aplikazio <strong>guztiek</strong> eguneraketa bat dute bertsio honentzat eskuragarri",
- "View changelog" : "Ikusi aldaketen egunkaria",
- "Enterprise" : "Enpresa",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Enpresa erabilerarako. Ematen du beti azken adabaki maila, baina ez da berehala eguneratzen hurrengo bertsio nagusira. Eguneratze hori gertatzen da Nextcloud GmbH-k eskala handiko eta berebiziko garrantzia duten inplementazioetarako indartze eta probaketa osagarriak egin ondoren. Kanal hau bezeroentzako soilik dago erabilgarri eta Nextcloud Enterprise paketea ematen du.",
- "Stable" : "Egonkorra",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Bertsio egonkor berriena. Eguneroko erabilerarako prest dago eta beti eguneratuko da azken bertsio garrantzitsuenera.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Argitaratu aurreko bertsioa funtzionalitate berriak probatzeko soilik da, ez ekoizpen inguruneetarako.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikazioak ez du bertsio hau eskuragarri eguneratzeko","<strong>%n</strong> aplikazioek ez dute bertsio hau eskuragarri eguneratzeko"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Kontuan izan bertsio berriak ateratzean denbora behar izaten dutela hemen agertzeko. Denboran zehar tartekatuta zabaltzen ditugu bertsio berriak eta batzuetan bertsio bat saltatu egiten dugu, arazoak topatzen bazaizkio. "
+ "Changelog for app {app}" : "{app} aplikazioaren aldaketen egunkaria",
+ "What's new in {app} version {version}" : "Zer da berri {app} {version} bertsioan",
+ "{version} is available. Get more information on how to update." : "{version} eskuragarri dago. Lortu informazio gehiago eguneraketa nola egiteari buruz."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/fa.js b/apps/updatenotification/l10n/fa.js
index 1e87e8fb523..2b9acd08897 100644
--- a/apps/updatenotification/l10n/fa.js
+++ b/apps/updatenotification/l10n/fa.js
@@ -1,7 +1,47 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} آماده است. برای چگونگی بروزرسانی اطلاعات بیشتر را دریافت نمایید.",
- "Updater" : "به روز رساننده"
+ "Channel updated" : "کانال به‌روز شد",
+ "Web updater is disabled" : "Web updater is disabled",
+ "Update notifications" : "Update notifications",
+ "The update server could not be reached since %d days to check for new updates." : "The update server could not be reached since %d days to check for new updates.",
+ "Please check the Nextcloud and server log files for errors." : "Please check the Nextcloud and server log files for errors.",
+ "Update to {serverAndVersion} is available." : "Update to {serverAndVersion} is available.",
+ "Update for {app} to version %s is available." : "Update for {app} to version %s is available.",
+ "Update notification" : "به‌روزرسانی اعلان",
+ "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Checking apps for compatible versions",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>All</strong> apps have a compatible version for this Nextcloud version available.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app has no compatible version for this Nextcloud version available.","<strong>%n</strong> apps have no compatible version for this Nextcloud version available."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.",
+ "Stable" : "Stable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "The most recent stable version. It is suited for regular use and will always update to the latest major version.",
+ "Beta" : "بتا",
+ "A pre-release version only for testing new features, not for production environments." : "A pre-release version only for testing new features, not for production environments.",
+ "Update" : "به‌روزرسانی",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.",
+ "Apps missing compatible version" : "Apps missing compatible version",
+ "View in store" : "نمایش در فروشگاه",
+ "Apps with compatible version" : "Apps with compatible version",
+ "Open updater" : "باز کردن به‌روزرسان",
+ "Download now" : "Download now",
+ "What's new?" : "What's new?",
+ "View changelog" : "مشاهده تغییرات",
+ "The update check is not yet finished. Please refresh the page." : "The update check is not yet finished. Please refresh the page.",
+ "Your version is up to date." : "نسخهٔ شما به‌روز است.",
+ "A non-default update server is in use to be checked for updates:" : "A non-default update server is in use to be checked for updates:",
+ "Update channel" : "کانال به‌روزرسانی",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page.",
+ "Current update channel:" : "کانال به‌روزرسانی جاری:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "You can always update to a newer version. But you can never downgrade to a more stable version.",
+ "Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
+ "No groups" : "No groups",
+ "Only notifications for app updates are available." : "Only notifications for app updates are available.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.",
+ "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
+ "{version} is available. Get more information on how to update." : "{version} آماده است. برای چگونگی بروزرسانی اطلاعات بیشتر را دریافت نمایید."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n > 1);");
diff --git a/apps/updatenotification/l10n/fa.json b/apps/updatenotification/l10n/fa.json
index 256461f412b..12f1b36e1c0 100644
--- a/apps/updatenotification/l10n/fa.json
+++ b/apps/updatenotification/l10n/fa.json
@@ -1,5 +1,45 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} آماده است. برای چگونگی بروزرسانی اطلاعات بیشتر را دریافت نمایید.",
- "Updater" : "به روز رساننده"
-},"pluralForm" :"nplurals=1; plural=0;"
+ "Channel updated" : "کانال به‌روز شد",
+ "Web updater is disabled" : "Web updater is disabled",
+ "Update notifications" : "Update notifications",
+ "The update server could not be reached since %d days to check for new updates." : "The update server could not be reached since %d days to check for new updates.",
+ "Please check the Nextcloud and server log files for errors." : "Please check the Nextcloud and server log files for errors.",
+ "Update to {serverAndVersion} is available." : "Update to {serverAndVersion} is available.",
+ "Update for {app} to version %s is available." : "Update for {app} to version %s is available.",
+ "Update notification" : "به‌روزرسانی اعلان",
+ "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Checking apps for compatible versions",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>All</strong> apps have a compatible version for this Nextcloud version available.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app has no compatible version for this Nextcloud version available.","<strong>%n</strong> apps have no compatible version for this Nextcloud version available."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.",
+ "Stable" : "Stable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "The most recent stable version. It is suited for regular use and will always update to the latest major version.",
+ "Beta" : "بتا",
+ "A pre-release version only for testing new features, not for production environments." : "A pre-release version only for testing new features, not for production environments.",
+ "Update" : "به‌روزرسانی",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.",
+ "Apps missing compatible version" : "Apps missing compatible version",
+ "View in store" : "نمایش در فروشگاه",
+ "Apps with compatible version" : "Apps with compatible version",
+ "Open updater" : "باز کردن به‌روزرسان",
+ "Download now" : "Download now",
+ "What's new?" : "What's new?",
+ "View changelog" : "مشاهده تغییرات",
+ "The update check is not yet finished. Please refresh the page." : "The update check is not yet finished. Please refresh the page.",
+ "Your version is up to date." : "نسخهٔ شما به‌روز است.",
+ "A non-default update server is in use to be checked for updates:" : "A non-default update server is in use to be checked for updates:",
+ "Update channel" : "کانال به‌روزرسانی",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page.",
+ "Current update channel:" : "کانال به‌روزرسانی جاری:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "You can always update to a newer version. But you can never downgrade to a more stable version.",
+ "Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
+ "No groups" : "No groups",
+ "Only notifications for app updates are available." : "Only notifications for app updates are available.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.",
+ "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
+ "{version} is available. Get more information on how to update." : "{version} آماده است. برای چگونگی بروزرسانی اطلاعات بیشتر را دریافت نمایید."
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/fi.js b/apps/updatenotification/l10n/fi.js
index 8f9abb31f8d..fca5584f966 100644
--- a/apps/updatenotification/l10n/fi.js
+++ b/apps/updatenotification/l10n/fi.js
@@ -1,35 +1,55 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä.",
"Channel updated" : "Päivityskanava päivitetty",
+ "Web updater is disabled" : "Päivitys selaimen kautta on poissa käytöstä",
+ "App updated" : "Sovellus päivitetty",
+ "See what's new" : "Katso mitä uutta",
+ "{app} updated to version {version}" : "{app} päivitetty versioon {version}",
"Update notifications" : "Päivitysilmoitukset",
"The update server could not be reached since %d days to check for new updates." : "Päivityspalvelinta ei ole tavoitettu %d päivään; uusia päivityksiä ei voida tarkistaa.",
"Please check the Nextcloud and server log files for errors." : "Tarkista Nextcloud- ja palvelinlokitiedostot virheiden osalta.",
- "Update to %1$s is available." : "Kohteen %1$s päivitys on saatavilla.",
- "Update for %1$s to version %2$s is available." : "Kohteen %1$s päivitys versioon %2$s on saatavilla.",
+ "Update to {serverAndVersion} is available." : "Päivitys {serverAndVersion} on saatavilla.",
"Update for {app} to version %s is available." : "Sovelluksen {app} päivitys versioon %s on saatavilla.",
"Update notification" : "Päivitysilmoitus",
+ "Give feedback" : "Anna palautetta",
+ "Get started" : "Aloitetaan",
+ "No changelog available" : "Muutoslokia ei ole saatavilla",
+ "What's new in {app} {version}" : "Katso mitä uutta {app} {version} sisältää",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Uusi versio on saatavilla: <strong>{newVersionString}</strong>",
+ "Checked on {lastCheckedDate} - Open changelog" : "Tarkistettu {lastCheckedDate} - Avaa muutosloki",
+ "Checking apps for compatible versions" : "Tarkistetaan sovellusten yhteensopivat versiot ",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Varmista, ettei config.php-tiedosto aseta valintaa <samp>appstoreenabled</samp> arvoon false.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Kaikilla</strong> sovelluksilla on yhteensopiva versio saatavilla tälle Nextcloud-versiolle.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> sovelluksella on yhteensopiva versio saatavilla tälle Nextcloud-versiolle.","<strong>%n</strong> sovelluksella on yhteensopiva versio saatavilla tälle Nextcloud-versiolle."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Yrityskäyttöön. Tarjoaa aina viimeisimmän korjaustason, mutta ei päivitä välittömästi seuraavaan pääversioon. Päivitys tapahtuu, kun Nextcloud GmbH on tehnyt lisävahvistuksia ja -testejä laajamittaisia ja kriittisiä käyttöönottoja varten. Tämä kanava on vain sopimusasiakkaiden käytettävissä, ja se tarjoaa Nextcloud Enterprise -paketin.",
+ "Stable" : "Vakaa",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Viimeisin vakaa versio. Sopii säännölliseen käyttöön ja päivittyy aina uusimpaan pääversioon.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Esijulkaisuversio uusien toimintojen testaukseen, ei tuotantoympäristöille.",
+ "Update" : "Päivitä",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Käyttämäsi versio ei ole enää tuettu. Varmista, että päivität tuettuun versioon mahdollisimman pian.",
+ "Apps missing compatible version" : "Sovellukset, joista ei ole yhteensopivaa versiota",
"View in store" : "Näytä kaupassa",
- "Apps with available updates" : "Sovellukset, joihin saatavilla päivityksiä",
+ "Apps with compatible version" : "Sovellukset, joista on yhteensopiva versio",
"Open updater" : "Avaa päivittäjä",
"Download now" : "Lataa heti",
"What's new?" : "Mitä uutta?",
+ "View changelog" : "Näytä muutosloki",
"The update check is not yet finished. Please refresh the page." : "Päivitystarkistus ei ole vielä valmis. Päivitä sivu.",
"Your version is up to date." : "Versiosi on ajan tasalla.",
- "Update channel:" : "Päivityskanava:",
+ "A non-default update server is in use to be checked for updates:" : "Käytössä on muu kuin oletusarvoinen päivityspalvelin, jota käytetään päivitysten tarkistamiseen:",
+ "Update channel" : "Päivityskanava",
+ "Current update channel:" : "Nykyinen päivityskanava:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Voit aina päivittää uudempaan versioon, mutta et voi palata aikaisempaan vakaaseen versioon.",
"Notify members of the following groups about available updates:" : "Ilmoita seuraavien ryhmien jäsenille saatavilla olevista päivityksistä:",
- "Only notification for app updates are available." : "Sovelluspäivityksiin on saatavilla vain huomautuksia.",
+ "No groups" : "Ei ryhmiä",
+ "Only notifications for app updates are available." : "Vain ilmoitukset sovelluspäivityksistä on saatavilla.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Valittu päivityskanava tekee palvelimen omat ilmoitukset tarpeettomiksi.",
"The selected update channel does not support updates of the server." : "Valittu päivityskanava ei tue palvelimen päivityksiä.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Uusi versio on saatavilla: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Tarkistettu {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Varmista, ettei config.php-tiedosto aseta valintaa <samp>appstoreenabled</samp> arvoon false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Yhteyttä sovelluskauppaan ei voitu muodostaa tai sovelluskauppa ei ilmoittanut päivityksistä. Etsi päivityksiä manuaalisesti tai varmista, että palvelimellasi on yhteys internetiin ja se voi yhdistää sovelluskauppaan.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Kaikilla</strong> sovelluksilla on päivitys tähän versioon saatavilla",
- "View changelog" : "Näytä muutosloki",
- "Stable" : "Vakaa",
- "Beta" : "Beta",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> sovelluksella ei ole päivitystä tähän versioon saatavilla","<strong>%n</strong> sovelluksella ei ole päivitystä tähän versioon saatavilla"]
+ "Changelog for app {app}" : "Sovelluksen {app} muutosloki",
+ "What's new in {app} version {version}" : "Katso mitä uutta sovelluksen {app} versio {version} sisältää",
+ "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/fi.json b/apps/updatenotification/l10n/fi.json
index 20f19a21731..c65d4a352e4 100644
--- a/apps/updatenotification/l10n/fi.json
+++ b/apps/updatenotification/l10n/fi.json
@@ -1,33 +1,53 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä.",
"Channel updated" : "Päivityskanava päivitetty",
+ "Web updater is disabled" : "Päivitys selaimen kautta on poissa käytöstä",
+ "App updated" : "Sovellus päivitetty",
+ "See what's new" : "Katso mitä uutta",
+ "{app} updated to version {version}" : "{app} päivitetty versioon {version}",
"Update notifications" : "Päivitysilmoitukset",
"The update server could not be reached since %d days to check for new updates." : "Päivityspalvelinta ei ole tavoitettu %d päivään; uusia päivityksiä ei voida tarkistaa.",
"Please check the Nextcloud and server log files for errors." : "Tarkista Nextcloud- ja palvelinlokitiedostot virheiden osalta.",
- "Update to %1$s is available." : "Kohteen %1$s päivitys on saatavilla.",
- "Update for %1$s to version %2$s is available." : "Kohteen %1$s päivitys versioon %2$s on saatavilla.",
+ "Update to {serverAndVersion} is available." : "Päivitys {serverAndVersion} on saatavilla.",
"Update for {app} to version %s is available." : "Sovelluksen {app} päivitys versioon %s on saatavilla.",
"Update notification" : "Päivitysilmoitus",
+ "Give feedback" : "Anna palautetta",
+ "Get started" : "Aloitetaan",
+ "No changelog available" : "Muutoslokia ei ole saatavilla",
+ "What's new in {app} {version}" : "Katso mitä uutta {app} {version} sisältää",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Uusi versio on saatavilla: <strong>{newVersionString}</strong>",
+ "Checked on {lastCheckedDate} - Open changelog" : "Tarkistettu {lastCheckedDate} - Avaa muutosloki",
+ "Checking apps for compatible versions" : "Tarkistetaan sovellusten yhteensopivat versiot ",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Varmista, ettei config.php-tiedosto aseta valintaa <samp>appstoreenabled</samp> arvoon false.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Kaikilla</strong> sovelluksilla on yhteensopiva versio saatavilla tälle Nextcloud-versiolle.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> sovelluksella on yhteensopiva versio saatavilla tälle Nextcloud-versiolle.","<strong>%n</strong> sovelluksella on yhteensopiva versio saatavilla tälle Nextcloud-versiolle."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Yrityskäyttöön. Tarjoaa aina viimeisimmän korjaustason, mutta ei päivitä välittömästi seuraavaan pääversioon. Päivitys tapahtuu, kun Nextcloud GmbH on tehnyt lisävahvistuksia ja -testejä laajamittaisia ja kriittisiä käyttöönottoja varten. Tämä kanava on vain sopimusasiakkaiden käytettävissä, ja se tarjoaa Nextcloud Enterprise -paketin.",
+ "Stable" : "Vakaa",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Viimeisin vakaa versio. Sopii säännölliseen käyttöön ja päivittyy aina uusimpaan pääversioon.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Esijulkaisuversio uusien toimintojen testaukseen, ei tuotantoympäristöille.",
+ "Update" : "Päivitä",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Käyttämäsi versio ei ole enää tuettu. Varmista, että päivität tuettuun versioon mahdollisimman pian.",
+ "Apps missing compatible version" : "Sovellukset, joista ei ole yhteensopivaa versiota",
"View in store" : "Näytä kaupassa",
- "Apps with available updates" : "Sovellukset, joihin saatavilla päivityksiä",
+ "Apps with compatible version" : "Sovellukset, joista on yhteensopiva versio",
"Open updater" : "Avaa päivittäjä",
"Download now" : "Lataa heti",
"What's new?" : "Mitä uutta?",
+ "View changelog" : "Näytä muutosloki",
"The update check is not yet finished. Please refresh the page." : "Päivitystarkistus ei ole vielä valmis. Päivitä sivu.",
"Your version is up to date." : "Versiosi on ajan tasalla.",
- "Update channel:" : "Päivityskanava:",
+ "A non-default update server is in use to be checked for updates:" : "Käytössä on muu kuin oletusarvoinen päivityspalvelin, jota käytetään päivitysten tarkistamiseen:",
+ "Update channel" : "Päivityskanava",
+ "Current update channel:" : "Nykyinen päivityskanava:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Voit aina päivittää uudempaan versioon, mutta et voi palata aikaisempaan vakaaseen versioon.",
"Notify members of the following groups about available updates:" : "Ilmoita seuraavien ryhmien jäsenille saatavilla olevista päivityksistä:",
- "Only notification for app updates are available." : "Sovelluspäivityksiin on saatavilla vain huomautuksia.",
+ "No groups" : "Ei ryhmiä",
+ "Only notifications for app updates are available." : "Vain ilmoitukset sovelluspäivityksistä on saatavilla.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Valittu päivityskanava tekee palvelimen omat ilmoitukset tarpeettomiksi.",
"The selected update channel does not support updates of the server." : "Valittu päivityskanava ei tue palvelimen päivityksiä.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Uusi versio on saatavilla: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Tarkistettu {lastCheckedDate}",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Varmista, ettei config.php-tiedosto aseta valintaa <samp>appstoreenabled</samp> arvoon false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Yhteyttä sovelluskauppaan ei voitu muodostaa tai sovelluskauppa ei ilmoittanut päivityksistä. Etsi päivityksiä manuaalisesti tai varmista, että palvelimellasi on yhteys internetiin ja se voi yhdistää sovelluskauppaan.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Kaikilla</strong> sovelluksilla on päivitys tähän versioon saatavilla",
- "View changelog" : "Näytä muutosloki",
- "Stable" : "Vakaa",
- "Beta" : "Beta",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> sovelluksella ei ole päivitystä tähän versioon saatavilla","<strong>%n</strong> sovelluksella ei ole päivitystä tähän versioon saatavilla"]
+ "Changelog for app {app}" : "Sovelluksen {app} muutosloki",
+ "What's new in {app} version {version}" : "Katso mitä uutta sovelluksen {app} versio {version} sisältää",
+ "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/fi_FI.js b/apps/updatenotification/l10n/fi_FI.js
deleted file mode 100644
index d242d4adf89..00000000000
--- a/apps/updatenotification/l10n/fi_FI.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Päivitysilmoitukset",
- "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä.",
- "Updated channel" : "Päivitetty kanava",
- "Update for %1$s to version %2$s is available." : "Kohteen %1$s päivitys versioon %2$s on saatavilla.",
- "Updater" : "Päivitysohjelma",
- "A new version is available: %s" : "Uusi versio on saatavilla: %s",
- "Open updater" : "Avaa päivitysohjelma",
- "Your version is up to date." : "Versiosi on ajan tasalla.",
- "Checked on %s" : "Tarkistettu %s",
- "Update channel:" : "Päivityskanava:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Voit aina päivittää uudempaan versioon tai kokeellisen jakelukanavan versioon. Et voi kuitenkaan palata aiempaan, vakaan julkaisukanavan versioon.",
- "Notify members of the following groups about available updates:" : "Ilmoita seuraavien ryhmien jäsenille saatavilla olevista päivityksistä:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/fi_FI.json b/apps/updatenotification/l10n/fi_FI.json
deleted file mode 100644
index 27ae2a73afe..00000000000
--- a/apps/updatenotification/l10n/fi_FI.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "Update notifications" : "Päivitysilmoitukset",
- "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä.",
- "Updated channel" : "Päivitetty kanava",
- "Update for %1$s to version %2$s is available." : "Kohteen %1$s päivitys versioon %2$s on saatavilla.",
- "Updater" : "Päivitysohjelma",
- "A new version is available: %s" : "Uusi versio on saatavilla: %s",
- "Open updater" : "Avaa päivitysohjelma",
- "Your version is up to date." : "Versiosi on ajan tasalla.",
- "Checked on %s" : "Tarkistettu %s",
- "Update channel:" : "Päivityskanava:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Voit aina päivittää uudempaan versioon tai kokeellisen jakelukanavan versioon. Et voi kuitenkaan palata aiempaan, vakaan julkaisukanavan versioon.",
- "Notify members of the following groups about available updates:" : "Ilmoita seuraavien ryhmien jäsenille saatavilla olevista päivityksistä:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/fr.js b/apps/updatenotification/l10n/fr.js
index b7b1024b221..3837ed6ea07 100644
--- a/apps/updatenotification/l10n/fr.js
+++ b/apps/updatenotification/l10n/fr.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "La version {version} est disponible. Cliquez ici pour plus d'informations sur comment mettre à jour.",
"Channel updated" : "Canal de mise à jour modifié",
+ "Web updater is disabled" : "La mise à jour par l'interface Web est désactivée ",
+ "App updated" : "Application mise à jour",
+ "See what's new" : "Quoi de neuf",
+ "{app} updated to version {version}" : "{app} a été mise à jour vers la version {version}",
"Update notifications" : "Notifications de mises à jour",
"The update server could not be reached since %d days to check for new updates." : "Le serveur de mise à jour n'a pas pu être atteint depuis %d jours pour vérifier les nouvelles mises à jour.",
"Please check the Nextcloud and server log files for errors." : "Veuillez vérifier les fichiers de log de Nextcloud et du serveur pour les erreurs.",
- "Update to %1$s is available." : "Une mise à jour vers %1$s est disponible",
- "Update for %1$s to version %2$s is available." : "Une mise à jour de %1$s vers la version %2$s est disponible.",
+ "Update to {serverAndVersion} is available." : "La mise à jour de {serverAndVersion} est disponible",
"Update for {app} to version %s is available." : "Une mise à jour de {app} vers la version %s est disponible.",
"Update notification" : "Notification mise à jour",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Affiche les notifications de mise à jour pour Nextcloud et fournit l'authentification unique SSO pour le programme de mise à jour.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Affiche les notifications de mise à jour des applications et de Nextcloud et fournit l'authentification unique SSO pour le programme de mise à jour.",
+ "Give feedback" : "Faire un retour",
+ "Get started" : "Lancez-vous",
+ "No changelog available" : "Aucun journal des modifications disponible",
+ "What's new in {app} {version}" : "Quoi de neuf dans {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Une nouvelle version est disponible : <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Notez qu’après une nouvelle version, la mise à jour n’apparaît qu’après la première version mineure ou ultérieure. Nous déployons de nouvelles versions réparties sur le temps et nous sautons parfois une version lorsque des problèmes sont trouvés. Pour en savoir plus sur les mises à jour et les canaux de diffusion, visitez {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Vérifié le {lastCheckedDate} - Ouvrir le journal des modifications",
+ "Checking apps for compatible versions" : "Vérification de la compatibilité des applications",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Veuillez vous assurer que le paramètre <samp>appstoreenabled</samp> n'est pas défini à false dans votre config.php.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Impossible de se connecter au magasin d'applications ou aucune mise à jour n'est disponible. Recherchez manuellement les mises à jour ou assurez-vous que votre serveur a accès à Internet et peut se connecter au magasin d'applications.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Toutes</strong> les applications ont une version compatible avec cette version de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> application n'a pas de version compatible pour cette version de Nextcloud disponible.","<strong>%n</strong> applications n'ont pas de version compatible pour cette version de Nextcloud disponible.","<strong>%n</strong> applications n'ont pas de version compatible avec cette version de Nextcloud disponible."],
+ "Enterprise" : "Entreprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pour les entreprises. Fournit toujours le correctif le plus récent, mais ne mettra pas à jour dans la version majeure suivante immédiatement. Cette mise à jour sera effectuée une fois que Nextcloud GmbH aura effectué les renforcements et tests pour permettre un déploiement en production et à grande échelle. Ce canal de mise à jour est seulement disponible pour les clients et fournit le paquet Nextcloud Entreprise.",
+ "Stable" : "Stable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La version stable la plus récente. Elle est adaptée pour une utilisation régulière et sera toujours mise à jour vers la dernière version majeure.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Une version préliminaire utilisée seulement pour tester les nouvelles fonctionnalités, n'est pas adaptée dans un environnement de production.",
+ "Update" : "Mise à jour",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La version que vous utilisez n'est plus maintenue. Assurez vous d'effectuer une mise à jour vers une version prise en charge dès que possible.",
- "Apps missing updates" : "Applications à mettre à jour",
+ "Apps missing compatible version" : "Applications n'ayant pas de version compatible",
"View in store" : "Afficher dans le magasin d'applications",
- "Apps with available updates" : "Applications avec des mises à jour disponibles",
- "Open updater" : "Ouvrir le système de mise à jour",
+ "Apps with compatible version" : "Applications compatibles avec la nouvelle version",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Veuillez noter que la mise à jour par le navigateur n'est pas recommandée si votre instance comporte plus de 100 comptes ! Veuillez utiliser l'interface en ligne de commandes. ",
+ "Open updater" : "Ouvrir l'interface de mise à jour",
"Download now" : "Télécharger maintenant",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "La mise à jour par l'interface web est désactivée. Veuillez utiliser la mise à jour par ligne de commande ou le mécanisme de mise à jour approprié pour votre méthode d'installation (par exemple, Docker pull) pour effectuer la mise à jour.",
"What's new?" : "Quoi de neuf ?",
+ "View changelog" : "Voir le journal des modifications",
"The update check is not yet finished. Please refresh the page." : "La vérification de la mise-à-jour n'est pas encore terminée. Veuillez rafraîchir la page.",
"Your version is up to date." : "Votre version est à jour.",
"A non-default update server is in use to be checked for updates:" : "Un serveur spécifique est actuellement configuré pour la vérification des mises-à-jour :",
- "Update channel:" : "Canal de mise à jour :",
+ "Update channel" : "Canal de mise à jour",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Modifier le canal de mise à jour affectera aussi la page de gestion des applications. Par exemple, après avoir choisi le canal bêta, les mises à jour bêta des applications vous seront proposées.",
+ "Current update channel:" : "Canal de mise à jour actuel",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Vous pouvez à tout moment mettre à jour votre instance Nextcloud vers une version plus récente. Vous ne pourrez cependant jamais revenir à une version antérieure en sélectionnant un canal plus stable.",
"Notify members of the following groups about available updates:" : "Notifier les membres des groupes suivants des mises à jours disponibles :",
- "Only notification for app updates are available." : "Seules les notifications pour les mises à jour d'applications sont diponibles.",
+ "No groups" : "Aucun groupe",
+ "Only notifications for app updates are available." : "Seules les notifications de mises à jour d'applications sont disponibles. ",
"The selected update channel makes dedicated notifications for the server obsolete." : "Le canal de mise à jour sélectionné rend obsolètes les notifications dédiées au serveur.",
"The selected update channel does not support updates of the server." : "Le canal de mises à jour sélectionné ne supporte pas les mises à jour du serveur.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Une nouvelle version est disponible : <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Vérifié le {lastCheckedDate}",
- "Checking apps for compatible updates" : "Vérification des applications pour des mises à jour compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Veuillez vous assurer que le paramètre <samp>appstoreenabled</samp> n'est pas défini à false dans votre config.php.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Il est impossible de se connecter à l'appstore ou alors l'appstore n'a renvoyé aucune mise à jour. Cherchez manuellement les mises à jour ou assurez-vous que votre serveur a accès à Internet et peut se connecter à l'appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Toutes</strong> les applications ont une mise à jour disponible pour cette version",
- "View changelog" : "Voir le journal des modifications",
- "Enterprise" : "Entreprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pour les entreprises. Fournit toujours le correctif le plus récent, mais ne mettra pas à jour dans la version majeure suivante immédiatement. Cette mise à jour sera effectuée une fois que Nextcloud GmbH aura effectué les renforcements et tests pour permettre un déploiement en production et à grande échelle. Ce canal de mise à jour est seulement disponible pour les clients et fournit le paquet Nextcloud Entreprise.",
- "Stable" : "Stable",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La version stable la plus récente. Elle est adaptée pour une utilisation régulière et sera toujours mise à jour vers la dernière version majeure.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Une version préliminaire utilisée seulement pour tester les nouvelles fonctionnalités, n'est pas adaptée dans un environnement de production.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> application n'a pas de mise à jour disponible pour cette version","<strong>%n</strong> applications n'ont pas de mise à jour disponible pour cette version"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Veuillez noter qu'il peut s'écouler un certain temps entre la sortie d'une nouvelle version et sa disponibilité pour téléchargement et mise-à-jour ici, sur votre instance. Nous répartissons le déploiement des nouvelles versions Nextcloud dans le temps à l'ensemble de nos utilisateurs. Certaines versions mineures, présentant des bugs problématiques, peuvent être sautées."
+ "Changelog for app {app}" : "Journal des modifications pour l'application {app}",
+ "What's new in {app} version {version}" : "Quoi de neuf dans {app} version {version}",
+ "{version} is available. Get more information on how to update." : "La version {version} est disponible. Cliquez ici pour plus d’informations sur comment mettre à jour."
},
-"nplurals=2; plural=(n > 1);");
+"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/fr.json b/apps/updatenotification/l10n/fr.json
index 935465f8ccc..7e1fec6109a 100644
--- a/apps/updatenotification/l10n/fr.json
+++ b/apps/updatenotification/l10n/fr.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "La version {version} est disponible. Cliquez ici pour plus d'informations sur comment mettre à jour.",
"Channel updated" : "Canal de mise à jour modifié",
+ "Web updater is disabled" : "La mise à jour par l'interface Web est désactivée ",
+ "App updated" : "Application mise à jour",
+ "See what's new" : "Quoi de neuf",
+ "{app} updated to version {version}" : "{app} a été mise à jour vers la version {version}",
"Update notifications" : "Notifications de mises à jour",
"The update server could not be reached since %d days to check for new updates." : "Le serveur de mise à jour n'a pas pu être atteint depuis %d jours pour vérifier les nouvelles mises à jour.",
"Please check the Nextcloud and server log files for errors." : "Veuillez vérifier les fichiers de log de Nextcloud et du serveur pour les erreurs.",
- "Update to %1$s is available." : "Une mise à jour vers %1$s est disponible",
- "Update for %1$s to version %2$s is available." : "Une mise à jour de %1$s vers la version %2$s est disponible.",
+ "Update to {serverAndVersion} is available." : "La mise à jour de {serverAndVersion} est disponible",
"Update for {app} to version %s is available." : "Une mise à jour de {app} vers la version %s est disponible.",
"Update notification" : "Notification mise à jour",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Affiche les notifications de mise à jour pour Nextcloud et fournit l'authentification unique SSO pour le programme de mise à jour.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Affiche les notifications de mise à jour des applications et de Nextcloud et fournit l'authentification unique SSO pour le programme de mise à jour.",
+ "Give feedback" : "Faire un retour",
+ "Get started" : "Lancez-vous",
+ "No changelog available" : "Aucun journal des modifications disponible",
+ "What's new in {app} {version}" : "Quoi de neuf dans {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Une nouvelle version est disponible : <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Notez qu’après une nouvelle version, la mise à jour n’apparaît qu’après la première version mineure ou ultérieure. Nous déployons de nouvelles versions réparties sur le temps et nous sautons parfois une version lorsque des problèmes sont trouvés. Pour en savoir plus sur les mises à jour et les canaux de diffusion, visitez {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Vérifié le {lastCheckedDate} - Ouvrir le journal des modifications",
+ "Checking apps for compatible versions" : "Vérification de la compatibilité des applications",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Veuillez vous assurer que le paramètre <samp>appstoreenabled</samp> n'est pas défini à false dans votre config.php.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Impossible de se connecter au magasin d'applications ou aucune mise à jour n'est disponible. Recherchez manuellement les mises à jour ou assurez-vous que votre serveur a accès à Internet et peut se connecter au magasin d'applications.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Toutes</strong> les applications ont une version compatible avec cette version de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> application n'a pas de version compatible pour cette version de Nextcloud disponible.","<strong>%n</strong> applications n'ont pas de version compatible pour cette version de Nextcloud disponible.","<strong>%n</strong> applications n'ont pas de version compatible avec cette version de Nextcloud disponible."],
+ "Enterprise" : "Entreprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pour les entreprises. Fournit toujours le correctif le plus récent, mais ne mettra pas à jour dans la version majeure suivante immédiatement. Cette mise à jour sera effectuée une fois que Nextcloud GmbH aura effectué les renforcements et tests pour permettre un déploiement en production et à grande échelle. Ce canal de mise à jour est seulement disponible pour les clients et fournit le paquet Nextcloud Entreprise.",
+ "Stable" : "Stable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La version stable la plus récente. Elle est adaptée pour une utilisation régulière et sera toujours mise à jour vers la dernière version majeure.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Une version préliminaire utilisée seulement pour tester les nouvelles fonctionnalités, n'est pas adaptée dans un environnement de production.",
+ "Update" : "Mise à jour",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La version que vous utilisez n'est plus maintenue. Assurez vous d'effectuer une mise à jour vers une version prise en charge dès que possible.",
- "Apps missing updates" : "Applications à mettre à jour",
+ "Apps missing compatible version" : "Applications n'ayant pas de version compatible",
"View in store" : "Afficher dans le magasin d'applications",
- "Apps with available updates" : "Applications avec des mises à jour disponibles",
- "Open updater" : "Ouvrir le système de mise à jour",
+ "Apps with compatible version" : "Applications compatibles avec la nouvelle version",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Veuillez noter que la mise à jour par le navigateur n'est pas recommandée si votre instance comporte plus de 100 comptes ! Veuillez utiliser l'interface en ligne de commandes. ",
+ "Open updater" : "Ouvrir l'interface de mise à jour",
"Download now" : "Télécharger maintenant",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "La mise à jour par l'interface web est désactivée. Veuillez utiliser la mise à jour par ligne de commande ou le mécanisme de mise à jour approprié pour votre méthode d'installation (par exemple, Docker pull) pour effectuer la mise à jour.",
"What's new?" : "Quoi de neuf ?",
+ "View changelog" : "Voir le journal des modifications",
"The update check is not yet finished. Please refresh the page." : "La vérification de la mise-à-jour n'est pas encore terminée. Veuillez rafraîchir la page.",
"Your version is up to date." : "Votre version est à jour.",
"A non-default update server is in use to be checked for updates:" : "Un serveur spécifique est actuellement configuré pour la vérification des mises-à-jour :",
- "Update channel:" : "Canal de mise à jour :",
+ "Update channel" : "Canal de mise à jour",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Modifier le canal de mise à jour affectera aussi la page de gestion des applications. Par exemple, après avoir choisi le canal bêta, les mises à jour bêta des applications vous seront proposées.",
+ "Current update channel:" : "Canal de mise à jour actuel",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Vous pouvez à tout moment mettre à jour votre instance Nextcloud vers une version plus récente. Vous ne pourrez cependant jamais revenir à une version antérieure en sélectionnant un canal plus stable.",
"Notify members of the following groups about available updates:" : "Notifier les membres des groupes suivants des mises à jours disponibles :",
- "Only notification for app updates are available." : "Seules les notifications pour les mises à jour d'applications sont diponibles.",
+ "No groups" : "Aucun groupe",
+ "Only notifications for app updates are available." : "Seules les notifications de mises à jour d'applications sont disponibles. ",
"The selected update channel makes dedicated notifications for the server obsolete." : "Le canal de mise à jour sélectionné rend obsolètes les notifications dédiées au serveur.",
"The selected update channel does not support updates of the server." : "Le canal de mises à jour sélectionné ne supporte pas les mises à jour du serveur.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Une nouvelle version est disponible : <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Vérifié le {lastCheckedDate}",
- "Checking apps for compatible updates" : "Vérification des applications pour des mises à jour compatibles",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Veuillez vous assurer que le paramètre <samp>appstoreenabled</samp> n'est pas défini à false dans votre config.php.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Il est impossible de se connecter à l'appstore ou alors l'appstore n'a renvoyé aucune mise à jour. Cherchez manuellement les mises à jour ou assurez-vous que votre serveur a accès à Internet et peut se connecter à l'appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Toutes</strong> les applications ont une mise à jour disponible pour cette version",
- "View changelog" : "Voir le journal des modifications",
- "Enterprise" : "Entreprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pour les entreprises. Fournit toujours le correctif le plus récent, mais ne mettra pas à jour dans la version majeure suivante immédiatement. Cette mise à jour sera effectuée une fois que Nextcloud GmbH aura effectué les renforcements et tests pour permettre un déploiement en production et à grande échelle. Ce canal de mise à jour est seulement disponible pour les clients et fournit le paquet Nextcloud Entreprise.",
- "Stable" : "Stable",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La version stable la plus récente. Elle est adaptée pour une utilisation régulière et sera toujours mise à jour vers la dernière version majeure.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Une version préliminaire utilisée seulement pour tester les nouvelles fonctionnalités, n'est pas adaptée dans un environnement de production.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> application n'a pas de mise à jour disponible pour cette version","<strong>%n</strong> applications n'ont pas de mise à jour disponible pour cette version"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Veuillez noter qu'il peut s'écouler un certain temps entre la sortie d'une nouvelle version et sa disponibilité pour téléchargement et mise-à-jour ici, sur votre instance. Nous répartissons le déploiement des nouvelles versions Nextcloud dans le temps à l'ensemble de nos utilisateurs. Certaines versions mineures, présentant des bugs problématiques, peuvent être sautées."
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
+ "Changelog for app {app}" : "Journal des modifications pour l'application {app}",
+ "What's new in {app} version {version}" : "Quoi de neuf dans {app} version {version}",
+ "{version} is available. Get more information on how to update." : "La version {version} est disponible. Cliquez ici pour plus d’informations sur comment mettre à jour."
+},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ga.js b/apps/updatenotification/l10n/ga.js
new file mode 100644
index 00000000000..d50dbd3ec03
--- /dev/null
+++ b/apps/updatenotification/l10n/ga.js
@@ -0,0 +1,61 @@
+OC.L10N.register(
+ "updatenotification",
+ {
+ "Channel updated" : "Nuashonraíodh an cainéal",
+ "Web updater is disabled" : "Tá an nuashonrú Gréasáin díchumasaithe",
+ "App updated" : "Nuashonraíodh an app",
+ "See what's new" : "Féach cad atá nua",
+ "{app} updated to version {version}" : "Nuashonraíodh {app} go leagan {version}",
+ "Update notifications" : "Nuashonraigh fógraí",
+ "The update server could not be reached since %d days to check for new updates." : "Níorbh fhéidir an freastalaí nuashonraithe a bhaint amach ó %d lá chun seiceáil le haghaidh nuashonruithe nua.",
+ "Please check the Nextcloud and server log files for errors." : "Seiceáil an Nextcloud agus comhaid logála an fhreastalaí le haghaidh earráidí le do thoil.",
+ "Update to {serverAndVersion} is available." : "Tá nuashonrú ar {serverAndVersion} ar fáil.",
+ "Update for {app} to version %s is available." : "Tá nuashonrú do {app} go leagan %s ar fáil.",
+ "Update notification" : "Fógra nuashonraithe",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Taispeánann sé fógraí nuashonraithe do Nextcloud, nuashonruithe aipeanna, agus soláthraíonn sé an SSO don nuashonróir.",
+ "Give feedback" : "Tabhair aiseolas",
+ "Get started" : "Tosaigh",
+ "No changelog available" : "Níl aon loga athraithe ar fáil",
+ "What's new in {app} {version}" : "A bhfuil nua in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Tá leagan nua ar fáil: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tabhair faoi deara nach dtaispeánfar an nuashonrú tar éis eisiúint nua ach amháin tar éis an chéad mhioneisiúint nó níos déanaí. Déanaimid leaganacha nua a rolladh amach thar am agus uaireanta ní dhéanaimid iarracht leagan nuair a aimsítear ceisteanna. Foghlaim tuilleadh faoi nuashonruithe agus cainéil eisithe ag {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Ticeáilte ar {lastCheckedDate} - Open changelog",
+ "Checking apps for compatible versions" : "Aipeanna á seiceáil le haghaidh leaganacha comhoiriúnacha",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Cinntigh le do thoil nach socraíonn do config.php <samp>appstoreenabled</samp> go bréagach",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Níorbh fhéidir ceangal leis an Siopa Aip nó níor tugadh aon nuashonruithe ar ais ar chor ar bith. Déan cuardach de láimh le haghaidh nuashonruithe nó cinntigh go bhfuil rochtain ag do fhreastalaí ar an idirlíon agus gur féidir leis nascadh leis an Siopa Aip.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "Tá leagan comhoiriúnach don leagan seo de Nextcloud ar fáil do gach<strong>All</strong>",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>.","Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>.","Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>. ","Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>.","Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>."],
+ "Enterprise" : "Fiontar",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Le haghaidh úsáide fiontair. Soláthraíonn sé an leibhéal paiste is déanaí i gcónaí, ach ní nuashonróidh sé go dtí an chéad scaoileadh mór eile láithreach. Tarlaíonn an nuashonrú sin nuair a bheidh cruaite agus tástáil bhreise déanta ag Nextcloud GmbH le haghaidh imlonnaithe ar scála mór agus atá ríthábhachtach do mhisin. Níl an cainéal seo ar fáil ach do chustaiméirí agus soláthraíonn sé an pacáiste Nextcloud Enterprise.",
+ "Stable" : "Cobhsaí",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "An leagan cobhsaí is déanaí. Tá sé feiliúnach le húsáid rialta agus nuashonróidh sé go dtí an mórleagan is déanaí i gcónaí.",
+ "Beta" : "Béite",
+ "A pre-release version only for testing new features, not for production environments." : "Leagan réamheisiúint amháin chun gnéithe nua a thástáil, ní le haghaidh timpeallachtaí táirgthe.",
+ "Update" : "Nuashonrú",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Níl an leagan atá á rith agat á chothabháil a thuilleadh. Cinntigh le do thoil go bhfuil tú ag nuashonrú go leagan tacaithe chomh luath agus is féidir.",
+ "Apps missing compatible version" : "Leagan comhoiriúnach in easnamh ar aipeanna",
+ "View in store" : "Amharc sa siopa",
+ "Apps with compatible version" : "Feidhmchláir le leagan comhoiriúnach",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Tabhair faoi deara le do thoil nach moltar an nuashonrú gréasáin le níos mó ná 100 cuntas! Bain úsáid as an nuashonrú líne ordaithe ina ionad sin!",
+ "Open updater" : "Oscail an nuashonrú",
+ "Download now" : "Íoslódáil anois",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Tá an nuashonrú Gréasáin díchumasaithe. Bain úsáid as an nuashonróir líne ordaithe nó an meicníocht nuashonraithe chuí do do mhodh suiteála (m.sh. tarraingt Docker) chun nuashonrú a dhéanamh le do thoil.",
+ "What's new?" : "Cad atá nua?",
+ "View changelog" : "Féach ar loga na n-athruithe",
+ "The update check is not yet finished. Please refresh the page." : "Níl an seiceáil nuashonraithe críochnaithe fós. Athnuaigh an leathanach le do thoil.",
+ "Your version is up to date." : "Tá do leagan suas chun dáta.",
+ "A non-default update server is in use to be checked for updates:" : "Tá freastalaí nuashonraithe neamh-réamhshocraithe in úsáid le seiceáil le haghaidh nuashonruithe:",
+ "Update channel" : "Nuashonraigh cainéal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Bíonn tionchar freisin ag athrú an chainéil nuashonraithe ar an leathanach bainistíochta aipeanna. E.g. tar éis athrú go dtí an cainéal béite, beidh nuashonruithe app béite a thairiscint duit ar an leathanach bainistíochta apps.",
+ "Current update channel:" : "Cainéal nuashonraithe reatha:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Is féidir leat i gcónaí nuashonrú go leagan níos nuaí. Ach ní féidir leat íosghrádú go leagan níos cobhsaí riamh.",
+ "Notify members of the following groups about available updates:" : "Cuir baill de na grúpaí seo a leanas ar an eolas faoi nuashonruithe atá ar fáil:",
+ "No groups" : "Gan grúpaí",
+ "Only notifications for app updates are available." : "Níl ach fógraí le haghaidh nuashonruithe aip ar fáil.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Déanann an cainéal nuashonraithe roghnaithe fógraí tiomnaithe don fhreastalaí as feidhm.",
+ "The selected update channel does not support updates of the server." : "Ní thacaíonn an cainéal nuashonraithe roghnaithe le nuashonruithe an fhreastalaí.",
+ "Changelog for app {app}" : "Changelog don aip {app}",
+ "What's new in {app} version {version}" : "A bhfuil nua i {app} leagan {version}",
+ "{version} is available. Get more information on how to update." : "Tá {version} ar fáil. Faigh tuilleadh eolais faoi conas nuashonrú a dhéanamh."
+},
+"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
diff --git a/apps/updatenotification/l10n/ga.json b/apps/updatenotification/l10n/ga.json
new file mode 100644
index 00000000000..a513b528ffe
--- /dev/null
+++ b/apps/updatenotification/l10n/ga.json
@@ -0,0 +1,59 @@
+{ "translations": {
+ "Channel updated" : "Nuashonraíodh an cainéal",
+ "Web updater is disabled" : "Tá an nuashonrú Gréasáin díchumasaithe",
+ "App updated" : "Nuashonraíodh an app",
+ "See what's new" : "Féach cad atá nua",
+ "{app} updated to version {version}" : "Nuashonraíodh {app} go leagan {version}",
+ "Update notifications" : "Nuashonraigh fógraí",
+ "The update server could not be reached since %d days to check for new updates." : "Níorbh fhéidir an freastalaí nuashonraithe a bhaint amach ó %d lá chun seiceáil le haghaidh nuashonruithe nua.",
+ "Please check the Nextcloud and server log files for errors." : "Seiceáil an Nextcloud agus comhaid logála an fhreastalaí le haghaidh earráidí le do thoil.",
+ "Update to {serverAndVersion} is available." : "Tá nuashonrú ar {serverAndVersion} ar fáil.",
+ "Update for {app} to version %s is available." : "Tá nuashonrú do {app} go leagan %s ar fáil.",
+ "Update notification" : "Fógra nuashonraithe",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Taispeánann sé fógraí nuashonraithe do Nextcloud, nuashonruithe aipeanna, agus soláthraíonn sé an SSO don nuashonróir.",
+ "Give feedback" : "Tabhair aiseolas",
+ "Get started" : "Tosaigh",
+ "No changelog available" : "Níl aon loga athraithe ar fáil",
+ "What's new in {app} {version}" : "A bhfuil nua in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Tá leagan nua ar fáil: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Tabhair faoi deara nach dtaispeánfar an nuashonrú tar éis eisiúint nua ach amháin tar éis an chéad mhioneisiúint nó níos déanaí. Déanaimid leaganacha nua a rolladh amach thar am agus uaireanta ní dhéanaimid iarracht leagan nuair a aimsítear ceisteanna. Foghlaim tuilleadh faoi nuashonruithe agus cainéil eisithe ag {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Ticeáilte ar {lastCheckedDate} - Open changelog",
+ "Checking apps for compatible versions" : "Aipeanna á seiceáil le haghaidh leaganacha comhoiriúnacha",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Cinntigh le do thoil nach socraíonn do config.php <samp>appstoreenabled</samp> go bréagach",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Níorbh fhéidir ceangal leis an Siopa Aip nó níor tugadh aon nuashonruithe ar ais ar chor ar bith. Déan cuardach de láimh le haghaidh nuashonruithe nó cinntigh go bhfuil rochtain ag do fhreastalaí ar an idirlíon agus gur féidir leis nascadh leis an Siopa Aip.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "Tá leagan comhoiriúnach don leagan seo de Nextcloud ar fáil do gach<strong>All</strong>",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>.","Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>.","Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>. ","Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>.","Níl leagan comhoiriúnach don leagan seo de Nextcloud ar fáil ag<strong>%n</strong>."],
+ "Enterprise" : "Fiontar",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Le haghaidh úsáide fiontair. Soláthraíonn sé an leibhéal paiste is déanaí i gcónaí, ach ní nuashonróidh sé go dtí an chéad scaoileadh mór eile láithreach. Tarlaíonn an nuashonrú sin nuair a bheidh cruaite agus tástáil bhreise déanta ag Nextcloud GmbH le haghaidh imlonnaithe ar scála mór agus atá ríthábhachtach do mhisin. Níl an cainéal seo ar fáil ach do chustaiméirí agus soláthraíonn sé an pacáiste Nextcloud Enterprise.",
+ "Stable" : "Cobhsaí",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "An leagan cobhsaí is déanaí. Tá sé feiliúnach le húsáid rialta agus nuashonróidh sé go dtí an mórleagan is déanaí i gcónaí.",
+ "Beta" : "Béite",
+ "A pre-release version only for testing new features, not for production environments." : "Leagan réamheisiúint amháin chun gnéithe nua a thástáil, ní le haghaidh timpeallachtaí táirgthe.",
+ "Update" : "Nuashonrú",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Níl an leagan atá á rith agat á chothabháil a thuilleadh. Cinntigh le do thoil go bhfuil tú ag nuashonrú go leagan tacaithe chomh luath agus is féidir.",
+ "Apps missing compatible version" : "Leagan comhoiriúnach in easnamh ar aipeanna",
+ "View in store" : "Amharc sa siopa",
+ "Apps with compatible version" : "Feidhmchláir le leagan comhoiriúnach",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Tabhair faoi deara le do thoil nach moltar an nuashonrú gréasáin le níos mó ná 100 cuntas! Bain úsáid as an nuashonrú líne ordaithe ina ionad sin!",
+ "Open updater" : "Oscail an nuashonrú",
+ "Download now" : "Íoslódáil anois",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Tá an nuashonrú Gréasáin díchumasaithe. Bain úsáid as an nuashonróir líne ordaithe nó an meicníocht nuashonraithe chuí do do mhodh suiteála (m.sh. tarraingt Docker) chun nuashonrú a dhéanamh le do thoil.",
+ "What's new?" : "Cad atá nua?",
+ "View changelog" : "Féach ar loga na n-athruithe",
+ "The update check is not yet finished. Please refresh the page." : "Níl an seiceáil nuashonraithe críochnaithe fós. Athnuaigh an leathanach le do thoil.",
+ "Your version is up to date." : "Tá do leagan suas chun dáta.",
+ "A non-default update server is in use to be checked for updates:" : "Tá freastalaí nuashonraithe neamh-réamhshocraithe in úsáid le seiceáil le haghaidh nuashonruithe:",
+ "Update channel" : "Nuashonraigh cainéal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Bíonn tionchar freisin ag athrú an chainéil nuashonraithe ar an leathanach bainistíochta aipeanna. E.g. tar éis athrú go dtí an cainéal béite, beidh nuashonruithe app béite a thairiscint duit ar an leathanach bainistíochta apps.",
+ "Current update channel:" : "Cainéal nuashonraithe reatha:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Is féidir leat i gcónaí nuashonrú go leagan níos nuaí. Ach ní féidir leat íosghrádú go leagan níos cobhsaí riamh.",
+ "Notify members of the following groups about available updates:" : "Cuir baill de na grúpaí seo a leanas ar an eolas faoi nuashonruithe atá ar fáil:",
+ "No groups" : "Gan grúpaí",
+ "Only notifications for app updates are available." : "Níl ach fógraí le haghaidh nuashonruithe aip ar fáil.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Déanann an cainéal nuashonraithe roghnaithe fógraí tiomnaithe don fhreastalaí as feidhm.",
+ "The selected update channel does not support updates of the server." : "Ní thacaíonn an cainéal nuashonraithe roghnaithe le nuashonruithe an fhreastalaí.",
+ "Changelog for app {app}" : "Changelog don aip {app}",
+ "What's new in {app} version {version}" : "A bhfuil nua i {app} leagan {version}",
+ "{version} is available. Get more information on how to update." : "Tá {version} ar fáil. Faigh tuilleadh eolais faoi conas nuashonrú a dhéanamh."
+},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
+} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/gl.js b/apps/updatenotification/l10n/gl.js
index 4921f0385e6..6dce87f01e3 100644
--- a/apps/updatenotification/l10n/gl.js
+++ b/apps/updatenotification/l10n/gl.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} está dispoñíbel. Obteña máis información sobre como actualizar.",
"Channel updated" : "Canle actualizada",
+ "Web updater is disabled" : "O actualizador web está desactivado",
+ "App updated" : "Aplicación actualizada",
+ "See what's new" : "Olle as novidades",
+ "{app} updated to version {version}" : "{app} foi actualizada á versión {version}",
"Update notifications" : "Actualizar as notificacións",
- "The update server could not be reached since %d days to check for new updates." : "Non foi posíbel acadar o servidor de actualizacións dende hai %d días para comprobar se hai novas actualizacións.",
+ "The update server could not be reached since %d days to check for new updates." : "Non foi posíbel acadar o servidor de actualizacións desde hai %d días para comprobar se hai novas actualizacións.",
"Please check the Nextcloud and server log files for errors." : "Revise os ficheiros de rexistro de Nextcloud e do servidor na busca de erros.",
- "Update to %1$s is available." : "Está dispoñíbel unha actualización para %1$s.",
- "Update for %1$s to version %2$s is available." : "Está dispoñíbel unha actualización para %1$s á versión %2$s.",
+ "Update to {serverAndVersion} is available." : "Está dispoñíbel a actualización para {serverAndVersion}.",
"Update for {app} to version %s is available." : "Está dispoñíbel unha actualización para {app} á versión %s.",
"Update notification" : "Notificación de actualización",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Amosa as notificacións de actualizacións para o Nexcloud e fornece o SSO para o actualizador.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Amosa as notificacións de actualizacións para Nextcloud e para as aplicacións e fornece o inicio de sesión único (SSO) para o actualizador.",
+ "Give feedback" : "Opinar",
+ "Get started" : "Comezar",
+ "No changelog available" : "Non hai notas da versión dispoñíbeis",
+ "What's new in {app} {version}" : "Novidades en {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Hai dispoñíbel unha versión nova:<strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Teña en conta que após unha nova edición, a actualización só aparece após a primeira edición menor ou posterior. Publicamos novas versións espalladas ao longo do tempo e ás veces saltamos unha versión cando se atopan problemas. Máis información sobre actualizacións e canles de edición en {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Comprobado o {lastCheckedDate} – Abrir as notas da versión",
+ "Checking apps for compatible versions" : "Comprobando as versións compatíbeis das aplicacións",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Asegúrese de que o seu config.php non ten estabelecido <samp>appstoreenabled</samp> como «false».",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Non foi posíbel conectar á Tenda de aplicacións ou non se devolveu ningunha actualización. Busque actualizacións manualmente ou asegúrese de que o seu servidor ten acceso a Internet e pode conectarse á Tenda de aplicacións.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> as aplicacións teñen dispoñíbel unha versión compatíbel para esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicación non ten dispoñíbel unha versión compatíbel para esta versión de Nextcloud.","<strong>%n</strong> aplicacións non teñen dispoñíbel unha versión compatíbel para esta versión de Nextcloud."],
+ "Enterprise" : "Empresarial",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Ofrece sempre o último nivel de parches, pero non se actualizará inmediatamente á seguinte edición principal. Esta actualización prodúcese unha vez que Nextcloud GmbH teña feitas as probas e reforzos para despregaduras a grande escala e de obxectivos críticos. Esta canle só está dispoñíbel para os clientes e fornece o paquete Nextcloud Enterprise.",
+ "Stable" : "Estábel",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versión estábel máis recente. É axeitada para uso en produción e actualizarase sempre á última versión maior.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Unha edición preliminar só para probar funcionalidades novas, non para contornos de produción",
+ "Update" : "Actualizar",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "A versión que ten en execución xa non dispón de mantemento. Asegúrese de actualizar a unha versión asistida tecnicamente tan cedo como lle sexa posíbel.",
- "Apps missing updates" : "Aplicacións con actualizacións non dispoñíbeis",
+ "Apps missing compatible version" : "Aplicacións que carecen de versión compatíbel",
"View in store" : "Ver na tenda",
- "Apps with available updates" : "Aplicacións con actualizacións dispoñíbeis",
+ "Apps with compatible version" : "Aplicacións con versión compatíbel",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Teña en conta que o actualizador web non está recomendado con máis de 100 contas! Empregue o actualizador da liña de ordes.",
"Open updater" : "Abrir o actualizador",
"Download now" : "Descargar agora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "O actualizador web está desactivado. Use o actualizador de liña de ordes ou o mecanismo de actualización axeitado para o seu método de instalación (por exemplo, Docker pull) para actualizar.",
"What's new?" : "Que hai de novo?",
+ "View changelog" : "Ver o rexistro de cambios",
"The update check is not yet finished. Please refresh the page." : "A comprobación de actualización aínda non rematou. Recargue a páxina.",
"Your version is up to date." : "A súa versión está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Está en uso un servidor de actualizacións que non é o predeterminado para comprobar as actualizacións:",
- "Update channel:" : "Canle de actualización:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre poderá actualizar á versión más recente, mais nunca poderá volver a unha canle máis estábel.",
+ "Update channel" : "Canle de actualización:",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Cambiar a canle de actualización tamén afecta á páxina de xestión de aplicacións. p. ex. após cambiar á canle beta, ofreceranse actualizacións da aplicación beta na páxina de xestión de aplicacións.",
+ "Current update channel:" : "Canle de actualización actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre poderá actualizar á versión más recente, mais nunca poderá reverter a unha canle máis estábel.",
"Notify members of the following groups about available updates:" : "Notificar aos membros dos seguintes grupos sobre actualizacións dispoñíbeis:",
- "Only notification for app updates are available." : "Só están dispoñíbeis as notificacións para actualizacións de aplicacións.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "A canle de actualización seleccionada fai obsoletas as notificacións dedicadas para o servidor.",
+ "No groups" : "Non hai grupos",
+ "Only notifications for app updates are available." : "Só están dispoñíbeis as notificacións para actualizacións de aplicación.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "A canle de actualización seleccionada fai obsoletas as notificacións específicas para o servidor.",
"The selected update channel does not support updates of the server." : "A canle de actualización seleccionada non admite actualizacións do servidor.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Hai dispoñíbel unha versión nova:<strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Ten en conta que após unha nova versión, a actualización só aparece após a primeira versión menor ou posterior.publicamos novas versións repartidas ao longo do tempo para os nosos usuarios e ás veces omitimos unha versión cando se atopan problemas. Máis información sobre actualizacións e canles de publicación en {link}",
- "Checked on {lastCheckedDate}" : "Comprobado o {lastCheckedDate}",
- "Checking apps for compatible updates" : "Comprobando as actualizacións compatíbeis coas aplicacións",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Asegúrese de que o seu config.php non ten configurado <samp>appstoreenabled</samp> como «false».",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Non foi posíbel conectar coa tenda de aplicacións ou esta non devolveu ningunha actualización. Busque as actualizacións manualmente ou asegúrese de que o seu servidor ten acceso á Internet e pode conectarse coa tenda de aplicacións.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> as aplicacións teñen unha actualización dispoñíbel para esta versión",
- "View changelog" : "Ver o rexistro de cambios",
- "Enterprise" : "Empresarial",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Ofrece sempre o último nivel de parches, pero non se actualizará inmediatamente á seguinte versión principal. Esta actualización prodúcese unha vez que Nextcloud GmbH teña feitas as probas e reforzos para implementacións a gran escala e de obxectivos críticos. Esta canle só está dispoñíbel para os clientes e fornece o paquete Nextcloud empresarial.",
- "Stable" : "Estábel",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versión estábel máis recente. É axeitada para uso en produción e actualizarase sempre á última versión maior.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Unha versión preliminar só para probar funcionalidades novas, non para contornos de produción",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación non ten unha actualización dispoñíbel para esta versión","<strong>%n</strong> aplicacións non teñen unha actualización dispoñíbel para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Teña en conta que após a publicación dunha nova versión pode levar algún tempo antes de que se amose aiquí. Programamos novas versións ao longo do tempo para os nosos usuarios e por veces omitimos unha versión cando se atopan incidentes."
+ "Changelog for app {app}" : "Notas da versión para a aplicación {app}",
+ "What's new in {app} version {version}" : "Novidades en {app} versión {version}",
+ "{version} is available. Get more information on how to update." : "{version} está dispoñíbel. Obteña máis información sobre como actualizar."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/gl.json b/apps/updatenotification/l10n/gl.json
index a54a617b3b0..45ff6a8df29 100644
--- a/apps/updatenotification/l10n/gl.json
+++ b/apps/updatenotification/l10n/gl.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está dispoñíbel. Obteña máis información sobre como actualizar.",
"Channel updated" : "Canle actualizada",
+ "Web updater is disabled" : "O actualizador web está desactivado",
+ "App updated" : "Aplicación actualizada",
+ "See what's new" : "Olle as novidades",
+ "{app} updated to version {version}" : "{app} foi actualizada á versión {version}",
"Update notifications" : "Actualizar as notificacións",
- "The update server could not be reached since %d days to check for new updates." : "Non foi posíbel acadar o servidor de actualizacións dende hai %d días para comprobar se hai novas actualizacións.",
+ "The update server could not be reached since %d days to check for new updates." : "Non foi posíbel acadar o servidor de actualizacións desde hai %d días para comprobar se hai novas actualizacións.",
"Please check the Nextcloud and server log files for errors." : "Revise os ficheiros de rexistro de Nextcloud e do servidor na busca de erros.",
- "Update to %1$s is available." : "Está dispoñíbel unha actualización para %1$s.",
- "Update for %1$s to version %2$s is available." : "Está dispoñíbel unha actualización para %1$s á versión %2$s.",
+ "Update to {serverAndVersion} is available." : "Está dispoñíbel a actualización para {serverAndVersion}.",
"Update for {app} to version %s is available." : "Está dispoñíbel unha actualización para {app} á versión %s.",
"Update notification" : "Notificación de actualización",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Amosa as notificacións de actualizacións para o Nexcloud e fornece o SSO para o actualizador.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Amosa as notificacións de actualizacións para Nextcloud e para as aplicacións e fornece o inicio de sesión único (SSO) para o actualizador.",
+ "Give feedback" : "Opinar",
+ "Get started" : "Comezar",
+ "No changelog available" : "Non hai notas da versión dispoñíbeis",
+ "What's new in {app} {version}" : "Novidades en {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Hai dispoñíbel unha versión nova:<strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Teña en conta que após unha nova edición, a actualización só aparece após a primeira edición menor ou posterior. Publicamos novas versións espalladas ao longo do tempo e ás veces saltamos unha versión cando se atopan problemas. Máis información sobre actualizacións e canles de edición en {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Comprobado o {lastCheckedDate} – Abrir as notas da versión",
+ "Checking apps for compatible versions" : "Comprobando as versións compatíbeis das aplicacións",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Asegúrese de que o seu config.php non ten estabelecido <samp>appstoreenabled</samp> como «false».",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Non foi posíbel conectar á Tenda de aplicacións ou non se devolveu ningunha actualización. Busque actualizacións manualmente ou asegúrese de que o seu servidor ten acceso a Internet e pode conectarse á Tenda de aplicacións.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todas</strong> as aplicacións teñen dispoñíbel unha versión compatíbel para esta versión de Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicación non ten dispoñíbel unha versión compatíbel para esta versión de Nextcloud.","<strong>%n</strong> aplicacións non teñen dispoñíbel unha versión compatíbel para esta versión de Nextcloud."],
+ "Enterprise" : "Empresarial",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Ofrece sempre o último nivel de parches, pero non se actualizará inmediatamente á seguinte edición principal. Esta actualización prodúcese unha vez que Nextcloud GmbH teña feitas as probas e reforzos para despregaduras a grande escala e de obxectivos críticos. Esta canle só está dispoñíbel para os clientes e fornece o paquete Nextcloud Enterprise.",
+ "Stable" : "Estábel",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versión estábel máis recente. É axeitada para uso en produción e actualizarase sempre á última versión maior.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Unha edición preliminar só para probar funcionalidades novas, non para contornos de produción",
+ "Update" : "Actualizar",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "A versión que ten en execución xa non dispón de mantemento. Asegúrese de actualizar a unha versión asistida tecnicamente tan cedo como lle sexa posíbel.",
- "Apps missing updates" : "Aplicacións con actualizacións non dispoñíbeis",
+ "Apps missing compatible version" : "Aplicacións que carecen de versión compatíbel",
"View in store" : "Ver na tenda",
- "Apps with available updates" : "Aplicacións con actualizacións dispoñíbeis",
+ "Apps with compatible version" : "Aplicacións con versión compatíbel",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Teña en conta que o actualizador web non está recomendado con máis de 100 contas! Empregue o actualizador da liña de ordes.",
"Open updater" : "Abrir o actualizador",
"Download now" : "Descargar agora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "O actualizador web está desactivado. Use o actualizador de liña de ordes ou o mecanismo de actualización axeitado para o seu método de instalación (por exemplo, Docker pull) para actualizar.",
"What's new?" : "Que hai de novo?",
+ "View changelog" : "Ver o rexistro de cambios",
"The update check is not yet finished. Please refresh the page." : "A comprobación de actualización aínda non rematou. Recargue a páxina.",
"Your version is up to date." : "A súa versión está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Está en uso un servidor de actualizacións que non é o predeterminado para comprobar as actualizacións:",
- "Update channel:" : "Canle de actualización:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre poderá actualizar á versión más recente, mais nunca poderá volver a unha canle máis estábel.",
+ "Update channel" : "Canle de actualización:",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Cambiar a canle de actualización tamén afecta á páxina de xestión de aplicacións. p. ex. após cambiar á canle beta, ofreceranse actualizacións da aplicación beta na páxina de xestión de aplicacións.",
+ "Current update channel:" : "Canle de actualización actual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre poderá actualizar á versión más recente, mais nunca poderá reverter a unha canle máis estábel.",
"Notify members of the following groups about available updates:" : "Notificar aos membros dos seguintes grupos sobre actualizacións dispoñíbeis:",
- "Only notification for app updates are available." : "Só están dispoñíbeis as notificacións para actualizacións de aplicacións.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "A canle de actualización seleccionada fai obsoletas as notificacións dedicadas para o servidor.",
+ "No groups" : "Non hai grupos",
+ "Only notifications for app updates are available." : "Só están dispoñíbeis as notificacións para actualizacións de aplicación.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "A canle de actualización seleccionada fai obsoletas as notificacións específicas para o servidor.",
"The selected update channel does not support updates of the server." : "A canle de actualización seleccionada non admite actualizacións do servidor.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Hai dispoñíbel unha versión nova:<strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Ten en conta que após unha nova versión, a actualización só aparece após a primeira versión menor ou posterior.publicamos novas versións repartidas ao longo do tempo para os nosos usuarios e ás veces omitimos unha versión cando se atopan problemas. Máis información sobre actualizacións e canles de publicación en {link}",
- "Checked on {lastCheckedDate}" : "Comprobado o {lastCheckedDate}",
- "Checking apps for compatible updates" : "Comprobando as actualizacións compatíbeis coas aplicacións",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Asegúrese de que o seu config.php non ten configurado <samp>appstoreenabled</samp> como «false».",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Non foi posíbel conectar coa tenda de aplicacións ou esta non devolveu ningunha actualización. Busque as actualizacións manualmente ou asegúrese de que o seu servidor ten acceso á Internet e pode conectarse coa tenda de aplicacións.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> as aplicacións teñen unha actualización dispoñíbel para esta versión",
- "View changelog" : "Ver o rexistro de cambios",
- "Enterprise" : "Empresarial",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Ofrece sempre o último nivel de parches, pero non se actualizará inmediatamente á seguinte versión principal. Esta actualización prodúcese unha vez que Nextcloud GmbH teña feitas as probas e reforzos para implementacións a gran escala e de obxectivos críticos. Esta canle só está dispoñíbel para os clientes e fornece o paquete Nextcloud empresarial.",
- "Stable" : "Estábel",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versión estábel máis recente. É axeitada para uso en produción e actualizarase sempre á última versión maior.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Unha versión preliminar só para probar funcionalidades novas, non para contornos de produción",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación non ten unha actualización dispoñíbel para esta versión","<strong>%n</strong> aplicacións non teñen unha actualización dispoñíbel para esta versión"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Teña en conta que após a publicación dunha nova versión pode levar algún tempo antes de que se amose aiquí. Programamos novas versións ao longo do tempo para os nosos usuarios e por veces omitimos unha versión cando se atopan incidentes."
+ "Changelog for app {app}" : "Notas da versión para a aplicación {app}",
+ "What's new in {app} version {version}" : "Novidades en {app} versión {version}",
+ "{version} is available. Get more information on how to update." : "{version} está dispoñíbel. Obteña máis información sobre como actualizar."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/he.js b/apps/updatenotification/l10n/he.js
deleted file mode 100644
index b686a747028..00000000000
--- a/apps/updatenotification/l10n/he.js
+++ /dev/null
@@ -1,36 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} זמינה. ניתן לקבל מידע נוסף על איך לעדכן.",
- "Channel updated" : "הערוץ התעדכן",
- "Update notifications" : "עדכון דיווחים",
- "The update server could not be reached since %d days to check for new updates." : "לא ניתן לגשת אל שרת העדכון מזה %d ימים כדי לבדוק אם יש עדכונים חדשים.",
- "Please check the Nextcloud and server log files for errors." : "נא לחפש שגיאות בקובצי היומן של Nextcloud ושל השרת.",
- "Update to %1$s is available." : "קיים עדכון ל־%1$s.",
- "Update for %1$s to version %2$s is available." : "עדכון של %1$s לגרסה %2$s זמין.",
- "Update for {app} to version %s is available." : "קיים עדכון עבור {app} לגרסה %s.",
- "Update notification" : "התראה על עדכון",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "מציג התראות עדכון ל־Nextcloud ומספק SSO (גישה אחודה) למעדכן.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "הגרסה שפועלת אצלך אינה מתוחזקת יותר. נא לוודא לעדכן לגרסה נתמכת במהירות האפשרית.",
- "Apps missing updates" : "ליישומונים חסרים עדכונים",
- "View in store" : "הצגה בחנות",
- "Apps with available updates" : "יישומים עם עדכונים זמינים",
- "Open updater" : "פתיחת המעדכן",
- "Download now" : "להוריד כעת",
- "What's new?" : "מה חדש?",
- "The update check is not yet finished. Please refresh the page." : "בדיקת העדכונים לא הסתיימה עדיין. נא לעדכן את העמוד.",
- "Your version is up to date." : "הגרסה שבידך מעודכנת.",
- "Update channel:" : "עדכון ערוץ:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "תמיד ניתן לעדכן לגרסה חדשה יותר. אך אי אפשר לשנמך לגרסה יציבה יותר.",
- "Notify members of the following groups about available updates:" : "דיווח למשתמשים של קבוצות אלו על עדכונים זמינים:",
- "The selected update channel does not support updates of the server." : "ערוץ העדכון הנבחר לא תומך בעדכון השרת.",
- "A new version is available: <strong>{newVersionString}</strong>" : "גרסה חדשה זמינה: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "נבדק לאחרונה ב־{lastCheckedDate}",
- "Checking apps for compatible updates" : "היישומונים נבדקים לאיתור עדכונים תואמים",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "נא לוודא שב־config.php שלך ה־<samp>appstoreenabled</samp> לא מוגדר ל‏־false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "לא ניתן להתחבר לחנות היישומונים או שחנות היישומונים לא החזירה שיש עדכונים. ניתן לחפש ידנית עדכונים או לוודא שלשרת שלך יש גישה לאינטרנט ושיש לו איך להתחבר לחנות היישומונים.",
- "View changelog" : "הצגת יומן שינויים",
- "Stable" : "יציב",
- "Beta" : "בטא"
-},
-"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
diff --git a/apps/updatenotification/l10n/he.json b/apps/updatenotification/l10n/he.json
deleted file mode 100644
index 5075cdefeaf..00000000000
--- a/apps/updatenotification/l10n/he.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} זמינה. ניתן לקבל מידע נוסף על איך לעדכן.",
- "Channel updated" : "הערוץ התעדכן",
- "Update notifications" : "עדכון דיווחים",
- "The update server could not be reached since %d days to check for new updates." : "לא ניתן לגשת אל שרת העדכון מזה %d ימים כדי לבדוק אם יש עדכונים חדשים.",
- "Please check the Nextcloud and server log files for errors." : "נא לחפש שגיאות בקובצי היומן של Nextcloud ושל השרת.",
- "Update to %1$s is available." : "קיים עדכון ל־%1$s.",
- "Update for %1$s to version %2$s is available." : "עדכון של %1$s לגרסה %2$s זמין.",
- "Update for {app} to version %s is available." : "קיים עדכון עבור {app} לגרסה %s.",
- "Update notification" : "התראה על עדכון",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "מציג התראות עדכון ל־Nextcloud ומספק SSO (גישה אחודה) למעדכן.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "הגרסה שפועלת אצלך אינה מתוחזקת יותר. נא לוודא לעדכן לגרסה נתמכת במהירות האפשרית.",
- "Apps missing updates" : "ליישומונים חסרים עדכונים",
- "View in store" : "הצגה בחנות",
- "Apps with available updates" : "יישומים עם עדכונים זמינים",
- "Open updater" : "פתיחת המעדכן",
- "Download now" : "להוריד כעת",
- "What's new?" : "מה חדש?",
- "The update check is not yet finished. Please refresh the page." : "בדיקת העדכונים לא הסתיימה עדיין. נא לעדכן את העמוד.",
- "Your version is up to date." : "הגרסה שבידך מעודכנת.",
- "Update channel:" : "עדכון ערוץ:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "תמיד ניתן לעדכן לגרסה חדשה יותר. אך אי אפשר לשנמך לגרסה יציבה יותר.",
- "Notify members of the following groups about available updates:" : "דיווח למשתמשים של קבוצות אלו על עדכונים זמינים:",
- "The selected update channel does not support updates of the server." : "ערוץ העדכון הנבחר לא תומך בעדכון השרת.",
- "A new version is available: <strong>{newVersionString}</strong>" : "גרסה חדשה זמינה: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "נבדק לאחרונה ב־{lastCheckedDate}",
- "Checking apps for compatible updates" : "היישומונים נבדקים לאיתור עדכונים תואמים",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "נא לוודא שב־config.php שלך ה־<samp>appstoreenabled</samp> לא מוגדר ל‏־false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "לא ניתן להתחבר לחנות היישומונים או שחנות היישומונים לא החזירה שיש עדכונים. ניתן לחפש ידנית עדכונים או לוודא שלשרת שלך יש גישה לאינטרנט ושיש לו איך להתחבר לחנות היישומונים.",
- "View changelog" : "הצגת יומן שינויים",
- "Stable" : "יציב",
- "Beta" : "בטא"
-},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/hr.js b/apps/updatenotification/l10n/hr.js
index ace69c8faaf..305d58f58d1 100644
--- a/apps/updatenotification/l10n/hr.js
+++ b/apps/updatenotification/l10n/hr.js
@@ -1,46 +1,40 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} je dostupna. Saznajte više informacija o ažuriranju.",
"Channel updated" : "Kanal je ažuriran",
+ "Web updater is disabled" : "Web alat za ažuriranje je onemogućen",
"Update notifications" : "Ažuriraj obavijesti",
"The update server could not be reached since %d days to check for new updates." : "Nije moguće doći do poslužitelja za ažuriranje već %d dana radi provjeravanja za nova ažuriranja.",
"Please check the Nextcloud and server log files for errors." : "Provjerite zapise Nextclouda i poslužitelja za moguće pogreške.",
- "Update to %1$s is available." : "Dostupno je ažuriranje na %1$s.",
- "Update for %1$s to version %2$s is available." : "Dostupno je ažuriranje za %1$s na inačicu %2$s.",
"Update for {app} to version %s is available." : "Dostupno je ažuriranje za {app} na inačicu %s.",
"Update notification" : "Ažuriraj obavijest",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Prikazuje obavijesti o ažuriranju za Nextcloud i pruža SSO za alat za ažuriranje.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Dostupna je nova inačica: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Provjera aplikacija za kompatibilne verzije",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Provjerite da vaš config.php nije postavio <samp>appstoreenabled</samp> na vrijednost „netočno”.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Neuspješno povezivanje s trgovinom aplikacijama App Store ili je vraćena obavijest da nema ažuriranja. Ručno potražite ažuriranja ili provjerite ima li vaš poslužitelj pristup internetu i može li se povezati s trgovinom aplikacijama App Store.",
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Samo za poslovnu primjenu. Uvijek obuhvaća najnoviju razinu zakrpe, ali neće se odmah ažurirati na sljedeće veliko izdanje ili verziju. Ažuriranje se izvršava nakon dodatnih ispitivanja i provjera koje provodi Nextcloud GmbH kako bi osigurao primjereno skaliranje u kritičnim primjenama. Ovaj je kanal dostupan samo kupcima i sadrži paket Nextcloud Enterprise.",
+ "Stable" : "Stabilna",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovija stabilna inačica. Primjerena je za redovitu uporabu i uvijek će se ažurirati na najnoviju glavnu inačicu.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Razvojna inačica koja služi samo za ispitivanje novih značajki, a nikako za produkcijska okruženja.",
+ "Update" : "Ažuriraj",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Inačica koju upotrebljavajte više se ne održava. Obavezno ažurirajte na podržanu inačicu što je prije moguće.",
- "Apps missing updates" : "Aplikacijama nedostaju ažuriranja",
+ "Apps missing compatible version" : "Aplikacije koje nemaju kompatibilnu inačicu",
"View in store" : "Pogledajte u trgovini",
- "Apps with available updates" : "Aplikacije s dostupnim ažuriranjima",
+ "Apps with compatible version" : "Aplikacije koje imaju kompatibilnu inačicu",
"Open updater" : "Otvori alat za ažuriranje",
"Download now" : "Preuzmi sada",
"What's new?" : "Što je novog?",
+ "View changelog" : "Prikaži zapis promjena",
"The update check is not yet finished. Please refresh the page." : "Provjera za ažuriranja još nije završena. Osvježite stranicu.",
"Your version is up to date." : "Vaša je inačica ažurirana.",
"A non-default update server is in use to be checked for updates:" : "Koristi se poslužitelj za ažuriranje koji nije zadan:",
- "Update channel:" : "Ažuriraj kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Uvijek možete ažurirati na noviju inačicu. Ali nikad se ne možete vratiti na stabilniju inačicu.",
"Notify members of the following groups about available updates:" : "Obavijestite članove sljedećih grupa o dostupnim ažuriranjima:",
- "Only notification for app updates are available." : "Dostupne su samo obavijesti o ažuriranjima aplikacija.",
+ "Only notifications for app updates are available." : "Dostupne su samo obavijesti o ažuriranjima aplikacija.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Odabrani kanal za ažuriranje čini namjenske obavijesti za pojedini poslužitelj zastarjelim.",
"The selected update channel does not support updates of the server." : "Odabrani kanal za ažuriranje ne podržava ažuriranja poslužitelja.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Dostupna je nova inačica: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Provjereno {lastCheckedDate}",
- "Checking apps for compatible updates" : "Provjera aplikacija za kompatibilna ažuriranja",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Provjerite da vaš config.php nije postavio <samp>appstoreenabled</samp> na vrijednost „netočno”.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Neuspješno povezivanje s trgovinom aplikacijama ili je trgovina aplikacijama vratila da nema ažuriranja. Ručno potražite ažuriranja ili provjerite ima li vaš poslužitelj pristup internetu i može li se povezati s trgovinom aplikacijama.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Sve</strong> aplikacije imaju dostupno ažuriranje za trenutnu inačicu",
- "View changelog" : "Prikaži zapis promjena",
- "Enterprise" : "Enterprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Samo za poslovnu primjenu. Uvijek obuhvaća najnoviju razinu zakrpe, ali neće se odmah ažurirati na sljedeće veliko izdanje ili verziju. Ažuriranje se izvršava nakon dodatnih ispitivanja i provjera koje provodi Nextcloud GmbH kako bi osigurao primjereno skaliranje u kritičnim primjenama. Ovaj je kanal dostupan samo kupcima i sadrži paket Nextcloud Enterprise.",
- "Stable" : "Stabilna",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovija stabilna inačica. Primjerena je za redovitu uporabu i uvijek će se ažurirati na najnoviju glavnu inačicu.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Razvojna inačica koja služi samo za ispitivanje novih značajki, a nikako za produkcijska okruženja.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikacija nema dostupno ažuriranje za trenutnu inačicu","<strong>%n</strong> aplikacije nemaju dostupno ažuriranje za trenutnu inačicu","<strong>%n</strong> aplikacije nemaju dostupno ažuriranje za trenutnu inačicu"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Imajte na umu da se nova izdanja mogu pojaviti ovdje tek nakon nekog dužeg vremena. Nove inačice uvodimo u pravilnim vremenskim razmacima i ponekad preskočimo inačicu ako je problematična."
+ "{version} is available. Get more information on how to update." : "{version} je dostupna. Saznajte više informacija o ažuriranju."
},
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/hr.json b/apps/updatenotification/l10n/hr.json
index b13e5ea96b1..4b12b5a5479 100644
--- a/apps/updatenotification/l10n/hr.json
+++ b/apps/updatenotification/l10n/hr.json
@@ -1,44 +1,38 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} je dostupna. Saznajte više informacija o ažuriranju.",
"Channel updated" : "Kanal je ažuriran",
+ "Web updater is disabled" : "Web alat za ažuriranje je onemogućen",
"Update notifications" : "Ažuriraj obavijesti",
"The update server could not be reached since %d days to check for new updates." : "Nije moguće doći do poslužitelja za ažuriranje već %d dana radi provjeravanja za nova ažuriranja.",
"Please check the Nextcloud and server log files for errors." : "Provjerite zapise Nextclouda i poslužitelja za moguće pogreške.",
- "Update to %1$s is available." : "Dostupno je ažuriranje na %1$s.",
- "Update for %1$s to version %2$s is available." : "Dostupno je ažuriranje za %1$s na inačicu %2$s.",
"Update for {app} to version %s is available." : "Dostupno je ažuriranje za {app} na inačicu %s.",
"Update notification" : "Ažuriraj obavijest",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Prikazuje obavijesti o ažuriranju za Nextcloud i pruža SSO za alat za ažuriranje.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Dostupna je nova inačica: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Provjera aplikacija za kompatibilne verzije",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Provjerite da vaš config.php nije postavio <samp>appstoreenabled</samp> na vrijednost „netočno”.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Neuspješno povezivanje s trgovinom aplikacijama App Store ili je vraćena obavijest da nema ažuriranja. Ručno potražite ažuriranja ili provjerite ima li vaš poslužitelj pristup internetu i može li se povezati s trgovinom aplikacijama App Store.",
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Samo za poslovnu primjenu. Uvijek obuhvaća najnoviju razinu zakrpe, ali neće se odmah ažurirati na sljedeće veliko izdanje ili verziju. Ažuriranje se izvršava nakon dodatnih ispitivanja i provjera koje provodi Nextcloud GmbH kako bi osigurao primjereno skaliranje u kritičnim primjenama. Ovaj je kanal dostupan samo kupcima i sadrži paket Nextcloud Enterprise.",
+ "Stable" : "Stabilna",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovija stabilna inačica. Primjerena je za redovitu uporabu i uvijek će se ažurirati na najnoviju glavnu inačicu.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Razvojna inačica koja služi samo za ispitivanje novih značajki, a nikako za produkcijska okruženja.",
+ "Update" : "Ažuriraj",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Inačica koju upotrebljavajte više se ne održava. Obavezno ažurirajte na podržanu inačicu što je prije moguće.",
- "Apps missing updates" : "Aplikacijama nedostaju ažuriranja",
+ "Apps missing compatible version" : "Aplikacije koje nemaju kompatibilnu inačicu",
"View in store" : "Pogledajte u trgovini",
- "Apps with available updates" : "Aplikacije s dostupnim ažuriranjima",
+ "Apps with compatible version" : "Aplikacije koje imaju kompatibilnu inačicu",
"Open updater" : "Otvori alat za ažuriranje",
"Download now" : "Preuzmi sada",
"What's new?" : "Što je novog?",
+ "View changelog" : "Prikaži zapis promjena",
"The update check is not yet finished. Please refresh the page." : "Provjera za ažuriranja još nije završena. Osvježite stranicu.",
"Your version is up to date." : "Vaša je inačica ažurirana.",
"A non-default update server is in use to be checked for updates:" : "Koristi se poslužitelj za ažuriranje koji nije zadan:",
- "Update channel:" : "Ažuriraj kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Uvijek možete ažurirati na noviju inačicu. Ali nikad se ne možete vratiti na stabilniju inačicu.",
"Notify members of the following groups about available updates:" : "Obavijestite članove sljedećih grupa o dostupnim ažuriranjima:",
- "Only notification for app updates are available." : "Dostupne su samo obavijesti o ažuriranjima aplikacija.",
+ "Only notifications for app updates are available." : "Dostupne su samo obavijesti o ažuriranjima aplikacija.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Odabrani kanal za ažuriranje čini namjenske obavijesti za pojedini poslužitelj zastarjelim.",
"The selected update channel does not support updates of the server." : "Odabrani kanal za ažuriranje ne podržava ažuriranja poslužitelja.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Dostupna je nova inačica: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Provjereno {lastCheckedDate}",
- "Checking apps for compatible updates" : "Provjera aplikacija za kompatibilna ažuriranja",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Provjerite da vaš config.php nije postavio <samp>appstoreenabled</samp> na vrijednost „netočno”.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Neuspješno povezivanje s trgovinom aplikacijama ili je trgovina aplikacijama vratila da nema ažuriranja. Ručno potražite ažuriranja ili provjerite ima li vaš poslužitelj pristup internetu i može li se povezati s trgovinom aplikacijama.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Sve</strong> aplikacije imaju dostupno ažuriranje za trenutnu inačicu",
- "View changelog" : "Prikaži zapis promjena",
- "Enterprise" : "Enterprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Samo za poslovnu primjenu. Uvijek obuhvaća najnoviju razinu zakrpe, ali neće se odmah ažurirati na sljedeće veliko izdanje ili verziju. Ažuriranje se izvršava nakon dodatnih ispitivanja i provjera koje provodi Nextcloud GmbH kako bi osigurao primjereno skaliranje u kritičnim primjenama. Ovaj je kanal dostupan samo kupcima i sadrži paket Nextcloud Enterprise.",
- "Stable" : "Stabilna",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovija stabilna inačica. Primjerena je za redovitu uporabu i uvijek će se ažurirati na najnoviju glavnu inačicu.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Razvojna inačica koja služi samo za ispitivanje novih značajki, a nikako za produkcijska okruženja.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikacija nema dostupno ažuriranje za trenutnu inačicu","<strong>%n</strong> aplikacije nemaju dostupno ažuriranje za trenutnu inačicu","<strong>%n</strong> aplikacije nemaju dostupno ažuriranje za trenutnu inačicu"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Imajte na umu da se nova izdanja mogu pojaviti ovdje tek nakon nekog dužeg vremena. Nove inačice uvodimo u pravilnim vremenskim razmacima i ponekad preskočimo inačicu ako je problematična."
+ "{version} is available. Get more information on how to update." : "{version} je dostupna. Saznajte više informacija o ažuriranju."
},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/hu.js b/apps/updatenotification/l10n/hu.js
index 2af50e474f6..8f085de047c 100644
--- a/apps/updatenotification/l10n/hu.js
+++ b/apps/updatenotification/l10n/hu.js
@@ -1,41 +1,51 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} rendelkezésre áll. További információ a frissítéshez.",
"Channel updated" : "Csatorna frissítve",
- "Update notifications" : "Frissítési értesítés",
- "The update server could not be reached since %d days to check for new updates." : "A frissítési szerver %d napja nem elérhető a frissítések kereséséhez.",
- "Please check the Nextcloud and server log files for errors." : "Kérlek nézd meg a Nextcloud és a szervernaplókat a hibák miatt.",
- "Update to %1$s is available." : "%1$s frissítés elérhető.",
- "Update for %1$s to version %2$s is available." : "%1$s frissíthető %2$s verzióra.",
- "Update for {app} to version %s is available." : "{app} %s verzió frissítése elérhető",
+ "Web updater is disabled" : "Webes frissítő letiltva",
+ "See what's new" : "Újdonságok megtekintése",
+ "Update notifications" : "Frissítési értesítések",
+ "The update server could not be reached since %d days to check for new updates." : "A frissítési kiszolgáló %d napja nem érhető el a frissítések kereséséhez.",
+ "Please check the Nextcloud and server log files for errors." : "Ellenőrizze, hogy vannak-e hibák a Nextcloud és a rendszer naplófájljaiban.",
+ "Update to {serverAndVersion} is available." : "A {serverAndVersion} frissítése elérhető.",
+ "Update for {app} to version %s is available." : "A {app} frissíthető erre a verzióra: %s.",
"Update notification" : "Frissítési értesítés",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Megjeleníti a Nextcloud frissítéseiről szóló értesítéseket és SSO hozzáférést nyújt a frissítésekhez.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Az általad futtatott verziót már nem karban tartott. Kérlek frissítsd egy támogatott verzióra amint lehetséges.",
- "Apps missing updates" : "Alkalmazások frissítés nélkül",
- "View in store" : "Nézze meg a boltban",
- "Apps with available updates" : "Alkalmazások frissítéssel",
+ "What's new in {app} {version}" : "Újdonságok: {app}{version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Új verzió érhető el: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Alkalmazások ellenőrzése kompatibilis verziók után",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ellenőrizze, hogy a config.php fájl nem állítja-e be <samp>appstoreenabled</samp> értékét false-ra.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nem lehet csatlakozni az alkalmazástárhoz, vagy az egyáltalán nem adott vissza frissítéseket. Keressen kézzel frissítéseket, vagy győződjön meg arról, hogy a kiszolgálója hozzáfér-e az internethez és eléri-e az alkalmazástárat.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Minden</strong> alkalmazás rendelkezik ezzel a Nextcloud verzióval kompatibilis verzióval.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> alkalmazásnak nincs elérhető kompatibilis verziója ehhez a Nextcloud verzióhoz.","<strong>%n</strong> alkalmazásnak nincs elérhető kompatibilis verziója ehhez a Nextcloud verzióhoz."],
+ "Enterprise" : "Vállalati",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Vállalati felhasználásra. Mindig a legfrissebb foltozási szint, de nem fog azonnal a legújabb főverzióra frissíteni. A frissítés csak azután fog megtörténni, amikor a Nextcloud GmbH elvégezte a szükséges biztonsági megerősítéseket, illetve a nagy méretű és kritikus fontosságú rendszereket érintő teszteket. Ez a csatorna csak ügyfelek számára érhető el, és a Nextcloud Vállalati csomagját biztosítja.",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A legfrissebb stabil verzió. Mindennapos használatra ajánlott, mindig a legújabb főverzióra frissít.",
+ "Beta" : "Béta",
+ "A pre-release version only for testing new features, not for production environments." : "Az előzetes verzió kizárólag az új funkciók tesztelésére szolgál, nem éles környezetekbe való.",
+ "Update" : "Frissítés",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "A futtatott verziót már nem tartják karban. Frissítsen támogatott verzióra, amint lehetséges.",
+ "Apps missing compatible version" : "Az alkalmazásoknak nincs kompatibilis verziója",
+ "View in store" : "Megtekintés a tárban",
+ "Apps with compatible version" : "Alkalmazások kompatibilis verzióval",
"Open updater" : "Frissítő megnyitása",
"Download now" : "Letöltés most",
- "What's new?" : "Újdonságok?",
- "The update check is not yet finished. Please refresh the page." : "A frissítéskeresés még nem ért véget. Kérjük frissítsd az oldalt.",
- "Your version is up to date." : "Verzió frissítve.",
- "A non-default update server is in use to be checked for updates:" : "Egy nem alapértelmezett szervert használunk a frissítések kereséséhez:",
- "Update channel:" : "Frissítési csatorna:",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "A webes frissítő le van tiltva. Használja a parancssoros frissítőt, vagy a telepítési módnak megfelelő frissítési mechanizmust (például Docker pull).",
+ "What's new?" : "Újdonságok",
+ "View changelog" : "Változásnapló megjelenítése",
+ "The update check is not yet finished. Please refresh the page." : "A frissítéskeresés még nem ért véget. Frissítse az oldalt.",
+ "Your version is up to date." : "A verziója naprakész.",
+ "A non-default update server is in use to be checked for updates:" : "Egy nem alapértelmezett frissítési kiszolgáló van használatban a frissítések kereséséhez:",
+ "Update channel" : "Frissítési csatorna",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "A frissítési csatorna megváltoztatása az alkalmazáskezelő oldalra is hatással van. Például a béta csatornára történő váltáskor a béta frissítések lesznek elérhetők az alkalmazásokhoz is.",
+ "Current update channel:" : "Jelenlegi frissítési csatorna:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Bármikor frissíthet egy újabb verzióra, viszont sosem léphet vissza egy stabilabb verzióra.",
"Notify members of the following groups about available updates:" : "A következő csoport tagjainak értesítése az elérhető frissítésekről:",
- "Only notification for app updates are available." : "Csak az értesítő alkalmazás frissítései érhetők el.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "A kiválasztott frissítési csatorna dedikált értesítéseket jelenít meg a szerver elavulásakor.",
- "The selected update channel does not support updates of the server." : "A kiválasztott frissítése csatorna nem támogatja a szerver frissítéseit.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Új verzió érhető el: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Ellenőrizve ekkor: {lastCheckedDate}",
- "Checking apps for compatible updates" : "Alkalmazások ellenőrzése kompatibilis frissítéséhez",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ellenőrizd, hogy a config.php-dben nincs-e beállítva a <samp>appstoreenabled</samp> false-ra.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nem lehet csatlakozni az alkalmazásbolthoz, vagy az nem adott vissza frissítéseket egyáltalán. Keress frissítéseket kézzel, vagy győződj meg arról, hogy a szervered hozzáfér az internethez és eléri az alkalmazásboltot.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Minden</strong> alkalmazás felfrissítve a legújabb verzióra.",
- "View changelog" : "Változásnapló megjelenítése",
- "Beta" : "Béta",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> alkalmazásnak nincs elérhető frissítése ehhez a verzióhoz","<strong>%n</strong> alkalmazásnak nincs elérhető frissítése ehhez a verzióhoz"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Vedd figyelembe, hogy egy firssítés megjelenése után eltarthat egy darabig míg itt megjelenik. Fokozatosan juttatjuk el a frissítéseket a felhaszálóinkhoz és néha kihagyunk egy-egy verziót, ha problémák merülnek fel."
+ "No groups" : "Nincsenek csoportok",
+ "Only notifications for app updates are available." : "Csak az alkalmazás frissítések értesítései érhetők el.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "A kiválasztott frissítési csatorna okafogyottá teszi a kiszolgáló dedikált értesítéseit.",
+ "The selected update channel does not support updates of the server." : "A kiválasztott frissítési csatorna nem támogatja a kiszolgáló frissítéseit.",
+ "What's new in {app} version {version}" : "Újdonságok a(z) {app} {version} verziójában",
+ "{version} is available. Get more information on how to update." : "Új verzió érhető el: {version}. További információk a frissítéshez."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/hu.json b/apps/updatenotification/l10n/hu.json
index 6d26d9f191f..1b955fc9f37 100644
--- a/apps/updatenotification/l10n/hu.json
+++ b/apps/updatenotification/l10n/hu.json
@@ -1,39 +1,49 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} rendelkezésre áll. További információ a frissítéshez.",
"Channel updated" : "Csatorna frissítve",
- "Update notifications" : "Frissítési értesítés",
- "The update server could not be reached since %d days to check for new updates." : "A frissítési szerver %d napja nem elérhető a frissítések kereséséhez.",
- "Please check the Nextcloud and server log files for errors." : "Kérlek nézd meg a Nextcloud és a szervernaplókat a hibák miatt.",
- "Update to %1$s is available." : "%1$s frissítés elérhető.",
- "Update for %1$s to version %2$s is available." : "%1$s frissíthető %2$s verzióra.",
- "Update for {app} to version %s is available." : "{app} %s verzió frissítése elérhető",
+ "Web updater is disabled" : "Webes frissítő letiltva",
+ "See what's new" : "Újdonságok megtekintése",
+ "Update notifications" : "Frissítési értesítések",
+ "The update server could not be reached since %d days to check for new updates." : "A frissítési kiszolgáló %d napja nem érhető el a frissítések kereséséhez.",
+ "Please check the Nextcloud and server log files for errors." : "Ellenőrizze, hogy vannak-e hibák a Nextcloud és a rendszer naplófájljaiban.",
+ "Update to {serverAndVersion} is available." : "A {serverAndVersion} frissítése elérhető.",
+ "Update for {app} to version %s is available." : "A {app} frissíthető erre a verzióra: %s.",
"Update notification" : "Frissítési értesítés",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Megjeleníti a Nextcloud frissítéseiről szóló értesítéseket és SSO hozzáférést nyújt a frissítésekhez.",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Az általad futtatott verziót már nem karban tartott. Kérlek frissítsd egy támogatott verzióra amint lehetséges.",
- "Apps missing updates" : "Alkalmazások frissítés nélkül",
- "View in store" : "Nézze meg a boltban",
- "Apps with available updates" : "Alkalmazások frissítéssel",
+ "What's new in {app} {version}" : "Újdonságok: {app}{version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Új verzió érhető el: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Alkalmazások ellenőrzése kompatibilis verziók után",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ellenőrizze, hogy a config.php fájl nem állítja-e be <samp>appstoreenabled</samp> értékét false-ra.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nem lehet csatlakozni az alkalmazástárhoz, vagy az egyáltalán nem adott vissza frissítéseket. Keressen kézzel frissítéseket, vagy győződjön meg arról, hogy a kiszolgálója hozzáfér-e az internethez és eléri-e az alkalmazástárat.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Minden</strong> alkalmazás rendelkezik ezzel a Nextcloud verzióval kompatibilis verzióval.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> alkalmazásnak nincs elérhető kompatibilis verziója ehhez a Nextcloud verzióhoz.","<strong>%n</strong> alkalmazásnak nincs elérhető kompatibilis verziója ehhez a Nextcloud verzióhoz."],
+ "Enterprise" : "Vállalati",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Vállalati felhasználásra. Mindig a legfrissebb foltozási szint, de nem fog azonnal a legújabb főverzióra frissíteni. A frissítés csak azután fog megtörténni, amikor a Nextcloud GmbH elvégezte a szükséges biztonsági megerősítéseket, illetve a nagy méretű és kritikus fontosságú rendszereket érintő teszteket. Ez a csatorna csak ügyfelek számára érhető el, és a Nextcloud Vállalati csomagját biztosítja.",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A legfrissebb stabil verzió. Mindennapos használatra ajánlott, mindig a legújabb főverzióra frissít.",
+ "Beta" : "Béta",
+ "A pre-release version only for testing new features, not for production environments." : "Az előzetes verzió kizárólag az új funkciók tesztelésére szolgál, nem éles környezetekbe való.",
+ "Update" : "Frissítés",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "A futtatott verziót már nem tartják karban. Frissítsen támogatott verzióra, amint lehetséges.",
+ "Apps missing compatible version" : "Az alkalmazásoknak nincs kompatibilis verziója",
+ "View in store" : "Megtekintés a tárban",
+ "Apps with compatible version" : "Alkalmazások kompatibilis verzióval",
"Open updater" : "Frissítő megnyitása",
"Download now" : "Letöltés most",
- "What's new?" : "Újdonságok?",
- "The update check is not yet finished. Please refresh the page." : "A frissítéskeresés még nem ért véget. Kérjük frissítsd az oldalt.",
- "Your version is up to date." : "Verzió frissítve.",
- "A non-default update server is in use to be checked for updates:" : "Egy nem alapértelmezett szervert használunk a frissítések kereséséhez:",
- "Update channel:" : "Frissítési csatorna:",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "A webes frissítő le van tiltva. Használja a parancssoros frissítőt, vagy a telepítési módnak megfelelő frissítési mechanizmust (például Docker pull).",
+ "What's new?" : "Újdonságok",
+ "View changelog" : "Változásnapló megjelenítése",
+ "The update check is not yet finished. Please refresh the page." : "A frissítéskeresés még nem ért véget. Frissítse az oldalt.",
+ "Your version is up to date." : "A verziója naprakész.",
+ "A non-default update server is in use to be checked for updates:" : "Egy nem alapértelmezett frissítési kiszolgáló van használatban a frissítések kereséséhez:",
+ "Update channel" : "Frissítési csatorna",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "A frissítési csatorna megváltoztatása az alkalmazáskezelő oldalra is hatással van. Például a béta csatornára történő váltáskor a béta frissítések lesznek elérhetők az alkalmazásokhoz is.",
+ "Current update channel:" : "Jelenlegi frissítési csatorna:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Bármikor frissíthet egy újabb verzióra, viszont sosem léphet vissza egy stabilabb verzióra.",
"Notify members of the following groups about available updates:" : "A következő csoport tagjainak értesítése az elérhető frissítésekről:",
- "Only notification for app updates are available." : "Csak az értesítő alkalmazás frissítései érhetők el.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "A kiválasztott frissítési csatorna dedikált értesítéseket jelenít meg a szerver elavulásakor.",
- "The selected update channel does not support updates of the server." : "A kiválasztott frissítése csatorna nem támogatja a szerver frissítéseit.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Új verzió érhető el: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Ellenőrizve ekkor: {lastCheckedDate}",
- "Checking apps for compatible updates" : "Alkalmazások ellenőrzése kompatibilis frissítéséhez",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Ellenőrizd, hogy a config.php-dben nincs-e beállítva a <samp>appstoreenabled</samp> false-ra.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nem lehet csatlakozni az alkalmazásbolthoz, vagy az nem adott vissza frissítéseket egyáltalán. Keress frissítéseket kézzel, vagy győződj meg arról, hogy a szervered hozzáfér az internethez és eléri az alkalmazásboltot.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Minden</strong> alkalmazás felfrissítve a legújabb verzióra.",
- "View changelog" : "Változásnapló megjelenítése",
- "Beta" : "Béta",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> alkalmazásnak nincs elérhető frissítése ehhez a verzióhoz","<strong>%n</strong> alkalmazásnak nincs elérhető frissítése ehhez a verzióhoz"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Vedd figyelembe, hogy egy firssítés megjelenése után eltarthat egy darabig míg itt megjelenik. Fokozatosan juttatjuk el a frissítéseket a felhaszálóinkhoz és néha kihagyunk egy-egy verziót, ha problémák merülnek fel."
+ "No groups" : "Nincsenek csoportok",
+ "Only notifications for app updates are available." : "Csak az alkalmazás frissítések értesítései érhetők el.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "A kiválasztott frissítési csatorna okafogyottá teszi a kiszolgáló dedikált értesítéseit.",
+ "The selected update channel does not support updates of the server." : "A kiválasztott frissítési csatorna nem támogatja a kiszolgáló frissítéseit.",
+ "What's new in {app} version {version}" : "Újdonságok a(z) {app} {version} verziójában",
+ "{version} is available. Get more information on how to update." : "Új verzió érhető el: {version}. További információk a frissítéshez."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/hu_HU.js b/apps/updatenotification/l10n/hu_HU.js
deleted file mode 100644
index 096b0466cc5..00000000000
--- a/apps/updatenotification/l10n/hu_HU.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Frissítési értesítés",
- "Could not start updater, please try the manual update" : "Nem sikerült elindítani a frissítőt, kérlek próbáld a manuális frissítést",
- "{version} is available. Get more information on how to update." : "{version} rendelkezésre áll. További információ a frissítéshez.",
- "Channel updated" : "Csatorna frissítve",
- "Update to %1$s is available." : "%1$s frissítés elérhető.",
- "Update for %1$s to version %2$s is available." : "%1$s frissíthető %2$s verzióra.",
- "Update for {app} to version %s is available." : "{app} %s verzió frissítése elérhető",
- "A new version is available: %s" : "Új verzió érhető el: %s",
- "Open updater" : "Frissítő megnyitása",
- "Download now" : "Letöltés most",
- "Your version is up to date." : "Verzió frissítve.",
- "Checked on %s" : "Ellenőrizve: %s",
- "Update channel:" : "Frissítési csatorna:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Mindig frissíthetsz az újabb verzióra vagy kísérleti csatornára, de visszafelé sosem frissíthetsz egy jóval stabilabb verzióra.",
- "Notify members of the following groups about available updates:" : "A következő csoport tagjainak értesítése az elérhető frissítésekről:",
- "Only notification for app updates are available." : "Csak az értesítő alkalmazás frissítései érhetők el.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "A kiválasztott frissítési csatorna dedikált értesítéseket jelenít meg a szerver elavulásakor.",
- "The selected update channel does not support updates of the server." : "A kiválasztott frissítése csatorna nem támogatja a szerver frissítéseit.",
- "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "PHP %s verziót futtatod. A Nextcloud 11-re vagy újabbra frissítéshez legalább PHP 5.6-ra van szükség. Miután frissítetted a PHP-t értesítéseket fogsz kapni az újabb verziók frissítési lehetőségeiről."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/hu_HU.json b/apps/updatenotification/l10n/hu_HU.json
deleted file mode 100644
index 3e2f2a16427..00000000000
--- a/apps/updatenotification/l10n/hu_HU.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Update notifications" : "Frissítési értesítés",
- "Could not start updater, please try the manual update" : "Nem sikerült elindítani a frissítőt, kérlek próbáld a manuális frissítést",
- "{version} is available. Get more information on how to update." : "{version} rendelkezésre áll. További információ a frissítéshez.",
- "Channel updated" : "Csatorna frissítve",
- "Update to %1$s is available." : "%1$s frissítés elérhető.",
- "Update for %1$s to version %2$s is available." : "%1$s frissíthető %2$s verzióra.",
- "Update for {app} to version %s is available." : "{app} %s verzió frissítése elérhető",
- "A new version is available: %s" : "Új verzió érhető el: %s",
- "Open updater" : "Frissítő megnyitása",
- "Download now" : "Letöltés most",
- "Your version is up to date." : "Verzió frissítve.",
- "Checked on %s" : "Ellenőrizve: %s",
- "Update channel:" : "Frissítési csatorna:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Mindig frissíthetsz az újabb verzióra vagy kísérleti csatornára, de visszafelé sosem frissíthetsz egy jóval stabilabb verzióra.",
- "Notify members of the following groups about available updates:" : "A következő csoport tagjainak értesítése az elérhető frissítésekről:",
- "Only notification for app updates are available." : "Csak az értesítő alkalmazás frissítései érhetők el.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "A kiválasztott frissítési csatorna dedikált értesítéseket jelenít meg a szerver elavulásakor.",
- "The selected update channel does not support updates of the server." : "A kiválasztott frissítése csatorna nem támogatja a szerver frissítéseit.",
- "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "PHP %s verziót futtatod. A Nextcloud 11-re vagy újabbra frissítéshez legalább PHP 5.6-ra van szükség. Miután frissítetted a PHP-t értesítéseket fogsz kapni az újabb verziók frissítési lehetőségeiről."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ia.js b/apps/updatenotification/l10n/ia.js
deleted file mode 100644
index b6849f18f23..00000000000
--- a/apps/updatenotification/l10n/ia.js
+++ /dev/null
@@ -1,23 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} es disponibile. Obtene plus informationes super como actualisar.",
- "Open updater" : "Aperir actualisator",
- "Your version is up to date." : "Tu version es actualisate.",
- "Update channel:" : "Canal de actualisation:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Tu sempre pote actualisar a un version plus nove o a un canal experimental. Ma tu non potera jammais retrogradar a un canal plus stabile.",
- "Notify members of the following groups about available updates:" : "Notifica membros del gruppos sequente super actualisationes disponibile:",
- "Only notification for app updates are available." : "Notification es disponibile solmente pro actualisationes de applicationes.",
- "The selected update channel does not support updates of the server." : "Le canal de actualisation seligite non supporta actualisationes del servitor.",
- "Could not start updater, please try the manual update" : "Impossibile initiar le actualisator, per favor tenta le actualisation manual",
- "Update notifications" : "Actualisar notificationes",
- "Channel updated" : "Canal actualisate",
- "Update to %1$s is available." : "Un actualisation a %1$s es disponibile.",
- "Update for %1$s to version %2$s is available." : "Un actualisation de %1$s al version %2$s es disponibile.",
- "Update for {app} to version %s is available." : "Un actualisation del {app} al version %s es disponibile.",
- "A new version is available: %s" : "Un nove version es disponibile: %s",
- "Download now" : "Discargar ora",
- "Checked on %s" : "Verificate in %s",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Le canal de actualisation selectionate face le notificationes dedicate al servitor esser obsolete."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/ia.json b/apps/updatenotification/l10n/ia.json
deleted file mode 100644
index 22d0d52760d..00000000000
--- a/apps/updatenotification/l10n/ia.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} es disponibile. Obtene plus informationes super como actualisar.",
- "Open updater" : "Aperir actualisator",
- "Your version is up to date." : "Tu version es actualisate.",
- "Update channel:" : "Canal de actualisation:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Tu sempre pote actualisar a un version plus nove o a un canal experimental. Ma tu non potera jammais retrogradar a un canal plus stabile.",
- "Notify members of the following groups about available updates:" : "Notifica membros del gruppos sequente super actualisationes disponibile:",
- "Only notification for app updates are available." : "Notification es disponibile solmente pro actualisationes de applicationes.",
- "The selected update channel does not support updates of the server." : "Le canal de actualisation seligite non supporta actualisationes del servitor.",
- "Could not start updater, please try the manual update" : "Impossibile initiar le actualisator, per favor tenta le actualisation manual",
- "Update notifications" : "Actualisar notificationes",
- "Channel updated" : "Canal actualisate",
- "Update to %1$s is available." : "Un actualisation a %1$s es disponibile.",
- "Update for %1$s to version %2$s is available." : "Un actualisation de %1$s al version %2$s es disponibile.",
- "Update for {app} to version %s is available." : "Un actualisation del {app} al version %s es disponibile.",
- "A new version is available: %s" : "Un nove version es disponibile: %s",
- "Download now" : "Discargar ora",
- "Checked on %s" : "Verificate in %s",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Le canal de actualisation selectionate face le notificationes dedicate al servitor esser obsolete."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/id.js b/apps/updatenotification/l10n/id.js
deleted file mode 100644
index 3eae35382b8..00000000000
--- a/apps/updatenotification/l10n/id.js
+++ /dev/null
@@ -1,23 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} tersedia. Dapatkan informasi lebih lanjut cara memperbaruinya.",
- "Open updater" : "Buka updater",
- "Your version is up to date." : "Versi Anda saat ini adalah yang terbaru.",
- "Update channel:" : "Saluran update:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Anda dapat memperbarui ke versi yang lebih baru / saluran percobaan. Namun Anda tidak dapat menurunkan ke saluran stabil.",
- "Notify members of the following groups about available updates:" : "Beritahu anggota grup tentang pembaruan yang tersedia:",
- "Only notification for app updates are available." : "Hanya pemberitahuan untuk pembaruan aplikasi tersedia.",
- "The selected update channel does not support updates of the server." : "Kanal pembaruan yang terpilih tidak mendukung pembaruan server.",
- "Could not start updater, please try the manual update" : "Tidak dapat menjalankan updater, harap coba perbarui manual",
- "Update notifications" : "Perbarui pemberitahuan",
- "Channel updated" : "Kanal diperbarui",
- "Update to %1$s is available." : "Pembaruan untuk %1$s tersedia.",
- "Update for %1$s to version %2$s is available." : "Pembaruan untuk %1$s ke versi %2$s tersedia.",
- "Update for {app} to version %s is available." : "Pembaruan untuk {app} ke versi %s tersedia.",
- "A new version is available: %s" : "Versi baru tersedia: %s",
- "Download now" : "Unduh sekarang",
- "Checked on %s" : "Dicek pada %s",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Kanal pembaruan yang terpilih membuat pemberitahuan terdedikasi untuk server usang."
-},
-"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/id.json b/apps/updatenotification/l10n/id.json
deleted file mode 100644
index 60ab84f3016..00000000000
--- a/apps/updatenotification/l10n/id.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} tersedia. Dapatkan informasi lebih lanjut cara memperbaruinya.",
- "Open updater" : "Buka updater",
- "Your version is up to date." : "Versi Anda saat ini adalah yang terbaru.",
- "Update channel:" : "Saluran update:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Anda dapat memperbarui ke versi yang lebih baru / saluran percobaan. Namun Anda tidak dapat menurunkan ke saluran stabil.",
- "Notify members of the following groups about available updates:" : "Beritahu anggota grup tentang pembaruan yang tersedia:",
- "Only notification for app updates are available." : "Hanya pemberitahuan untuk pembaruan aplikasi tersedia.",
- "The selected update channel does not support updates of the server." : "Kanal pembaruan yang terpilih tidak mendukung pembaruan server.",
- "Could not start updater, please try the manual update" : "Tidak dapat menjalankan updater, harap coba perbarui manual",
- "Update notifications" : "Perbarui pemberitahuan",
- "Channel updated" : "Kanal diperbarui",
- "Update to %1$s is available." : "Pembaruan untuk %1$s tersedia.",
- "Update for %1$s to version %2$s is available." : "Pembaruan untuk %1$s ke versi %2$s tersedia.",
- "Update for {app} to version %s is available." : "Pembaruan untuk {app} ke versi %s tersedia.",
- "A new version is available: %s" : "Versi baru tersedia: %s",
- "Download now" : "Unduh sekarang",
- "Checked on %s" : "Dicek pada %s",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Kanal pembaruan yang terpilih membuat pemberitahuan terdedikasi untuk server usang."
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/is.js b/apps/updatenotification/l10n/is.js
index 02d2366d079..b163df82bc5 100644
--- a/apps/updatenotification/l10n/is.js
+++ b/apps/updatenotification/l10n/is.js
@@ -1,45 +1,58 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} er í boði. Fáðu frekari upplýsingar um hvernig á að uppfæra.",
"Channel updated" : "Rás uppfærð",
+ "Web updater is disabled" : "Vefuppfærsla er óvirk",
+ "App updated" : "Forrit uppfært",
+ "See what's new" : "Sjáðu hvað er nýtt",
+ "{app} updated to version {version}" : "{app} uppfært í útgáfu {version}",
"Update notifications" : "Tilkynningar um uppfærslu",
"The update server could not be reached since %d days to check for new updates." : "Ekki hefur verið hægt að nálgast uppfærsluþjóninn í %d daga til að athuga með nýjar uppfærslur.",
"Please check the Nextcloud and server log files for errors." : "Skoðaðu hvort einhver villuboð séu í annálaskrám Nextcloud þjónsins.",
- "Update to %1$s is available." : "Uppfærsla fyrir %1$s er tiltæk.",
- "Update for %1$s to version %2$s is available." : "Uppfærsla %1$s í útgáfu %2$s er tiltæk.",
+ "Update to {serverAndVersion} is available." : "Uppfærsla í {serverAndVersion} er tiltæk.",
"Update for {app} to version %s is available." : "Uppfærsla fyrir {app} í útgáfu %s er tiltæk.",
"Update notification" : "Tilkynning um uppfærslu",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Birtir tilkynningar um uppfærslur fyrir Nextcloud og sér um SSO-innskráningu fyrir uppfærslustýringuna.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Birtir tilkynningar um uppfærslur fyrir Nextcloud, uppfærslur á forritum og sér um SSO-innskráningu fyrir uppfærslustýringuna.",
+ "Give feedback" : "Gefðu umsögn",
+ "Get started" : "Hefjumst handa",
+ "No changelog available" : "Engin breytingaskrá tiltæk",
+ "What's new in {app} {version}" : "Það sem er nýtt í {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Ný útgáfa er tiltæk: <strong>{newVersionString}</strong>",
+ "Checked on {lastCheckedDate} - Open changelog" : "Athugað þann {lastCheckedDate} - Opna breytingaskrá",
+ "Checking apps for compatible versions" : "Athuga forrit vegna samhæfðra uppfærslna",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Gakktu úr skugga um að í config.php sé <samp>appstoreenabled</samp> ekki sett sem ósatt/false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Gat ekki tengst við forritabúðina eða að í henni eru engar uppfærslur. Leitaðu handvirkt að uppfærslum, eða gakktu úr skugga um að þjónninn þinn sé með aðgang að internetinu og geti tengst forritabúðinni.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Öll</strong> forrit eru með tiltækar uppfærslur fyrir þessa útgáfu Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> forrit er með tiltæka uppfærslu fyrir þessa útgáfu Nextcloud.","<strong>%n</strong> forrit eru ekki með neina tiltæka uppfærslu fyrir þessa útgáfu Nextcloud."],
+ "Enterprise" : "Fyrirtæki",
+ "Stable" : "Stöðug",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Nýjasta stöðuga útgáfan. Hún hentar fyrir alla venjulega notkun og er alltaf uppfærð í nýjustu aðalútgáfu.",
+ "Beta" : "BETA-prófunarútgáfa",
+ "A pre-release version only for testing new features, not for production environments." : "For-útgáfa sem einungis er hugsuð til að prófa nýja eiginleika, og er alls ekki ætluð fyrir alvöru vinnslu.",
+ "Update" : "Uppfæra",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Útgáfunni sem þú ert að keyra er ekki legur viðhaldið. Uppfærðu í studda útgáfu við fyrsta tækifæri.",
- "Apps missing updates" : "Forrit sem vantar uppfærslur",
+ "Apps missing compatible version" : "Forrit sem vantar samhæfða útgáfu",
"View in store" : "Skoða í hugbúnaðarsafni",
- "Apps with available updates" : "Forrit með tiltækar uppfærslur",
+ "Apps with compatible version" : "Forrit með samhæfða útgáfu",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Athugaðu að ekki er mælt með því að nota vefuppfærsluna á fleiri en 100 aðganga! Endilega notaðu uppfærslu af skipanalínu í staðinn!",
"Open updater" : "Opna uppfærslustýringu",
"Download now" : "Sækja núna",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Vefuppfærslukerfi er óvirkt. Notaðu uppfærslukerfið á skipanalínu eða viðeigandi uppfærsluaðferð fyrir þá gerð uppsetningar sem þú ert með (t.d. Docker pull).",
"What's new?" : "Hvað er nýtt á döfinni?",
+ "View changelog" : "Skoða breytingaannál",
"The update check is not yet finished. Please refresh the page." : "Athugun á uppfærslum er ekki ennþá lokið. Endurlestu síðuna.",
"Your version is up to date." : "Útgáfan þín er af nýjustu gerð.",
"A non-default update server is in use to be checked for updates:" : "Uppfærsluþjónn sem ekki er sjálfgefinn er núna í notkun til að athuga með uppfærslur:",
- "Update channel:" : "Uppfærslurás:",
+ "Update channel" : "Uppfærslurás",
+ "Current update channel:" : "Núverandi uppfærslurás:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Þú getur alltaf uppfært í nýrri útgáfu. En þú getur aldrei niðurfært í stöðugri útgáfu.",
"Notify members of the following groups about available updates:" : "Tilkynna meðlimum eftirfarandi hópa um tiltækar uppfærslur:",
- "Only notification for app updates are available." : "Eingöngu eru eru tiltækar tilkynningar fyrir uppfærslur forrita.",
+ "No groups" : "Engir hópar",
+ "Only notifications for app updates are available." : "Eingöngu eru eru tiltækar tilkynningar fyrir uppfærslur forrita.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Valda uppfærslurásin gerir úreltar sértækar tilkynningar fyrir vefþjóninn.",
"The selected update channel does not support updates of the server." : "Valda uppfærslurásin styður ekki uppfærslur fyrir vefþjóninn.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Ný útgáfa er tiltæk: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Athugað þann {lastCheckedDate}",
- "Checking apps for compatible updates" : "Athuga forrit vegna hugsanlegra uppfærslna",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Gakktu úr skugga um að í config.php sé <samp>appstoreenabled</samp> ekki sett sem ósatt/false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Gat ekki tengst við forritabúðina eða að í henni eru engar uppfærslur. Leitaðu handvirkt að uppfærslum, eða gakktu úr skugga um að þjónninn þinn sé með aðgang að internetinu og geti tengst forritabúðinni.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Öll</strong> forrit eru með uppfærslu tiltæka fyrir þessa útgáfu",
- "View changelog" : "Skoða breytingaannál",
- "Enterprise" : "Fyrirtæki",
- "Stable" : "Stöðug",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Nýjasta stöðuga útgáfan. Hún hentar fyrir alla venjulega notkun og er alltaf uppfærð í nýjustu aðalútgáfu.",
- "Beta" : "BETA-prófunarútgáfa",
- "A pre-release version only for testing new features, not for production environments." : "For-útgáfa sem einungis er hugsuð til að prófa nýja eiginleika, og er alls ekki ætluð fyrir alvöru vinnslu.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> forrit eru með uppfærslu tiltæka fyrir þessa útgáfu","<strong>%n</strong> forrit eru með uppfærslu tiltæka fyrir þessa útgáfu"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Athugaðu að það getur tekið nokkurn tíma áður en nýjar útgáfur birtast hér. Við dreifum útgáfum yfir tíma auk þess sem stundum er útgáfum sleppt ef í þeim finnast hnökrar."
+ "Changelog for app {app}" : "Breytingaskrá fyrir forritið {app}",
+ "What's new in {app} version {version}" : "Það sem er nýtt í {app} útgáfu {version}",
+ "{version} is available. Get more information on how to update." : "{version} er í boði. Fáðu frekari upplýsingar um hvernig á að uppfæra."
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/updatenotification/l10n/is.json b/apps/updatenotification/l10n/is.json
index 8d079e6bd1d..5f1bdf60458 100644
--- a/apps/updatenotification/l10n/is.json
+++ b/apps/updatenotification/l10n/is.json
@@ -1,43 +1,56 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} er í boði. Fáðu frekari upplýsingar um hvernig á að uppfæra.",
"Channel updated" : "Rás uppfærð",
+ "Web updater is disabled" : "Vefuppfærsla er óvirk",
+ "App updated" : "Forrit uppfært",
+ "See what's new" : "Sjáðu hvað er nýtt",
+ "{app} updated to version {version}" : "{app} uppfært í útgáfu {version}",
"Update notifications" : "Tilkynningar um uppfærslu",
"The update server could not be reached since %d days to check for new updates." : "Ekki hefur verið hægt að nálgast uppfærsluþjóninn í %d daga til að athuga með nýjar uppfærslur.",
"Please check the Nextcloud and server log files for errors." : "Skoðaðu hvort einhver villuboð séu í annálaskrám Nextcloud þjónsins.",
- "Update to %1$s is available." : "Uppfærsla fyrir %1$s er tiltæk.",
- "Update for %1$s to version %2$s is available." : "Uppfærsla %1$s í útgáfu %2$s er tiltæk.",
+ "Update to {serverAndVersion} is available." : "Uppfærsla í {serverAndVersion} er tiltæk.",
"Update for {app} to version %s is available." : "Uppfærsla fyrir {app} í útgáfu %s er tiltæk.",
"Update notification" : "Tilkynning um uppfærslu",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Birtir tilkynningar um uppfærslur fyrir Nextcloud og sér um SSO-innskráningu fyrir uppfærslustýringuna.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Birtir tilkynningar um uppfærslur fyrir Nextcloud, uppfærslur á forritum og sér um SSO-innskráningu fyrir uppfærslustýringuna.",
+ "Give feedback" : "Gefðu umsögn",
+ "Get started" : "Hefjumst handa",
+ "No changelog available" : "Engin breytingaskrá tiltæk",
+ "What's new in {app} {version}" : "Það sem er nýtt í {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Ný útgáfa er tiltæk: <strong>{newVersionString}</strong>",
+ "Checked on {lastCheckedDate} - Open changelog" : "Athugað þann {lastCheckedDate} - Opna breytingaskrá",
+ "Checking apps for compatible versions" : "Athuga forrit vegna samhæfðra uppfærslna",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Gakktu úr skugga um að í config.php sé <samp>appstoreenabled</samp> ekki sett sem ósatt/false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Gat ekki tengst við forritabúðina eða að í henni eru engar uppfærslur. Leitaðu handvirkt að uppfærslum, eða gakktu úr skugga um að þjónninn þinn sé með aðgang að internetinu og geti tengst forritabúðinni.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Öll</strong> forrit eru með tiltækar uppfærslur fyrir þessa útgáfu Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> forrit er með tiltæka uppfærslu fyrir þessa útgáfu Nextcloud.","<strong>%n</strong> forrit eru ekki með neina tiltæka uppfærslu fyrir þessa útgáfu Nextcloud."],
+ "Enterprise" : "Fyrirtæki",
+ "Stable" : "Stöðug",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Nýjasta stöðuga útgáfan. Hún hentar fyrir alla venjulega notkun og er alltaf uppfærð í nýjustu aðalútgáfu.",
+ "Beta" : "BETA-prófunarútgáfa",
+ "A pre-release version only for testing new features, not for production environments." : "For-útgáfa sem einungis er hugsuð til að prófa nýja eiginleika, og er alls ekki ætluð fyrir alvöru vinnslu.",
+ "Update" : "Uppfæra",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Útgáfunni sem þú ert að keyra er ekki legur viðhaldið. Uppfærðu í studda útgáfu við fyrsta tækifæri.",
- "Apps missing updates" : "Forrit sem vantar uppfærslur",
+ "Apps missing compatible version" : "Forrit sem vantar samhæfða útgáfu",
"View in store" : "Skoða í hugbúnaðarsafni",
- "Apps with available updates" : "Forrit með tiltækar uppfærslur",
+ "Apps with compatible version" : "Forrit með samhæfða útgáfu",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Athugaðu að ekki er mælt með því að nota vefuppfærsluna á fleiri en 100 aðganga! Endilega notaðu uppfærslu af skipanalínu í staðinn!",
"Open updater" : "Opna uppfærslustýringu",
"Download now" : "Sækja núna",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Vefuppfærslukerfi er óvirkt. Notaðu uppfærslukerfið á skipanalínu eða viðeigandi uppfærsluaðferð fyrir þá gerð uppsetningar sem þú ert með (t.d. Docker pull).",
"What's new?" : "Hvað er nýtt á döfinni?",
+ "View changelog" : "Skoða breytingaannál",
"The update check is not yet finished. Please refresh the page." : "Athugun á uppfærslum er ekki ennþá lokið. Endurlestu síðuna.",
"Your version is up to date." : "Útgáfan þín er af nýjustu gerð.",
"A non-default update server is in use to be checked for updates:" : "Uppfærsluþjónn sem ekki er sjálfgefinn er núna í notkun til að athuga með uppfærslur:",
- "Update channel:" : "Uppfærslurás:",
+ "Update channel" : "Uppfærslurás",
+ "Current update channel:" : "Núverandi uppfærslurás:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Þú getur alltaf uppfært í nýrri útgáfu. En þú getur aldrei niðurfært í stöðugri útgáfu.",
"Notify members of the following groups about available updates:" : "Tilkynna meðlimum eftirfarandi hópa um tiltækar uppfærslur:",
- "Only notification for app updates are available." : "Eingöngu eru eru tiltækar tilkynningar fyrir uppfærslur forrita.",
+ "No groups" : "Engir hópar",
+ "Only notifications for app updates are available." : "Eingöngu eru eru tiltækar tilkynningar fyrir uppfærslur forrita.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Valda uppfærslurásin gerir úreltar sértækar tilkynningar fyrir vefþjóninn.",
"The selected update channel does not support updates of the server." : "Valda uppfærslurásin styður ekki uppfærslur fyrir vefþjóninn.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Ný útgáfa er tiltæk: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Athugað þann {lastCheckedDate}",
- "Checking apps for compatible updates" : "Athuga forrit vegna hugsanlegra uppfærslna",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Gakktu úr skugga um að í config.php sé <samp>appstoreenabled</samp> ekki sett sem ósatt/false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Gat ekki tengst við forritabúðina eða að í henni eru engar uppfærslur. Leitaðu handvirkt að uppfærslum, eða gakktu úr skugga um að þjónninn þinn sé með aðgang að internetinu og geti tengst forritabúðinni.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Öll</strong> forrit eru með uppfærslu tiltæka fyrir þessa útgáfu",
- "View changelog" : "Skoða breytingaannál",
- "Enterprise" : "Fyrirtæki",
- "Stable" : "Stöðug",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Nýjasta stöðuga útgáfan. Hún hentar fyrir alla venjulega notkun og er alltaf uppfærð í nýjustu aðalútgáfu.",
- "Beta" : "BETA-prófunarútgáfa",
- "A pre-release version only for testing new features, not for production environments." : "For-útgáfa sem einungis er hugsuð til að prófa nýja eiginleika, og er alls ekki ætluð fyrir alvöru vinnslu.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> forrit eru með uppfærslu tiltæka fyrir þessa útgáfu","<strong>%n</strong> forrit eru með uppfærslu tiltæka fyrir þessa útgáfu"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Athugaðu að það getur tekið nokkurn tíma áður en nýjar útgáfur birtast hér. Við dreifum útgáfum yfir tíma auk þess sem stundum er útgáfum sleppt ef í þeim finnast hnökrar."
+ "Changelog for app {app}" : "Breytingaskrá fyrir forritið {app}",
+ "What's new in {app} version {version}" : "Það sem er nýtt í {app} útgáfu {version}",
+ "{version} is available. Get more information on how to update." : "{version} er í boði. Fáðu frekari upplýsingar um hvernig á að uppfæra."
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/it.js b/apps/updatenotification/l10n/it.js
index ddcac2db5c1..7398f62a7c4 100644
--- a/apps/updatenotification/l10n/it.js
+++ b/apps/updatenotification/l10n/it.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} è disponibile. Ottieni ulteriori informazioni su come eseguire l'aggiornamento.",
"Channel updated" : "Canale aggiornato",
+ "Web updater is disabled" : "L'aggiornamento web è disattivato",
+ "App updated" : "App aggiornata",
+ "See what's new" : "Guarda cosa c'è di nuovo",
+ "{app} updated to version {version}" : "{app} aggiornata alla versione {version}",
"Update notifications" : "Notifiche degli aggiornamenti",
"The update server could not be reached since %d days to check for new updates." : "Il server degli aggiornamenti non è raggiungibile da %d giorni per controllare la presenza di nuovi aggiornamenti.",
"Please check the Nextcloud and server log files for errors." : "Controlla i file di log di Nextcloud e del server alla ricerca di errori.",
- "Update to %1$s is available." : "Aggiornamento a %1$s disponibile.",
- "Update for %1$s to version %2$s is available." : "È disponibile l'aggiornamento di %1$s alla versione %2$s.",
+ "Update to {serverAndVersion} is available." : "Aggiornamento a {serverAndVersion} disponibile.",
"Update for {app} to version %s is available." : "È disponibile l'aggiornamento di {app} alla versione %s.",
"Update notification" : "Notifica di aggiornamento",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Visualizza le notifiche degli aggiornamenti per Nextcloud e fornisce il SSO per lo strumento di aggiornamento.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Visualizza le notifiche di aggiornamento per Nextcloud, gli aggiornamenti dell'app e fornisce l'SSO per l'aggiornamento.",
+ "Give feedback" : "Dai un feedback",
+ "Get started" : "Cominciamo",
+ "No changelog available" : "Nessuna nota di rilascio disponibile",
+ "What's new in {app} {version}" : "Novità in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una nuova versione è disponibile: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Nota che, dopo una nuova versione, l'aggiornamento viene mostrato solo dopo la prima versione minore o successivamente. Pubblichiamo nel tempo nuove versioni e, a volte, ne saltiamo una se troviamo dei problemi. Ulteriori informazioni sugli aggiornamenti e sui canali di rilascio su {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Controllato il {lastCheckedDate} - Apri note di rilascio",
+ "Checking apps for compatible versions" : "Controllo di applicazioni con versioni compatibili",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assicurati che il tuo config.php non abbia <samp>appstoreenabled</samp> impostata a false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Impossibile connettersi al negozio delle applicazioni o il negozio delle applicazioni non ha restituito alcun aggiornamento. Cerca manualmente gli aggiornamenti o assicurati che il server abbia accesso a Internet e possa collegarsi al negozio delle applicazioni.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Tutte</strong> le applicazioni hanno una versione compatibile disponibile per questa versione di Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> applicazione non ha una versione compatibile disponibile per questa versione di Nextcloud.","<strong>%n</strong> applicazioni non hanno una versione compatibile disponibile per questa versione di Nextcloud.","<strong>%n</strong> applicazioni non hanno una versione compatibile disponibile per questa versione di Nextcloud."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per utilizzo aziendale. Fornisce sempre l'ultimo livello di patch, ma non sarà aggiornato immediatamente all'ultima versione principale. Tale aggiornamento sarà disponibile nel momento in cui Nextcloud GmbH avrà apportato miglioramenti della sicurezza, test su larga scala e installazioni in ambienti di importanza rilevante. Questo canale è disponibile solo per i clienti e fornisce il pacchetto Nextcloud Enterprise.",
+ "Stable" : "Stabile",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versione stabile più recente. È appropriata per l'utilizzo di tutti i giorni e sarà sempre aggiornata all'ultima versione principale.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versione pre-rilascio solo per provare le nuove funzionalità, non per ambienti di produzione.",
+ "Update" : "Aggiorna",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versione che stai eseguendo non è più mantenuta. Assicurati di aggiornare a una versione supportata non appena possibile.",
- "Apps missing updates" : "Applicazioni non aggiornate",
+ "Apps missing compatible version" : "Applicazioni senza versione compatibile",
"View in store" : "Visualizza nel negozio",
- "Apps with available updates" : "Applicazioni con aggiornamenti disponibili",
+ "Apps with compatible version" : "Applicazioni con versione compatibile",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Tieni presente che il programma di aggiornamento web non è consigliato con più di 100 account! Si prega di utilizzare, invece, il programma di aggiornamento tramite riga di comando!",
"Open updater" : "Apri strumento di aggiornamento",
"Download now" : "Scarica ora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Programma di aggiornamento web disattivato. Usa quello da riga di comando o il meccanismo di aggiornamento appropriato per il tuo metodo di installazione (es. Docker pull).",
"What's new?" : "Cosa c'è di nuovo?",
+ "View changelog" : "Visualizza le novità",
"The update check is not yet finished. Please refresh the page." : "Il controllo degli aggiornamenti non è ancora terminato. Aggiorna la pagina.",
"Your version is up to date." : "La tua versione è aggiornata.",
"A non-default update server is in use to be checked for updates:" : "Stai utilizzando un server non predefinito per controllare gli aggiornamenti:",
- "Update channel:" : "Canale di aggiornamento:",
+ "Update channel" : "Canale di aggiornamento",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Cambiare il canale di aggiornamento influisce anche la pagina di gestione delle applicazioni. Es. dopo il passaggio al canale beta, ti verranno offerti gli aggiornamenti delle applicazioni beta nella pagina di gestione delle applicazioni.",
+ "Current update channel:" : "Canale di aggiornamento attuale:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Puoi aggiornare sempre a una nuova versione. Ma non puoi mai tornare a una versione precedente.",
"Notify members of the following groups about available updates:" : "Notifica ai membri dei seguenti gruppi la disponibilità di aggiornamenti:",
- "Only notification for app updates are available." : "Sono disponibili solo le notifiche per gli aggiornamenti delle applicazioni.",
+ "No groups" : "Nessun gruppo",
+ "Only notifications for app updates are available." : "Sono disponibili solo le notifiche per gli aggiornamenti delle applicazioni.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Il canale di aggiornamento selezionato rende obsolete le notifiche dedicate al server.",
"The selected update channel does not support updates of the server." : "Il canale di aggiornamento selezionato non supporta gli aggiornamenti del server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una nuova versione è disponibile: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Nota che, dopo una nuova versione, l'aggiornamento viene visualizzato solo dopo la prima versione minore o successivamente. Rilasciamo nel tempo nuove versioni ai nostri utenti e, a volte, saltiamo una versione, se troviamo dei problemi. Ulteriori informazioni sugli aggiornamenti e sui canali di rilascio su {link} ",
- "Checked on {lastCheckedDate}" : "Controllato il {lastCheckedDate}",
- "Checking apps for compatible updates" : "Controlla le applicazioni per aggiornamenti compatibili",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assicurati che il tuo config.php non abbia <samp>appstoreenabled</samp> impostata a false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Impossibile connettersi al negozio delle applicazioni o il negozio delle applicazioni non ha restituito alcun aggiornamento. Cerca manualmente gli aggiornamenti o assicurati che il server abbia accesso a Internet e possa collegarsi al negozio delle applicazioni.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Tutte</strong> le applicazioni hanno un aggiornamento disponibile per questa versione",
- "View changelog" : "Visualizza le novità",
- "Enterprise" : "Enterprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per utilizzo aziendale. Fornisce sempre l'ultimo livello di patch, ma non sarà aggiornato immediatamente all'ultima versione principale. Tale aggiornamento sarà disponibile nel momento in cui Nextcloud GmbH avrà apportato miglioramenti della sicurezza, test su larga scala e installazioni in ambienti di importanza rilevante. Questo canale è disponibile solo per i clienti e fornisce il pacchetto Nextcloud Enterprise.",
- "Stable" : "Stabile",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versione stabile più recente. È appropriata per l'utilizzo di tutti i giorni e sarà sempre aggiornata all'ultima versione principale.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Una versione pre-rilascio solo per provare le nuove funzionalità, non per ambienti di produzione.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> applicazione non ha un aggiornamento disponibile per questa versione","<strong>%n</strong> applicazioni non hanno un aggiornamento disponibile per questa versione"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota che, dopo una nuova versione, potrebbe essere necessario del tempo prima che sia mostrato qui. Rilasciamo nel tempo nuove versioni ai nostri utenti e, a volte, saltiamo una versione, se troviamo dei problemi."
+ "Changelog for app {app}" : "Note di rilascio per l'app {app}",
+ "What's new in {app} version {version}" : "Novità nella versione {version} di {app}",
+ "{version} is available. Get more information on how to update." : "{version} è disponibile. Ottieni ulteriori informazioni su come eseguire l'aggiornamento."
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/it.json b/apps/updatenotification/l10n/it.json
index 15e5a789594..12a744b6ff7 100644
--- a/apps/updatenotification/l10n/it.json
+++ b/apps/updatenotification/l10n/it.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} è disponibile. Ottieni ulteriori informazioni su come eseguire l'aggiornamento.",
"Channel updated" : "Canale aggiornato",
+ "Web updater is disabled" : "L'aggiornamento web è disattivato",
+ "App updated" : "App aggiornata",
+ "See what's new" : "Guarda cosa c'è di nuovo",
+ "{app} updated to version {version}" : "{app} aggiornata alla versione {version}",
"Update notifications" : "Notifiche degli aggiornamenti",
"The update server could not be reached since %d days to check for new updates." : "Il server degli aggiornamenti non è raggiungibile da %d giorni per controllare la presenza di nuovi aggiornamenti.",
"Please check the Nextcloud and server log files for errors." : "Controlla i file di log di Nextcloud e del server alla ricerca di errori.",
- "Update to %1$s is available." : "Aggiornamento a %1$s disponibile.",
- "Update for %1$s to version %2$s is available." : "È disponibile l'aggiornamento di %1$s alla versione %2$s.",
+ "Update to {serverAndVersion} is available." : "Aggiornamento a {serverAndVersion} disponibile.",
"Update for {app} to version %s is available." : "È disponibile l'aggiornamento di {app} alla versione %s.",
"Update notification" : "Notifica di aggiornamento",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Visualizza le notifiche degli aggiornamenti per Nextcloud e fornisce il SSO per lo strumento di aggiornamento.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Visualizza le notifiche di aggiornamento per Nextcloud, gli aggiornamenti dell'app e fornisce l'SSO per l'aggiornamento.",
+ "Give feedback" : "Dai un feedback",
+ "Get started" : "Cominciamo",
+ "No changelog available" : "Nessuna nota di rilascio disponibile",
+ "What's new in {app} {version}" : "Novità in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una nuova versione è disponibile: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Nota che, dopo una nuova versione, l'aggiornamento viene mostrato solo dopo la prima versione minore o successivamente. Pubblichiamo nel tempo nuove versioni e, a volte, ne saltiamo una se troviamo dei problemi. Ulteriori informazioni sugli aggiornamenti e sui canali di rilascio su {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Controllato il {lastCheckedDate} - Apri note di rilascio",
+ "Checking apps for compatible versions" : "Controllo di applicazioni con versioni compatibili",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assicurati che il tuo config.php non abbia <samp>appstoreenabled</samp> impostata a false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Impossibile connettersi al negozio delle applicazioni o il negozio delle applicazioni non ha restituito alcun aggiornamento. Cerca manualmente gli aggiornamenti o assicurati che il server abbia accesso a Internet e possa collegarsi al negozio delle applicazioni.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Tutte</strong> le applicazioni hanno una versione compatibile disponibile per questa versione di Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> applicazione non ha una versione compatibile disponibile per questa versione di Nextcloud.","<strong>%n</strong> applicazioni non hanno una versione compatibile disponibile per questa versione di Nextcloud.","<strong>%n</strong> applicazioni non hanno una versione compatibile disponibile per questa versione di Nextcloud."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per utilizzo aziendale. Fornisce sempre l'ultimo livello di patch, ma non sarà aggiornato immediatamente all'ultima versione principale. Tale aggiornamento sarà disponibile nel momento in cui Nextcloud GmbH avrà apportato miglioramenti della sicurezza, test su larga scala e installazioni in ambienti di importanza rilevante. Questo canale è disponibile solo per i clienti e fornisce il pacchetto Nextcloud Enterprise.",
+ "Stable" : "Stabile",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versione stabile più recente. È appropriata per l'utilizzo di tutti i giorni e sarà sempre aggiornata all'ultima versione principale.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versione pre-rilascio solo per provare le nuove funzionalità, non per ambienti di produzione.",
+ "Update" : "Aggiorna",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versione che stai eseguendo non è più mantenuta. Assicurati di aggiornare a una versione supportata non appena possibile.",
- "Apps missing updates" : "Applicazioni non aggiornate",
+ "Apps missing compatible version" : "Applicazioni senza versione compatibile",
"View in store" : "Visualizza nel negozio",
- "Apps with available updates" : "Applicazioni con aggiornamenti disponibili",
+ "Apps with compatible version" : "Applicazioni con versione compatibile",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Tieni presente che il programma di aggiornamento web non è consigliato con più di 100 account! Si prega di utilizzare, invece, il programma di aggiornamento tramite riga di comando!",
"Open updater" : "Apri strumento di aggiornamento",
"Download now" : "Scarica ora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Programma di aggiornamento web disattivato. Usa quello da riga di comando o il meccanismo di aggiornamento appropriato per il tuo metodo di installazione (es. Docker pull).",
"What's new?" : "Cosa c'è di nuovo?",
+ "View changelog" : "Visualizza le novità",
"The update check is not yet finished. Please refresh the page." : "Il controllo degli aggiornamenti non è ancora terminato. Aggiorna la pagina.",
"Your version is up to date." : "La tua versione è aggiornata.",
"A non-default update server is in use to be checked for updates:" : "Stai utilizzando un server non predefinito per controllare gli aggiornamenti:",
- "Update channel:" : "Canale di aggiornamento:",
+ "Update channel" : "Canale di aggiornamento",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Cambiare il canale di aggiornamento influisce anche la pagina di gestione delle applicazioni. Es. dopo il passaggio al canale beta, ti verranno offerti gli aggiornamenti delle applicazioni beta nella pagina di gestione delle applicazioni.",
+ "Current update channel:" : "Canale di aggiornamento attuale:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Puoi aggiornare sempre a una nuova versione. Ma non puoi mai tornare a una versione precedente.",
"Notify members of the following groups about available updates:" : "Notifica ai membri dei seguenti gruppi la disponibilità di aggiornamenti:",
- "Only notification for app updates are available." : "Sono disponibili solo le notifiche per gli aggiornamenti delle applicazioni.",
+ "No groups" : "Nessun gruppo",
+ "Only notifications for app updates are available." : "Sono disponibili solo le notifiche per gli aggiornamenti delle applicazioni.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Il canale di aggiornamento selezionato rende obsolete le notifiche dedicate al server.",
"The selected update channel does not support updates of the server." : "Il canale di aggiornamento selezionato non supporta gli aggiornamenti del server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Una nuova versione è disponibile: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Nota che, dopo una nuova versione, l'aggiornamento viene visualizzato solo dopo la prima versione minore o successivamente. Rilasciamo nel tempo nuove versioni ai nostri utenti e, a volte, saltiamo una versione, se troviamo dei problemi. Ulteriori informazioni sugli aggiornamenti e sui canali di rilascio su {link} ",
- "Checked on {lastCheckedDate}" : "Controllato il {lastCheckedDate}",
- "Checking apps for compatible updates" : "Controlla le applicazioni per aggiornamenti compatibili",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assicurati che il tuo config.php non abbia <samp>appstoreenabled</samp> impostata a false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Impossibile connettersi al negozio delle applicazioni o il negozio delle applicazioni non ha restituito alcun aggiornamento. Cerca manualmente gli aggiornamenti o assicurati che il server abbia accesso a Internet e possa collegarsi al negozio delle applicazioni.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Tutte</strong> le applicazioni hanno un aggiornamento disponibile per questa versione",
- "View changelog" : "Visualizza le novità",
- "Enterprise" : "Enterprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Per utilizzo aziendale. Fornisce sempre l'ultimo livello di patch, ma non sarà aggiornato immediatamente all'ultima versione principale. Tale aggiornamento sarà disponibile nel momento in cui Nextcloud GmbH avrà apportato miglioramenti della sicurezza, test su larga scala e installazioni in ambienti di importanza rilevante. Questo canale è disponibile solo per i clienti e fornisce il pacchetto Nextcloud Enterprise.",
- "Stable" : "Stabile",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "La versione stabile più recente. È appropriata per l'utilizzo di tutti i giorni e sarà sempre aggiornata all'ultima versione principale.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Una versione pre-rilascio solo per provare le nuove funzionalità, non per ambienti di produzione.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> applicazione non ha un aggiornamento disponibile per questa versione","<strong>%n</strong> applicazioni non hanno un aggiornamento disponibile per questa versione"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota che, dopo una nuova versione, potrebbe essere necessario del tempo prima che sia mostrato qui. Rilasciamo nel tempo nuove versioni ai nostri utenti e, a volte, saltiamo una versione, se troviamo dei problemi."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+ "Changelog for app {app}" : "Note di rilascio per l'app {app}",
+ "What's new in {app} version {version}" : "Novità nella versione {version} di {app}",
+ "{version} is available. Get more information on how to update." : "{version} è disponibile. Ottieni ulteriori informazioni su come eseguire l'aggiornamento."
+},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ja.js b/apps/updatenotification/l10n/ja.js
index 68dfbb7a168..2563959b7f5 100644
--- a/apps/updatenotification/l10n/ja.js
+++ b/apps/updatenotification/l10n/ja.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} が利用可能です。アップデート方法について詳細情報を確認してください。",
"Channel updated" : "チャンネルを更新しました",
+ "Web updater is disabled" : "Webアップデータは無効になっています",
+ "App updated" : "アプリが更新されました",
+ "See what's new" : "最新情報を見る",
+ "{app} updated to version {version}" : "{app}がバージョン{version}に更新されました",
"Update notifications" : "アップデート通知",
"The update server could not be reached since %d days to check for new updates." : "%d日以降、新しい更新をチェックする更新サーバーにアクセスできませんでした。",
"Please check the Nextcloud and server log files for errors." : "Nextcloudとサーバーログファイルでエラーがないか確認してください。",
- "Update to %1$s is available." : "%1$s への更新が利用可能です。",
- "Update for %1$s to version %2$s is available." : "%1$s に対するバージョン %2$s へアップデートが利用可能です。",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} へのアップデートが利用可能です。",
"Update for {app} to version %s is available." : " {app} に対するバージョン %s へアップデートが利用可能です。",
"Update notification" : "アップデート通知",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloudの更新通知を表示し、アップデータのSSOを提供します。",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Nextcloud、アプリの更新に関する更新通知を表示し、アップデーターのSSOを提供します。",
+ "Give feedback" : "フィードバックを送信する",
+ "Get started" : "はじめに",
+ "No changelog available" : "利用可能な変更ログがありません",
+ "What's new in {app} {version}" : "{app} {version}の新機能",
+ "A new version is available: <strong>{newVersionString}</strong>" : "新しいバージョンが利用可能です: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "新しいリリースの後、更新プログラムは最初のマイナーリリース以降にのみ表示されることに注意してください。時間をかけて新しいバージョンを展開し、問題が見つかった場合はバージョンをスキップすることもあります。更新プログラムとリリースチャネルの詳細については、{link}を参照してください。",
+ "Checked on {lastCheckedDate} - Open changelog" : "最終チェック日 {lastCheckedDate} - 変更ログを開く",
+ "Checking apps for compatible versions" : "アプリの互換性のあるバージョンを確認する",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "config.phpで<samp>appstoreenabled</samp>がfalseに設定されていないことを確認してください。",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Appstoreに接続できなかったか、Appstoreからアップデートが返されませんでした。アップデートを手動で検索するか、サーバーがインターネットへアクセスでき、Appstoreに接続できることを確認してください。",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>全て</strong>のアプリが、このNextcloudのバージョンに対応しています。 ",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong>アプリが、このNextcloudバージョンと互換性があるバージョンではありません。"],
+ "Enterprise" : "法人向け",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "法人向けです。 常に最新のパッチレベルを提供しますが、すぐに次のメジャーリリースにアップデートはしません。このアップデートはNextcloud GmbHが大規模でミッションクリティカルな開発のための追加の強化とテストを行った後に行われます。 このチャンネルは顧客だけが利用でき、Nextcloud Enterpriseパッケージを提供します。",
+ "Stable" : "安定版",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新の安定版です。 通常の使用に適しており、常に最新のメジャーバージョンにアップデートされます。",
+ "Beta" : "ベータ",
+ "A pre-release version only for testing new features, not for production environments." : "本番環境ではなく、新機能のテスト専用のプレリリース版です。",
+ "Update" : "更新",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "あなたが実行しているバージョンはもうサポートされていません。 サポートされているバージョンにすみやかにアップデートしてください。",
- "Apps missing updates" : "アプリのアップデートがありません",
+ "Apps missing compatible version" : "対応バージョンがないアプリ",
"View in store" : "ストア内で表示",
- "Apps with available updates" : "アップデート可能なアプリ",
+ "Apps with compatible version" : "対応バージョンのあるアプリ",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Webアップデータは、100を超えるアカウントでは推奨されないことに注意してください! 代わりにコマンドラインアップデータを使用してください。",
"Open updater" : "アップデーターを開く",
"Download now" : "今すぐダウンロード",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Webアップデーターは無効です。コマンドラインアップデーターまたはインストール方法(例:Docker pull)に適した更新メカニズムを使用して更新してください。",
"What's new?" : "新着情報?",
+ "View changelog" : "変更履歴を確認する",
"The update check is not yet finished. Please refresh the page." : "アップデートチェックが完了していません。ページを更新してください。",
"Your version is up to date." : "最新版です。",
"A non-default update server is in use to be checked for updates:" : "更新のチェックにデフォルト以外の更新サーバーが利用されています:",
- "Update channel:" : "アップデートチャンネル:",
+ "Update channel" : "アップデートチャネル",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "アップデートチャネルを変更すると、アプリの管理ページにも影響が及びます。例えば、ベータチャネルに切り替えると、アプリ管理ページでベータ版のアップデートが提供されるようになります。",
+ "Current update channel:" : "現在のアップデートチャネル:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "いつでも新しいバージョンにアップデートすることができます。 ただし、下位の安定したバージョンにダウングレードすることはできません",
"Notify members of the following groups about available updates:" : "次のグループのメンバーに利用可能なアップデートを通知する:",
- "Only notification for app updates are available." : "アプリ更新情報があるときのみ通知する。",
+ "No groups" : "グループなし",
+ "Only notifications for app updates are available." : "アプリのアップデートの通知のみが可能です。",
"The selected update channel makes dedicated notifications for the server obsolete." : "選択した更新チャネルでは、廃止サーバーについて専用の通知を行います。",
"The selected update channel does not support updates of the server." : "選択したチャンネルでは、サーバーのアップデートをサポートしていません。",
- "A new version is available: <strong>{newVersionString}</strong>" : "新しいバージョンが利用可能です: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "{lastCheckedDate} にチェックが入っています",
- "Checking apps for compatible updates" : "互換性のあるアップデートの有無を確認する",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "config.phpで<samp>appstoreenabled</samp>がfalseに設定されていないことを確認してください。",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Appstoreに接続できなかったか、Appstoreからアップデートが返されませんでした。アップデートを手動で検索するか、サーバーがインターネットへアクセスでき、Appstoreに接続できることを確認してください。",
- "<strong>All</strong> apps have an update for this version available" : "<strong>すべての</strong> アプリにこのバージョンのアップデートがあります",
- "View changelog" : "変更履歴を確認する",
- "Enterprise" : "エンタープライズ",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "企業用です。 常に最新のパッチレベルを提供しますが、すぐに次のメジャーリリースにアップデートはしません。このアップデートはNextcloud GmbHが大規模でミッションクリティカルな開発のための追加の強化とテストを行った後に行われます。 このチャンネルは顧客だけが利用でき、Nextcloud Enterpriseパッケージを提供します。",
- "Stable" : "安定版",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新の安定版です。 通常の使用に適しており、常に最新のメジャーバージョンにアップデートされます。",
- "Beta" : "ベータ",
- "A pre-release version only for testing new features, not for production environments." : "本番環境ではなく、新機能のテスト専用のプレリリース版です。",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> アプリにこのバージョンのアップデートがありません"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "新しいリリースの後、公開されるまでには時間がかかります。\n新しいバージョンを公開して配布しますが、問題が発見されたときにバージョンをスキップすることがあります。"
+ "Changelog for app {app}" : "アプリケーション{app}の変更ログ",
+ "What's new in {app} version {version}" : "{app}バージョン{version}の新機能",
+ "{version} is available. Get more information on how to update." : "{version} が利用可能です。アップデート方法について詳細情報を確認してください。"
},
"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/ja.json b/apps/updatenotification/l10n/ja.json
index ed5ecde87df..676293a2206 100644
--- a/apps/updatenotification/l10n/ja.json
+++ b/apps/updatenotification/l10n/ja.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} が利用可能です。アップデート方法について詳細情報を確認してください。",
"Channel updated" : "チャンネルを更新しました",
+ "Web updater is disabled" : "Webアップデータは無効になっています",
+ "App updated" : "アプリが更新されました",
+ "See what's new" : "最新情報を見る",
+ "{app} updated to version {version}" : "{app}がバージョン{version}に更新されました",
"Update notifications" : "アップデート通知",
"The update server could not be reached since %d days to check for new updates." : "%d日以降、新しい更新をチェックする更新サーバーにアクセスできませんでした。",
"Please check the Nextcloud and server log files for errors." : "Nextcloudとサーバーログファイルでエラーがないか確認してください。",
- "Update to %1$s is available." : "%1$s への更新が利用可能です。",
- "Update for %1$s to version %2$s is available." : "%1$s に対するバージョン %2$s へアップデートが利用可能です。",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} へのアップデートが利用可能です。",
"Update for {app} to version %s is available." : " {app} に対するバージョン %s へアップデートが利用可能です。",
"Update notification" : "アップデート通知",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloudの更新通知を表示し、アップデータのSSOを提供します。",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Nextcloud、アプリの更新に関する更新通知を表示し、アップデーターのSSOを提供します。",
+ "Give feedback" : "フィードバックを送信する",
+ "Get started" : "はじめに",
+ "No changelog available" : "利用可能な変更ログがありません",
+ "What's new in {app} {version}" : "{app} {version}の新機能",
+ "A new version is available: <strong>{newVersionString}</strong>" : "新しいバージョンが利用可能です: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "新しいリリースの後、更新プログラムは最初のマイナーリリース以降にのみ表示されることに注意してください。時間をかけて新しいバージョンを展開し、問題が見つかった場合はバージョンをスキップすることもあります。更新プログラムとリリースチャネルの詳細については、{link}を参照してください。",
+ "Checked on {lastCheckedDate} - Open changelog" : "最終チェック日 {lastCheckedDate} - 変更ログを開く",
+ "Checking apps for compatible versions" : "アプリの互換性のあるバージョンを確認する",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "config.phpで<samp>appstoreenabled</samp>がfalseに設定されていないことを確認してください。",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Appstoreに接続できなかったか、Appstoreからアップデートが返されませんでした。アップデートを手動で検索するか、サーバーがインターネットへアクセスでき、Appstoreに接続できることを確認してください。",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>全て</strong>のアプリが、このNextcloudのバージョンに対応しています。 ",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong>アプリが、このNextcloudバージョンと互換性があるバージョンではありません。"],
+ "Enterprise" : "法人向け",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "法人向けです。 常に最新のパッチレベルを提供しますが、すぐに次のメジャーリリースにアップデートはしません。このアップデートはNextcloud GmbHが大規模でミッションクリティカルな開発のための追加の強化とテストを行った後に行われます。 このチャンネルは顧客だけが利用でき、Nextcloud Enterpriseパッケージを提供します。",
+ "Stable" : "安定版",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新の安定版です。 通常の使用に適しており、常に最新のメジャーバージョンにアップデートされます。",
+ "Beta" : "ベータ",
+ "A pre-release version only for testing new features, not for production environments." : "本番環境ではなく、新機能のテスト専用のプレリリース版です。",
+ "Update" : "更新",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "あなたが実行しているバージョンはもうサポートされていません。 サポートされているバージョンにすみやかにアップデートしてください。",
- "Apps missing updates" : "アプリのアップデートがありません",
+ "Apps missing compatible version" : "対応バージョンがないアプリ",
"View in store" : "ストア内で表示",
- "Apps with available updates" : "アップデート可能なアプリ",
+ "Apps with compatible version" : "対応バージョンのあるアプリ",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Webアップデータは、100を超えるアカウントでは推奨されないことに注意してください! 代わりにコマンドラインアップデータを使用してください。",
"Open updater" : "アップデーターを開く",
"Download now" : "今すぐダウンロード",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Webアップデーターは無効です。コマンドラインアップデーターまたはインストール方法(例:Docker pull)に適した更新メカニズムを使用して更新してください。",
"What's new?" : "新着情報?",
+ "View changelog" : "変更履歴を確認する",
"The update check is not yet finished. Please refresh the page." : "アップデートチェックが完了していません。ページを更新してください。",
"Your version is up to date." : "最新版です。",
"A non-default update server is in use to be checked for updates:" : "更新のチェックにデフォルト以外の更新サーバーが利用されています:",
- "Update channel:" : "アップデートチャンネル:",
+ "Update channel" : "アップデートチャネル",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "アップデートチャネルを変更すると、アプリの管理ページにも影響が及びます。例えば、ベータチャネルに切り替えると、アプリ管理ページでベータ版のアップデートが提供されるようになります。",
+ "Current update channel:" : "現在のアップデートチャネル:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "いつでも新しいバージョンにアップデートすることができます。 ただし、下位の安定したバージョンにダウングレードすることはできません",
"Notify members of the following groups about available updates:" : "次のグループのメンバーに利用可能なアップデートを通知する:",
- "Only notification for app updates are available." : "アプリ更新情報があるときのみ通知する。",
+ "No groups" : "グループなし",
+ "Only notifications for app updates are available." : "アプリのアップデートの通知のみが可能です。",
"The selected update channel makes dedicated notifications for the server obsolete." : "選択した更新チャネルでは、廃止サーバーについて専用の通知を行います。",
"The selected update channel does not support updates of the server." : "選択したチャンネルでは、サーバーのアップデートをサポートしていません。",
- "A new version is available: <strong>{newVersionString}</strong>" : "新しいバージョンが利用可能です: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "{lastCheckedDate} にチェックが入っています",
- "Checking apps for compatible updates" : "互換性のあるアップデートの有無を確認する",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "config.phpで<samp>appstoreenabled</samp>がfalseに設定されていないことを確認してください。",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Appstoreに接続できなかったか、Appstoreからアップデートが返されませんでした。アップデートを手動で検索するか、サーバーがインターネットへアクセスでき、Appstoreに接続できることを確認してください。",
- "<strong>All</strong> apps have an update for this version available" : "<strong>すべての</strong> アプリにこのバージョンのアップデートがあります",
- "View changelog" : "変更履歴を確認する",
- "Enterprise" : "エンタープライズ",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "企業用です。 常に最新のパッチレベルを提供しますが、すぐに次のメジャーリリースにアップデートはしません。このアップデートはNextcloud GmbHが大規模でミッションクリティカルな開発のための追加の強化とテストを行った後に行われます。 このチャンネルは顧客だけが利用でき、Nextcloud Enterpriseパッケージを提供します。",
- "Stable" : "安定版",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新の安定版です。 通常の使用に適しており、常に最新のメジャーバージョンにアップデートされます。",
- "Beta" : "ベータ",
- "A pre-release version only for testing new features, not for production environments." : "本番環境ではなく、新機能のテスト専用のプレリリース版です。",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> アプリにこのバージョンのアップデートがありません"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "新しいリリースの後、公開されるまでには時間がかかります。\n新しいバージョンを公開して配布しますが、問題が発見されたときにバージョンをスキップすることがあります。"
+ "Changelog for app {app}" : "アプリケーション{app}の変更ログ",
+ "What's new in {app} version {version}" : "{app}バージョン{version}の新機能",
+ "{version} is available. Get more information on how to update." : "{version} が利用可能です。アップデート方法について詳細情報を確認してください。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ka.js b/apps/updatenotification/l10n/ka.js
new file mode 100644
index 00000000000..057a28e757b
--- /dev/null
+++ b/apps/updatenotification/l10n/ka.js
@@ -0,0 +1,48 @@
+OC.L10N.register(
+ "updatenotification",
+ {
+ "Channel updated" : "Channel updated",
+ "Web updater is disabled" : "Web updater is disabled",
+ "Update notifications" : "Update notifications",
+ "The update server could not be reached since %d days to check for new updates." : "The update server could not be reached since %d days to check for new updates.",
+ "Please check the Nextcloud and server log files for errors." : "Please check the Nextcloud and server log files for errors.",
+ "Update to {serverAndVersion} is available." : "Update to {serverAndVersion} is available.",
+ "Update for {app} to version %s is available." : "Update for {app} to version %s is available.",
+ "Update notification" : "Update notification",
+ "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Checking apps for compatible versions",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>All</strong> apps have a compatible version for this Nextcloud version available.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app has no compatible version for this Nextcloud version available.","<strong>%n</strong> apps have no compatible version for this Nextcloud version available."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.",
+ "Stable" : "Stable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "The most recent stable version. It is suited for regular use and will always update to the latest major version.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "A pre-release version only for testing new features, not for production environments.",
+ "Update" : "Update",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.",
+ "Apps missing compatible version" : "Apps missing compatible version",
+ "View in store" : "View in store",
+ "Apps with compatible version" : "Apps with compatible version",
+ "Open updater" : "Open updater",
+ "Download now" : "Download now",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update.",
+ "What's new?" : "What's new?",
+ "View changelog" : "View changelog",
+ "The update check is not yet finished. Please refresh the page." : "The update check is not yet finished. Please refresh the page.",
+ "Your version is up to date." : "Your version is up to date.",
+ "A non-default update server is in use to be checked for updates:" : "A non-default update server is in use to be checked for updates:",
+ "Update channel" : "Update channel",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page.",
+ "Current update channel:" : "Current update channel:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "You can always update to a newer version. But you can never downgrade to a more stable version.",
+ "Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
+ "No groups" : "No groups",
+ "Only notifications for app updates are available." : "Only notifications for app updates are available.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.",
+ "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
+ "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update."
+},
+"nplurals=2; plural=(n!=1);");
diff --git a/apps/updatenotification/l10n/ka.json b/apps/updatenotification/l10n/ka.json
new file mode 100644
index 00000000000..b43f6b5aa35
--- /dev/null
+++ b/apps/updatenotification/l10n/ka.json
@@ -0,0 +1,46 @@
+{ "translations": {
+ "Channel updated" : "Channel updated",
+ "Web updater is disabled" : "Web updater is disabled",
+ "Update notifications" : "Update notifications",
+ "The update server could not be reached since %d days to check for new updates." : "The update server could not be reached since %d days to check for new updates.",
+ "Please check the Nextcloud and server log files for errors." : "Please check the Nextcloud and server log files for errors.",
+ "Update to {serverAndVersion} is available." : "Update to {serverAndVersion} is available.",
+ "Update for {app} to version %s is available." : "Update for {app} to version %s is available.",
+ "Update notification" : "Update notification",
+ "A new version is available: <strong>{newVersionString}</strong>" : "A new version is available: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Checking apps for compatible versions",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>All</strong> apps have a compatible version for this Nextcloud version available.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app has no compatible version for this Nextcloud version available.","<strong>%n</strong> apps have no compatible version for this Nextcloud version available."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.",
+ "Stable" : "Stable",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "The most recent stable version. It is suited for regular use and will always update to the latest major version.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "A pre-release version only for testing new features, not for production environments.",
+ "Update" : "Update",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.",
+ "Apps missing compatible version" : "Apps missing compatible version",
+ "View in store" : "View in store",
+ "Apps with compatible version" : "Apps with compatible version",
+ "Open updater" : "Open updater",
+ "Download now" : "Download now",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update.",
+ "What's new?" : "What's new?",
+ "View changelog" : "View changelog",
+ "The update check is not yet finished. Please refresh the page." : "The update check is not yet finished. Please refresh the page.",
+ "Your version is up to date." : "Your version is up to date.",
+ "A non-default update server is in use to be checked for updates:" : "A non-default update server is in use to be checked for updates:",
+ "Update channel" : "Update channel",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page.",
+ "Current update channel:" : "Current update channel:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "You can always update to a newer version. But you can never downgrade to a more stable version.",
+ "Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
+ "No groups" : "No groups",
+ "Only notifications for app updates are available." : "Only notifications for app updates are available.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.",
+ "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
+ "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update."
+},"pluralForm" :"nplurals=2; plural=(n!=1);"
+} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ka_GE.js b/apps/updatenotification/l10n/ka_GE.js
deleted file mode 100644
index 54d0a50708f..00000000000
--- a/apps/updatenotification/l10n/ka_GE.js
+++ /dev/null
@@ -1,29 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} ხელმისაწვდომია. მოიპოვეთ მეტი ინფორმაცია იმაზე, თუ როგორ განაახლოთ.",
- "Channel updated" : "განახლების შეჩერება",
- "Update notifications" : "განახლების შეტყობინებები",
- "The update server could not be reached since %d days to check for new updates." : "განახლების სერვერი გალახლებების შესამოწმებლად %d დღე მიუწვდომელია.",
- "Please check the Nextcloud and server log files for errors." : "შეცდომებისთვის გთხოვთ შეამოწმოთ Nextcloud-ი სერვერის ლოგები.",
- "Update to %1$s is available." : "განახლება %1$s-ზე ხელმისაწვდომია.",
- "Update for %1$s to version %2$s is available." : "%1$s-ის განახლება %2$s ვერსიაზე ხელმისაწვდომია.",
- "Update for {app} to version %s is available." : "განახლება აპლიკაციისთვის {app} ვერსიაზე %s ხელმისაწვდომია.",
- "Update notification" : "შეტყობინების განახლება",
- "View in store" : "იხილეთ store-ში",
- "Open updater" : "განმანახლებლის ჩართვა",
- "Download now" : "ჩამოტვირთვა",
- "The update check is not yet finished. Please refresh the page." : "განახლება ჯერ არ დასრულებულა. გთხოვთ განაახლოთ გვერდი.",
- "Your version is up to date." : "თქვენ იყენბთ ბოლო ვერსიას.",
- "A non-default update server is in use to be checked for updates:" : "განახლებების შესამოწმებლად მოქმედია არა-საწყისი სერვერი:",
- "Update channel:" : "განახლების არხი:",
- "Notify members of the following groups about available updates:" : "შემდეგი ჯგუფის წევრებს გაუგზავნეთ შეტყობინება ხელმისაწვდომ განახლებებზე:",
- "Only notification for app updates are available." : "შეტყობინება ხელმისაწვდომია მხოლოდ აპლიკაციების განახლებებზე.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "არჩეული განახლების არხი მოძველებული სერვერის შესახებ საჭიროებს გამოყოფილ შეტყობინებებს.",
- "The selected update channel does not support updates of the server." : "არჩეული განახლების არხი არ უჭერს მხარს სერვერის განახლებას.",
- "Checked on {lastCheckedDate}" : "შემოწმდა {lastCheckedDate}-ზე",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "გთხოვთ დარწმუნდეთ რომ თქვენს config.php-ში <samp>appstoreenabled</samp>-ის მნიშვნელობა არაა false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Appstore-ს ვერ დავუკავშირდით ან არ დაბრუნდა პასუხი განახლებების შესახებ. განახლებები მოძებნეთ მექანიკურად ან დარწმუნდით, რომ თქვენს სერვერს გააჩნია წვდომა ინტერნეტთან და უკავშირდება appstore-ს.",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "გაითვალისწინეთ, ახალი რელიზი აქ გამოჩენამდე, საჭიროებს გარკვეულ დროს. ჩვენ მომხმარებლებისთვის ვუშვებთ ახალ ვერსიებს და ხანდახან პრობლემების პოვნისას ზოგიერთ ვერსიას ვტოვებთ."
-},
-"nplurals=2; plural=(n!=1);");
diff --git a/apps/updatenotification/l10n/ka_GE.json b/apps/updatenotification/l10n/ka_GE.json
deleted file mode 100644
index 5bb7759ef9e..00000000000
--- a/apps/updatenotification/l10n/ka_GE.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} ხელმისაწვდომია. მოიპოვეთ მეტი ინფორმაცია იმაზე, თუ როგორ განაახლოთ.",
- "Channel updated" : "განახლების შეჩერება",
- "Update notifications" : "განახლების შეტყობინებები",
- "The update server could not be reached since %d days to check for new updates." : "განახლების სერვერი გალახლებების შესამოწმებლად %d დღე მიუწვდომელია.",
- "Please check the Nextcloud and server log files for errors." : "შეცდომებისთვის გთხოვთ შეამოწმოთ Nextcloud-ი სერვერის ლოგები.",
- "Update to %1$s is available." : "განახლება %1$s-ზე ხელმისაწვდომია.",
- "Update for %1$s to version %2$s is available." : "%1$s-ის განახლება %2$s ვერსიაზე ხელმისაწვდომია.",
- "Update for {app} to version %s is available." : "განახლება აპლიკაციისთვის {app} ვერსიაზე %s ხელმისაწვდომია.",
- "Update notification" : "შეტყობინების განახლება",
- "View in store" : "იხილეთ store-ში",
- "Open updater" : "განმანახლებლის ჩართვა",
- "Download now" : "ჩამოტვირთვა",
- "The update check is not yet finished. Please refresh the page." : "განახლება ჯერ არ დასრულებულა. გთხოვთ განაახლოთ გვერდი.",
- "Your version is up to date." : "თქვენ იყენბთ ბოლო ვერსიას.",
- "A non-default update server is in use to be checked for updates:" : "განახლებების შესამოწმებლად მოქმედია არა-საწყისი სერვერი:",
- "Update channel:" : "განახლების არხი:",
- "Notify members of the following groups about available updates:" : "შემდეგი ჯგუფის წევრებს გაუგზავნეთ შეტყობინება ხელმისაწვდომ განახლებებზე:",
- "Only notification for app updates are available." : "შეტყობინება ხელმისაწვდომია მხოლოდ აპლიკაციების განახლებებზე.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "არჩეული განახლების არხი მოძველებული სერვერის შესახებ საჭიროებს გამოყოფილ შეტყობინებებს.",
- "The selected update channel does not support updates of the server." : "არჩეული განახლების არხი არ უჭერს მხარს სერვერის განახლებას.",
- "Checked on {lastCheckedDate}" : "შემოწმდა {lastCheckedDate}-ზე",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "გთხოვთ დარწმუნდეთ რომ თქვენს config.php-ში <samp>appstoreenabled</samp>-ის მნიშვნელობა არაა false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Appstore-ს ვერ დავუკავშირდით ან არ დაბრუნდა პასუხი განახლებების შესახებ. განახლებები მოძებნეთ მექანიკურად ან დარწმუნდით, რომ თქვენს სერვერს გააჩნია წვდომა ინტერნეტთან და უკავშირდება appstore-ს.",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "გაითვალისწინეთ, ახალი რელიზი აქ გამოჩენამდე, საჭიროებს გარკვეულ დროს. ჩვენ მომხმარებლებისთვის ვუშვებთ ახალ ვერსიებს და ხანდახან პრობლემების პოვნისას ზოგიერთ ვერსიას ვტოვებთ."
-},"pluralForm" :"nplurals=2; plural=(n!=1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ko.js b/apps/updatenotification/l10n/ko.js
index c09d3676e9b..b1eb24fd635 100644
--- a/apps/updatenotification/l10n/ko.js
+++ b/apps/updatenotification/l10n/ko.js
@@ -1,44 +1,50 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오.",
"Channel updated" : "채널 업데이트됨",
+ "Web updater is disabled" : "웹 업데이트가 비활성화 되었습니다",
"Update notifications" : "업데이트 알림",
"The update server could not be reached since %d days to check for new updates." : "업데이트 서버에 %d일 동안 접근할 수 없어서 새 업데이트를 확인할 수 없습니다.",
"Please check the Nextcloud and server log files for errors." : "Nextcloud 및 서버 로그에서 오류 정보를 확인하십시오.",
- "Update to %1$s is available." : "%1$s(으)로 업데이트할 수 있습니다.",
- "Update for %1$s to version %2$s is available." : "%1$s을(를) 버전 %2$s(으)로 업데이트할 수 있습니다.",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion}(으)로 업데이트할 수 있습니다.",
"Update for {app} to version %s is available." : "{app}을(를) 버전 %s(으)로 업데이트할 수 있습니다.",
"Update notification" : "업데이트 알림",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloud 업데이트 알림을 표시하고 업데이터에 SSO를 지원합니다.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "새 버전을 사용할 수 있음: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "메이저 업그레이드는 해당 버전의 첫 마이너 업데이트 혹은 그 후의 업데이트에 대해 제공됩니다. 새로운 버전은 단계적으로 적용되며, 문제가 발생할 경우 배포를 중단하고 다음 업데이트로 건너뛸 수 있습니다. 업데이트와 릴리즈 채널에 대한 자세한 정보는 다음의 링크를 참고하십시오. {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "{lastCheckedDate}에 확인함 - 변경내역 열기",
+ "Checking apps for compatible versions" : "호환되는 앱 업데이트 확인 중",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "config.php에서 <samp>appstoreenabled</samp> 설정이 false가 아닌지 확인하십시오.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "App Store에 연결할 수 없거나 반환된 업데이트 정보가 없습니다. 업데이트를 직접 검색하거나 App Store와의 인터넷 연결을 확인하십시오.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>모든</strong> 앱에 이 Nextcloud와 호환되는 버전이 있습니다.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong>개의 앱에 이 Nextcloud와 호환되는 버전이 없습니다."],
+ "Enterprise" : "엔터프라이즈",
+ "Stable" : "안정판",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "최신 안정 버전입니다. 일반 사용에 적합하며 항상 최신 주 버전으로 업데이트됩니다.",
+ "Beta" : "베타",
+ "A pre-release version only for testing new features, not for production environments." : "새로운 기능을 테스트하는 출시 이전 버전이며, 프로덕션 환경에 적합하지 않습니다.",
+ "Update" : "업데이트",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "실행 중인 버전이 더 이상 지원되지 않습니다. 빠른 시일 내에 지원되는 버전으로 업데이트하십시오.",
- "Apps missing updates" : "업데이트되지 않은 앱",
+ "Apps missing compatible version" : "호환되지 않는 앱",
"View in store" : "스토어에서 보기",
- "Apps with available updates" : "업데이트할 수 있는 앱",
+ "Apps with compatible version" : "호환되는 앱",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "계정이 100개 이상 존재하는 경우 웹 업데이터 사용을 권장하지 않습니다. 대신 명령행 업데이터를 사용하십시오. ",
"Open updater" : "업데이터 열기",
"Download now" : "지금 다운로드",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "웹 업데이터가 비활성화 되었습니다. 명령행 업데이터 또는 이 인스턴스의 설치 방식(예: Docker)에 적합한 업데이트 방법을 이용하십시오.",
"What's new?" : "새로운 항목",
+ "View changelog" : "변경 기록 확인",
"The update check is not yet finished. Please refresh the page." : "업데이트 확인이 아직 끝나지 않았습니다. 페이지를 새로 고치십시오.",
"Your version is up to date." : "최신 버전을 사용하고 있습니다.",
"A non-default update server is in use to be checked for updates:" : "기본 업데이트 서버가 아닌 곳에서 업데이트를 확인하고 있음:",
- "Update channel:" : "업데이트 채널:",
+ "Update channel" : "업데이트 채널",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "이곳에서 변경한 업데이트 채널은 앱 업데이트에도 동일하게 적용됩니다. 예) 예를 들어 이곳에서 베타 채널로 변경할 경우, 앱 관리 페이지에서 각 앱에 대한 베타 업데이트가 제공됩니다.",
+ "Current update channel:" : "현재 업데이트 채널:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "항상 새 버전으로 업그레이드할 수 있지만, 더 안정적인 버전으로 다운그레이드할 수는 없습니다.",
"Notify members of the following groups about available updates:" : "다음 그룹 구성원에게 업데이트 알림 전달:",
- "Only notification for app updates are available." : "앱 업데이트 알림만 사용할 수 있습니다.",
+ "No groups" : "그룹 없음",
+ "Only notifications for app updates are available." : "앱 업데이트에 대한 알림만 사용할 수 있습니다.",
"The selected update channel makes dedicated notifications for the server obsolete." : "선택한 업데이트 채널은 서버 알림을 사용하지 않습니다.",
"The selected update channel does not support updates of the server." : "선택한 업데이트 채널은 서버 업데이트를 지원하지 않습니다.",
- "A new version is available: <strong>{newVersionString}</strong>" : "새 버전을 사용할 수 있음: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "{lastCheckedDate}에 확인함",
- "Checking apps for compatible updates" : "호환되는 앱 업데이트 확인 중",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "config.php에서 <samp>appstoreenabled</samp> 설정이 false가 아닌지 확인하십시오.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "앱 스토어에 연결할 수 없거나 앱 스토어에서 업데이트 정보를 반환하지 않았습니다. 업데이트를 직접 검색하거나 서버가 인터넷에 연결되어 있고 앱 스토어에 접근할 수 있는지 확인하십시오.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>모든</strong> 앱에 이 버전과 호환되는 업데이트가 있음",
- "View changelog" : "변경 기록 확인",
- "Stable" : "안정판",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "최신 안정 버전입니다. 일반 사용에 적합하며 항상 최신 주 버전으로 업데이트됩니다.",
- "Beta" : "베타",
- "A pre-release version only for testing new features, not for production environments." : "새로운 기능을 테스트하는 출시 이전 버전이며, 프로덕션 환경에 적합하지 않습니다.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["앱 <strong>%n</strong>개는 이 버전과 호환되는 업데이트가 없음"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "새 릴리스가 발표된 후 여기에 표시되기까지 시간이 소요됩니다. 새 버전은 단계적으로 적용되고 있으며 문제가 발생한 경우 버전을 건너뛸 수도 있습니다."
+ "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오."
},
"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/ko.json b/apps/updatenotification/l10n/ko.json
index 378b7417bb9..aa544165dfe 100644
--- a/apps/updatenotification/l10n/ko.json
+++ b/apps/updatenotification/l10n/ko.json
@@ -1,42 +1,48 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오.",
"Channel updated" : "채널 업데이트됨",
+ "Web updater is disabled" : "웹 업데이트가 비활성화 되었습니다",
"Update notifications" : "업데이트 알림",
"The update server could not be reached since %d days to check for new updates." : "업데이트 서버에 %d일 동안 접근할 수 없어서 새 업데이트를 확인할 수 없습니다.",
"Please check the Nextcloud and server log files for errors." : "Nextcloud 및 서버 로그에서 오류 정보를 확인하십시오.",
- "Update to %1$s is available." : "%1$s(으)로 업데이트할 수 있습니다.",
- "Update for %1$s to version %2$s is available." : "%1$s을(를) 버전 %2$s(으)로 업데이트할 수 있습니다.",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion}(으)로 업데이트할 수 있습니다.",
"Update for {app} to version %s is available." : "{app}을(를) 버전 %s(으)로 업데이트할 수 있습니다.",
"Update notification" : "업데이트 알림",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloud 업데이트 알림을 표시하고 업데이터에 SSO를 지원합니다.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "새 버전을 사용할 수 있음: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "메이저 업그레이드는 해당 버전의 첫 마이너 업데이트 혹은 그 후의 업데이트에 대해 제공됩니다. 새로운 버전은 단계적으로 적용되며, 문제가 발생할 경우 배포를 중단하고 다음 업데이트로 건너뛸 수 있습니다. 업데이트와 릴리즈 채널에 대한 자세한 정보는 다음의 링크를 참고하십시오. {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "{lastCheckedDate}에 확인함 - 변경내역 열기",
+ "Checking apps for compatible versions" : "호환되는 앱 업데이트 확인 중",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "config.php에서 <samp>appstoreenabled</samp> 설정이 false가 아닌지 확인하십시오.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "App Store에 연결할 수 없거나 반환된 업데이트 정보가 없습니다. 업데이트를 직접 검색하거나 App Store와의 인터넷 연결을 확인하십시오.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>모든</strong> 앱에 이 Nextcloud와 호환되는 버전이 있습니다.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong>개의 앱에 이 Nextcloud와 호환되는 버전이 없습니다."],
+ "Enterprise" : "엔터프라이즈",
+ "Stable" : "안정판",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "최신 안정 버전입니다. 일반 사용에 적합하며 항상 최신 주 버전으로 업데이트됩니다.",
+ "Beta" : "베타",
+ "A pre-release version only for testing new features, not for production environments." : "새로운 기능을 테스트하는 출시 이전 버전이며, 프로덕션 환경에 적합하지 않습니다.",
+ "Update" : "업데이트",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "실행 중인 버전이 더 이상 지원되지 않습니다. 빠른 시일 내에 지원되는 버전으로 업데이트하십시오.",
- "Apps missing updates" : "업데이트되지 않은 앱",
+ "Apps missing compatible version" : "호환되지 않는 앱",
"View in store" : "스토어에서 보기",
- "Apps with available updates" : "업데이트할 수 있는 앱",
+ "Apps with compatible version" : "호환되는 앱",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "계정이 100개 이상 존재하는 경우 웹 업데이터 사용을 권장하지 않습니다. 대신 명령행 업데이터를 사용하십시오. ",
"Open updater" : "업데이터 열기",
"Download now" : "지금 다운로드",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "웹 업데이터가 비활성화 되었습니다. 명령행 업데이터 또는 이 인스턴스의 설치 방식(예: Docker)에 적합한 업데이트 방법을 이용하십시오.",
"What's new?" : "새로운 항목",
+ "View changelog" : "변경 기록 확인",
"The update check is not yet finished. Please refresh the page." : "업데이트 확인이 아직 끝나지 않았습니다. 페이지를 새로 고치십시오.",
"Your version is up to date." : "최신 버전을 사용하고 있습니다.",
"A non-default update server is in use to be checked for updates:" : "기본 업데이트 서버가 아닌 곳에서 업데이트를 확인하고 있음:",
- "Update channel:" : "업데이트 채널:",
+ "Update channel" : "업데이트 채널",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "이곳에서 변경한 업데이트 채널은 앱 업데이트에도 동일하게 적용됩니다. 예) 예를 들어 이곳에서 베타 채널로 변경할 경우, 앱 관리 페이지에서 각 앱에 대한 베타 업데이트가 제공됩니다.",
+ "Current update channel:" : "현재 업데이트 채널:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "항상 새 버전으로 업그레이드할 수 있지만, 더 안정적인 버전으로 다운그레이드할 수는 없습니다.",
"Notify members of the following groups about available updates:" : "다음 그룹 구성원에게 업데이트 알림 전달:",
- "Only notification for app updates are available." : "앱 업데이트 알림만 사용할 수 있습니다.",
+ "No groups" : "그룹 없음",
+ "Only notifications for app updates are available." : "앱 업데이트에 대한 알림만 사용할 수 있습니다.",
"The selected update channel makes dedicated notifications for the server obsolete." : "선택한 업데이트 채널은 서버 알림을 사용하지 않습니다.",
"The selected update channel does not support updates of the server." : "선택한 업데이트 채널은 서버 업데이트를 지원하지 않습니다.",
- "A new version is available: <strong>{newVersionString}</strong>" : "새 버전을 사용할 수 있음: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "{lastCheckedDate}에 확인함",
- "Checking apps for compatible updates" : "호환되는 앱 업데이트 확인 중",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "config.php에서 <samp>appstoreenabled</samp> 설정이 false가 아닌지 확인하십시오.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "앱 스토어에 연결할 수 없거나 앱 스토어에서 업데이트 정보를 반환하지 않았습니다. 업데이트를 직접 검색하거나 서버가 인터넷에 연결되어 있고 앱 스토어에 접근할 수 있는지 확인하십시오.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>모든</strong> 앱에 이 버전과 호환되는 업데이트가 있음",
- "View changelog" : "변경 기록 확인",
- "Stable" : "안정판",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "최신 안정 버전입니다. 일반 사용에 적합하며 항상 최신 주 버전으로 업데이트됩니다.",
- "Beta" : "베타",
- "A pre-release version only for testing new features, not for production environments." : "새로운 기능을 테스트하는 출시 이전 버전이며, 프로덕션 환경에 적합하지 않습니다.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["앱 <strong>%n</strong>개는 이 버전과 호환되는 업데이트가 없음"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "새 릴리스가 발표된 후 여기에 표시되기까지 시간이 소요됩니다. 새 버전은 단계적으로 적용되고 있으며 문제가 발생한 경우 버전을 건너뛸 수도 있습니다."
+ "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/lb.js b/apps/updatenotification/l10n/lb.js
deleted file mode 100644
index e877f169fc4..00000000000
--- a/apps/updatenotification/l10n/lb.js
+++ /dev/null
@@ -1,15 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Notifikatiounen aktualiséieren",
- "{version} is available. Get more information on how to update." : "{Versioun} ass verfügbar. Kréi méi Informatiounen doriwwer wéi d'Aktualiséierung ofleeft.",
- "Updated channel" : "Aktualiséierte Kanal",
- "ownCloud core" : "ownCloud Kär",
- "Update for %1$s to version %2$s is available." : "D'Aktualiséierung fir %1$s op d'Versioun %2$s ass verfügbar.",
- "A new version is available: %s" : "Eng nei Versioun ass verfügbar: %s",
- "Open updater" : "Den Aktualiséierungsprogramm opmaachen",
- "Your version is up to date." : "Déng Versioun ass aktualiséiert.",
- "Checked on %s" : "Gepréift um %s",
- "Update channel:" : "Kanal updaten:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/lb.json b/apps/updatenotification/l10n/lb.json
deleted file mode 100644
index a43883f6c3e..00000000000
--- a/apps/updatenotification/l10n/lb.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{ "translations": {
- "Update notifications" : "Notifikatiounen aktualiséieren",
- "{version} is available. Get more information on how to update." : "{Versioun} ass verfügbar. Kréi méi Informatiounen doriwwer wéi d'Aktualiséierung ofleeft.",
- "Updated channel" : "Aktualiséierte Kanal",
- "ownCloud core" : "ownCloud Kär",
- "Update for %1$s to version %2$s is available." : "D'Aktualiséierung fir %1$s op d'Versioun %2$s ass verfügbar.",
- "A new version is available: %s" : "Eng nei Versioun ass verfügbar: %s",
- "Open updater" : "Den Aktualiséierungsprogramm opmaachen",
- "Your version is up to date." : "Déng Versioun ass aktualiséiert.",
- "Checked on %s" : "Gepréift um %s",
- "Update channel:" : "Kanal updaten:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/lt_LT.js b/apps/updatenotification/l10n/lt_LT.js
index a0e992aadeb..b562b576e29 100644
--- a/apps/updatenotification/l10n/lt_LT.js
+++ b/apps/updatenotification/l10n/lt_LT.js
@@ -1,42 +1,37 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai kaip atnaujinti.",
"Channel updated" : "Kanalas atnaujintas",
"Update notifications" : "Atnaujinimų pranešimai",
"The update server could not be reached since %d days to check for new updates." : " Atnaujinimo serveris nepasiekiamas %d dienas.",
"Please check the Nextcloud and server log files for errors." : "Prašome patikrinti Nextcloud ir serverio žurnalų įrašus apie galimas klaidas.",
- "Update to %1$s is available." : "Yra prieinamas atnaujinimas į %1$s.",
- "Update for %1$s to version %2$s is available." : "Yra prieinamas %1$s atnaujinimas į versiją %2$s.",
+ "Update to {serverAndVersion} is available." : "Yra prieinamas atnaujinimas į {serverAndVersion}.",
"Update for {app} to version %s is available." : "Yra prieinamas {app} atnaujinimas į versiją %s.",
"Update notification" : "Atnaujinimų pranešimas",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Yra prieinama nauja versija: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Tikrinamos suderinamos programėlių versijos",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Įsitikinkite, kad jūsų config.php nenustato <samp>appstoreenabled</samp> į neigiamą reikšmę.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> programėlė neturi su šia Nextcloud versija suderinamos versijos.","<strong>%n</strong> programėlės neturi su šia Nextcloud versija suderinamų versijų.","<strong>%n</strong> programėlių neturi su šia Nextcloud versija suderinamų versijų.","<strong>%n</strong> programėlė neturi su šia Nextcloud versija suderinamų versijų."],
+ "Stable" : "Stabilus",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Paskiausia stabili versija. Tinka įprastam naudojimui ir visada bus atnaujinama į naujausią pagrindinę versiją.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Išankstinės laidos versija, skirta tik naujų ypatybių išbandymui, o ne darbinėms aplinkoms.",
+ "Update" : "Atnaujinti",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Jūsų naudojama versija daugiau nebeprižiūrima. Esant galimybei, kaip įmanoma greičiau atnaujinkite į palaikomą versiją.",
- "Apps missing updates" : "Programėlės, kurioms trūksta atnaujinimų",
+ "Apps missing compatible version" : "Programėlės be suderinamos versijos",
"View in store" : "Rodyti parduotuvėje",
- "Apps with available updates" : "Programėlės su prieinamais atnaujinimais",
+ "Apps with compatible version" : "Programėlės su suderinama versija",
"Open updater" : "Atverti atnaujinimo programą",
"Download now" : "Atsisiųsti dabar",
"What's new?" : "Kas naujo?",
+ "View changelog" : "Rodyti keitinių žurnalą",
"The update check is not yet finished. Please refresh the page." : "Atnaujinimų patikrinimas dar neužbaigtas. Prašome įkelti puslapį iš naujo.",
"Your version is up to date." : "Jūsų versija yra naujausia.",
"A non-default update server is in use to be checked for updates:" : "Atnaujinimų tikrinimui yra naudojamas ne numatytasis atnaujinimų serveris: ",
- "Update channel:" : "Atnaujinimo kanalas:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Visada galite atnaujinti į naujesnę versiją. Tačiau niekada negalite sendinti į stabilesnę versiją.",
"Notify members of the following groups about available updates:" : "Apie galimus atnaujinimus informuoti narius iš grupių:",
- "Only notification for app updates are available." : "Yra prieinami tik pranešimai apie programėlių atnaujinimus.",
+ "Only notifications for app updates are available." : "Yra prieinami tik pranešimai apie programėlių atnaujinimus.",
"The selected update channel does not support updates of the server." : "Pasirinktas kanalas nepalaiko serverio atnaujinimų.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Yra prieinama nauja versija: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Tikrinta {lastCheckedDate}",
- "Checking apps for compatible updates" : "Tikrinama, ar yra suderinamų programėlių atnaujinimų",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Įsitikinkite, kad jūsų config.php nenustato <samp>appstoreenabled</samp> į neigiamą reikšmę.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nepavyko prisijungti prie programėlių parduotuvės arba programėlių parduotuvė negrąžino visiškai jokių atnaujinimų. Atlikite rankinę atnaujinimų paiešką arba įsitikinkite, kad jūsų serveris turi prieigą prie interneto ir gali prisijungti prie programėlių parduotuvės.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Visos</strong> programėlės turi šiai versijai prieinamą atnaujinimą",
- "View changelog" : "Rodyti keitinių žurnalą",
- "Stable" : "Stabilus",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Paskiausia stabili versija. Tinka įprastam naudojimui ir visada bus atnaujinama į naujausią pagrindinę versiją.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Išankstinės laidos versija, skirta tik naujų ypatybių išbandymui, o ne darbinėms aplinkoms.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> programėlė neturi šiai versijai prieinamo atnaujinimo","<strong>%n</strong> programėlės neturi šiai versijai prieinamo atnaujinimo","<strong>%n</strong> programėlių neturi šiai versijai prieinamo atnaujinimo","<strong>%n</strong> programėlė neturi šiai versijai prieinamo atnaujinimo"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Turėkite omenyje, kad po naujos versijos išleidimo, gali praeiti šiek tiek laiko, kol ji čia taps matoma. Mes išleidžiame naujas versijas paskirstytas pagal laiką savo naudotojams ir, kartais, pastebėjus klaidas, praleidžiame versiją."
+ "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai, kaip atnaujinti."
},
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/updatenotification/l10n/lt_LT.json b/apps/updatenotification/l10n/lt_LT.json
index 5cc84ad4198..9d21ce59aaf 100644
--- a/apps/updatenotification/l10n/lt_LT.json
+++ b/apps/updatenotification/l10n/lt_LT.json
@@ -1,40 +1,35 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai kaip atnaujinti.",
"Channel updated" : "Kanalas atnaujintas",
"Update notifications" : "Atnaujinimų pranešimai",
"The update server could not be reached since %d days to check for new updates." : " Atnaujinimo serveris nepasiekiamas %d dienas.",
"Please check the Nextcloud and server log files for errors." : "Prašome patikrinti Nextcloud ir serverio žurnalų įrašus apie galimas klaidas.",
- "Update to %1$s is available." : "Yra prieinamas atnaujinimas į %1$s.",
- "Update for %1$s to version %2$s is available." : "Yra prieinamas %1$s atnaujinimas į versiją %2$s.",
+ "Update to {serverAndVersion} is available." : "Yra prieinamas atnaujinimas į {serverAndVersion}.",
"Update for {app} to version %s is available." : "Yra prieinamas {app} atnaujinimas į versiją %s.",
"Update notification" : "Atnaujinimų pranešimas",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Yra prieinama nauja versija: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Tikrinamos suderinamos programėlių versijos",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Įsitikinkite, kad jūsų config.php nenustato <samp>appstoreenabled</samp> į neigiamą reikšmę.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> programėlė neturi su šia Nextcloud versija suderinamos versijos.","<strong>%n</strong> programėlės neturi su šia Nextcloud versija suderinamų versijų.","<strong>%n</strong> programėlių neturi su šia Nextcloud versija suderinamų versijų.","<strong>%n</strong> programėlė neturi su šia Nextcloud versija suderinamų versijų."],
+ "Stable" : "Stabilus",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Paskiausia stabili versija. Tinka įprastam naudojimui ir visada bus atnaujinama į naujausią pagrindinę versiją.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Išankstinės laidos versija, skirta tik naujų ypatybių išbandymui, o ne darbinėms aplinkoms.",
+ "Update" : "Atnaujinti",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Jūsų naudojama versija daugiau nebeprižiūrima. Esant galimybei, kaip įmanoma greičiau atnaujinkite į palaikomą versiją.",
- "Apps missing updates" : "Programėlės, kurioms trūksta atnaujinimų",
+ "Apps missing compatible version" : "Programėlės be suderinamos versijos",
"View in store" : "Rodyti parduotuvėje",
- "Apps with available updates" : "Programėlės su prieinamais atnaujinimais",
+ "Apps with compatible version" : "Programėlės su suderinama versija",
"Open updater" : "Atverti atnaujinimo programą",
"Download now" : "Atsisiųsti dabar",
"What's new?" : "Kas naujo?",
+ "View changelog" : "Rodyti keitinių žurnalą",
"The update check is not yet finished. Please refresh the page." : "Atnaujinimų patikrinimas dar neužbaigtas. Prašome įkelti puslapį iš naujo.",
"Your version is up to date." : "Jūsų versija yra naujausia.",
"A non-default update server is in use to be checked for updates:" : "Atnaujinimų tikrinimui yra naudojamas ne numatytasis atnaujinimų serveris: ",
- "Update channel:" : "Atnaujinimo kanalas:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Visada galite atnaujinti į naujesnę versiją. Tačiau niekada negalite sendinti į stabilesnę versiją.",
"Notify members of the following groups about available updates:" : "Apie galimus atnaujinimus informuoti narius iš grupių:",
- "Only notification for app updates are available." : "Yra prieinami tik pranešimai apie programėlių atnaujinimus.",
+ "Only notifications for app updates are available." : "Yra prieinami tik pranešimai apie programėlių atnaujinimus.",
"The selected update channel does not support updates of the server." : "Pasirinktas kanalas nepalaiko serverio atnaujinimų.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Yra prieinama nauja versija: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Tikrinta {lastCheckedDate}",
- "Checking apps for compatible updates" : "Tikrinama, ar yra suderinamų programėlių atnaujinimų",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Įsitikinkite, kad jūsų config.php nenustato <samp>appstoreenabled</samp> į neigiamą reikšmę.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nepavyko prisijungti prie programėlių parduotuvės arba programėlių parduotuvė negrąžino visiškai jokių atnaujinimų. Atlikite rankinę atnaujinimų paiešką arba įsitikinkite, kad jūsų serveris turi prieigą prie interneto ir gali prisijungti prie programėlių parduotuvės.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Visos</strong> programėlės turi šiai versijai prieinamą atnaujinimą",
- "View changelog" : "Rodyti keitinių žurnalą",
- "Stable" : "Stabilus",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Paskiausia stabili versija. Tinka įprastam naudojimui ir visada bus atnaujinama į naujausią pagrindinę versiją.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Išankstinės laidos versija, skirta tik naujų ypatybių išbandymui, o ne darbinėms aplinkoms.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> programėlė neturi šiai versijai prieinamo atnaujinimo","<strong>%n</strong> programėlės neturi šiai versijai prieinamo atnaujinimo","<strong>%n</strong> programėlių neturi šiai versijai prieinamo atnaujinimo","<strong>%n</strong> programėlė neturi šiai versijai prieinamo atnaujinimo"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Turėkite omenyje, kad po naujos versijos išleidimo, gali praeiti šiek tiek laiko, kol ji čia taps matoma. Mes išleidžiame naujas versijas paskirstytas pagal laiką savo naudotojams ir, kartais, pastebėjus klaidas, praleidžiame versiją."
+ "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai, kaip atnaujinti."
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/lv.js b/apps/updatenotification/l10n/lv.js
deleted file mode 100644
index 6d649177409..00000000000
--- a/apps/updatenotification/l10n/lv.js
+++ /dev/null
@@ -1,25 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} ir pieejama. Iegūstiet vairāk informācijas par to, kā atjaunināt.",
- "Update notifications" : "Atjauninājumu paziņojumi",
- "Channel updated" : "Kanāls atjaunots",
- "Update to %1$s is available." : "Atjauninājums uz %1$s ir pieejams.",
- "Update for %1$s to version %2$s is available." : "Atjauninājums %1$s uz versiju %2$s ir pieejams.",
- "Update for {app} to version %s is available." : "Atjauninājums {app} uz versiju %s ir pieejams.",
- "Open updater" : "Atveriet atjauninātāju",
- "Your version is up to date." : "Jums ir jaunākā versija.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Jūs vienmēr varat atjaunināt to uz jaunāku versiju / eksperimentālo versiju. Bet nekad nevar atgriezties uz stabilāku versiju.",
- "Notify members of the following groups about available updates:" : "Paziņot šo grupu locekļiem par pieejamajiem atjauninājumiem:",
- "Only notification for app updates are available." : "Tikai paziņojumi par programmu atjauninājumiem ir pieejami.",
- "The selected update channel does not support updates of the server." : "Izvēlēto atjauninājumu kanāls neatbalsta servera atjauninājumus.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Ir pieejama jauna versija: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Pārbaudīts {lastCheckedDate}",
- "Could not start updater, please try the manual update" : "Nevar sākt atjauninājumu, lūdzu, mēģiniet manuālo atjauninājumu",
- "A new version is available: %s" : "Ir pieejama jauna versija: %s",
- "Download now" : "Lejupielādēt tagad",
- "Checked on %s" : "Pārbaudīts %s",
- "Update channel:" : "Atjaunināt kanālu:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Izvēlētais atjauninājumu kanāls rādīs īpašus paziņojumus ja serveris novecojis."
-},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/updatenotification/l10n/lv.json b/apps/updatenotification/l10n/lv.json
deleted file mode 100644
index a40a3fbde1a..00000000000
--- a/apps/updatenotification/l10n/lv.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} ir pieejama. Iegūstiet vairāk informācijas par to, kā atjaunināt.",
- "Update notifications" : "Atjauninājumu paziņojumi",
- "Channel updated" : "Kanāls atjaunots",
- "Update to %1$s is available." : "Atjauninājums uz %1$s ir pieejams.",
- "Update for %1$s to version %2$s is available." : "Atjauninājums %1$s uz versiju %2$s ir pieejams.",
- "Update for {app} to version %s is available." : "Atjauninājums {app} uz versiju %s ir pieejams.",
- "Open updater" : "Atveriet atjauninātāju",
- "Your version is up to date." : "Jums ir jaunākā versija.",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Jūs vienmēr varat atjaunināt to uz jaunāku versiju / eksperimentālo versiju. Bet nekad nevar atgriezties uz stabilāku versiju.",
- "Notify members of the following groups about available updates:" : "Paziņot šo grupu locekļiem par pieejamajiem atjauninājumiem:",
- "Only notification for app updates are available." : "Tikai paziņojumi par programmu atjauninājumiem ir pieejami.",
- "The selected update channel does not support updates of the server." : "Izvēlēto atjauninājumu kanāls neatbalsta servera atjauninājumus.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Ir pieejama jauna versija: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Pārbaudīts {lastCheckedDate}",
- "Could not start updater, please try the manual update" : "Nevar sākt atjauninājumu, lūdzu, mēģiniet manuālo atjauninājumu",
- "A new version is available: %s" : "Ir pieejama jauna versija: %s",
- "Download now" : "Lejupielādēt tagad",
- "Checked on %s" : "Pārbaudīts %s",
- "Update channel:" : "Atjaunināt kanālu:",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Izvēlētais atjauninājumu kanāls rādīs īpašus paziņojumus ja serveris novecojis."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/mk.js b/apps/updatenotification/l10n/mk.js
index 509d0b29b6e..cfd50b7a030 100644
--- a/apps/updatenotification/l10n/mk.js
+++ b/apps/updatenotification/l10n/mk.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Достапна е нова верзија {version}. Видете ги информациите како да ја ажурирате.",
"Channel updated" : "Каналот е ажуриран",
+ "Web updater is disabled" : "Оневозможено е WEB ажурирање",
+ "App updated" : "Ажурирана е апликација",
+ "See what's new" : "Што е ново",
+ "{app} updated to version {version}" : "{app} ажурирана на верзија {version}",
"Update notifications" : "Известувања за ажурирање",
"The update server could not be reached since %d days to check for new updates." : "Серверот за ажурирање не е проверен %d дена.",
"Please check the Nextcloud and server log files for errors." : "Проверете ги записите во Cloud-от и записите во серверот за грешките.",
- "Update to %1$s is available." : "Достапно е аурирање во верзија %1$s.",
- "Update for %1$s to version %2$s is available." : "Достапно е ажурирање од %1$s во верзија %2$s.",
+ "Update to {serverAndVersion} is available." : "Достапно е ажурирање во {serverAndVersion} верзија.",
"Update for {app} to version %s is available." : "Достапно е ажурирање за {app} во верзија %s.",
"Update notification" : "Известување за ажурирање",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Прикажува известувања за ажурирање на Nextcloud и овозможува SSO за надградувачот.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Прикажува известувања за ажурирање и овозможува SSO за надградувачот.",
+ "Give feedback" : "Дајте повратни информации",
+ "Get started" : "Започнете",
+ "No changelog available" : "Нема достапен дневник за промени",
+ "What's new in {app} {version}" : "Што е ново во {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Достапна е нова верзија: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Можно е да треба некое време додека новата верзија се прикаже овде. Ние испорачуваме нови до нашите корисници но од време на време некој верзии ги прескокнуваме поради пројандени проблеми во истите. Повеќе информации може да се пронајдат на {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Проверено на {lastCheckedDate} - Отвори дневник за промени",
+ "Checking apps for compatible versions" : "Проверка за компатибилност на апликациите со новата верзија",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Бидете сигурни дека во config.php датотеката параматарот <samp>appstoreenabled</samp> е поставен на false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Неможе да се поврзе со appstore или одговорот е дека нема ажурирање. Пребарајте рачно за ажурирање или бидете сигурни дека серверот има пристап до интернет и може да се поврзе со продавницата.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Сите</strong> апликации се компатибилни за оваа верзија",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["1 апликација нема компатибилност со оваа веријза","<strong>%n</strong> апликации немаат компатибилност со оваа веријза"],
+ "Enterprise" : "Професионален",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За професионална употреба. Овозможува секогаш најново ниво на ажурирање, но нема веднаш да се ажурира на следното големо издание. Ова ажурирање се случува откако Nextcloud GmbH ќе направи дополнително тестирање за големи и критични сервери. Овој канал е достапен само за клиентите и го имаат пакетот Nextcloud Enterprise.",
+ "Stable" : "Стабилна",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Најнова стабилна верзија. Корисно за редовна употреба и секогаш ќе се ажурира до последната најнова верзија.",
+ "Beta" : "Бета",
+ "A pre-release version only for testing new features, not for production environments." : "Неиздадена верзија само за тестирање на новите можности, не е за редовна употреба.",
+ "Update" : "Ажурирај",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Верзијата која ја користе повеќе не се одржува. Ве молиме што поскоро да ја ажурирајте верзија во понова.",
- "Apps missing updates" : "Недостасуваат ажурирања за апликации",
+ "Apps missing compatible version" : "Апликации на кој им недостасува компатибилност",
"View in store" : "Преглед во продавницата за апликации",
- "Apps with available updates" : "Апликации со достапни ажурирања",
+ "Apps with compatible version" : "Апликации со компатибилни верзии",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Имајте на ум дека веб ажурирачот не е препорачан за повеќе од 100 корисници! Наместо тоа, користете го ажурирачот на командната линија!",
"Open updater" : "Стартувај го надградувачот",
"Download now" : "Преземи",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Веб-ажурирањето е оневозможено. Користете го ажурирањето од командната линија или соодветниот механизам за ажурирање за вашиот метод на инсталација (на пр. Docker pull) за ажурирање.",
"What's new?" : "Што е ново",
+ "View changelog" : "Видете ги проммените",
"The update check is not yet finished. Please refresh the page." : "Сеуште нема извшено проверка за ажурирање, Ве молиме рефреширајте ја страната.",
"Your version is up to date." : "Вашата верзија е ажурирана.",
"A non-default update server is in use to be checked for updates:" : "Нестандарден сервер е поставен за проверка за ажурирање:",
- "Update channel:" : "Канал за ажурирање:",
+ "Update channel" : "Канал за ажурирање",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Промената на каналот за ажурирање влијае на страницата за управување со апликации. На пр. откако ќе се префрлите на бета каналот, ќе ви бидат понудени ажурирања на бета апликации на страницата за управување со апликации.",
+ "Current update channel:" : "Моментален канал за ажурирање:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Секогаш можете да ажурирате на нова верзија. Но никогаш нема да можете да се вратите на постара верзија.",
"Notify members of the following groups about available updates:" : "Извести ги членовите на овие групи за достапните ажурирања:",
- "Only notification for app updates are available." : "Известувања само за достапни ажурирања на апликации.",
+ "No groups" : "Нема групи",
+ "Only notifications for app updates are available." : "Известувања само за достапни ажурирања на апликации.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Избраниот канал за ажурирање ќе овозможи известувања за застарениот сервер.",
"The selected update channel does not support updates of the server." : "Избраниот канал за ажурирање не поддржува ажурирање за серверот.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Достапна е нова верзија: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Проверено на {lastCheckedDate}",
- "Checking apps for compatible updates" : "Проверка за компатибилност на апликациите со новата верзија",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Бидете сигурни дека во config.php датотеката параматарот <samp>appstoreenabled</samp> е поставен на false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Неможе да се поврзе со appstore или одговорот е дека нема ажурирање. Пребарајте рачно за ажурирање или бидете сигурни дека серверот има пристап до интернет и може да се поврзе со продавницата.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Сите</strong> апликации имаат ажурирања за оваа верзија",
- "View changelog" : "Видете ги проммените",
- "Enterprise" : "Професионален",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За професионална употреба. Овозможува секогаш најново ниво на ажурирање, но нема веднаш да се ажурира на следното големо издание. Ова ажурирање се случува откако Nextcloud GmbH ќе направи дополнително тестирање за големи и критични сервери. Овој канал е достапен само за клиентите и го имаат пакетот Nextcloud Enterprise.",
- "Stable" : "Стабилна",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Најнова стабилна верзија. Корисно за редовна употреба и секогаш ќе се ажурира до последната најнова верзија.",
- "Beta" : "Бета",
- "A pre-release version only for testing new features, not for production environments." : "Неиздадена верзија само за тестирање на новите можности, не е за редовна употреба.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> апликација нема ажурирање за оваа веријза","<strong>%n</strong> апликации немаат ажурирања за оваа веријза"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Можно е да треба некое време додека новата верзија се прикаже овде. Ние испорачуваме нови до нашите корисници но од време на време некој верзии ги прескокнуваме поради пројандени проблеми во истите."
+ "Changelog for app {app}" : "Дневник на промени за апликацијата {app}",
+ "What's new in {app} version {version}" : "Што е ново во {app} верзија {version}",
+ "{version} is available. Get more information on how to update." : "Достапна е нова верзија {version}. Видете ги информациите како да ја ажурирате."
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/updatenotification/l10n/mk.json b/apps/updatenotification/l10n/mk.json
index b444ba37c1c..c6eb94b7e0d 100644
--- a/apps/updatenotification/l10n/mk.json
+++ b/apps/updatenotification/l10n/mk.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Достапна е нова верзија {version}. Видете ги информациите како да ја ажурирате.",
"Channel updated" : "Каналот е ажуриран",
+ "Web updater is disabled" : "Оневозможено е WEB ажурирање",
+ "App updated" : "Ажурирана е апликација",
+ "See what's new" : "Што е ново",
+ "{app} updated to version {version}" : "{app} ажурирана на верзија {version}",
"Update notifications" : "Известувања за ажурирање",
"The update server could not be reached since %d days to check for new updates." : "Серверот за ажурирање не е проверен %d дена.",
"Please check the Nextcloud and server log files for errors." : "Проверете ги записите во Cloud-от и записите во серверот за грешките.",
- "Update to %1$s is available." : "Достапно е аурирање во верзија %1$s.",
- "Update for %1$s to version %2$s is available." : "Достапно е ажурирање од %1$s во верзија %2$s.",
+ "Update to {serverAndVersion} is available." : "Достапно е ажурирање во {serverAndVersion} верзија.",
"Update for {app} to version %s is available." : "Достапно е ажурирање за {app} во верзија %s.",
"Update notification" : "Известување за ажурирање",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Прикажува известувања за ажурирање на Nextcloud и овозможува SSO за надградувачот.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Прикажува известувања за ажурирање и овозможува SSO за надградувачот.",
+ "Give feedback" : "Дајте повратни информации",
+ "Get started" : "Започнете",
+ "No changelog available" : "Нема достапен дневник за промени",
+ "What's new in {app} {version}" : "Што е ново во {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Достапна е нова верзија: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Можно е да треба некое време додека новата верзија се прикаже овде. Ние испорачуваме нови до нашите корисници но од време на време некој верзии ги прескокнуваме поради пројандени проблеми во истите. Повеќе информации може да се пронајдат на {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Проверено на {lastCheckedDate} - Отвори дневник за промени",
+ "Checking apps for compatible versions" : "Проверка за компатибилност на апликациите со новата верзија",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Бидете сигурни дека во config.php датотеката параматарот <samp>appstoreenabled</samp> е поставен на false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Неможе да се поврзе со appstore или одговорот е дека нема ажурирање. Пребарајте рачно за ажурирање или бидете сигурни дека серверот има пристап до интернет и може да се поврзе со продавницата.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Сите</strong> апликации се компатибилни за оваа верзија",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["1 апликација нема компатибилност со оваа веријза","<strong>%n</strong> апликации немаат компатибилност со оваа веријза"],
+ "Enterprise" : "Професионален",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За професионална употреба. Овозможува секогаш најново ниво на ажурирање, но нема веднаш да се ажурира на следното големо издание. Ова ажурирање се случува откако Nextcloud GmbH ќе направи дополнително тестирање за големи и критични сервери. Овој канал е достапен само за клиентите и го имаат пакетот Nextcloud Enterprise.",
+ "Stable" : "Стабилна",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Најнова стабилна верзија. Корисно за редовна употреба и секогаш ќе се ажурира до последната најнова верзија.",
+ "Beta" : "Бета",
+ "A pre-release version only for testing new features, not for production environments." : "Неиздадена верзија само за тестирање на новите можности, не е за редовна употреба.",
+ "Update" : "Ажурирај",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Верзијата која ја користе повеќе не се одржува. Ве молиме што поскоро да ја ажурирајте верзија во понова.",
- "Apps missing updates" : "Недостасуваат ажурирања за апликации",
+ "Apps missing compatible version" : "Апликации на кој им недостасува компатибилност",
"View in store" : "Преглед во продавницата за апликации",
- "Apps with available updates" : "Апликации со достапни ажурирања",
+ "Apps with compatible version" : "Апликации со компатибилни верзии",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Имајте на ум дека веб ажурирачот не е препорачан за повеќе од 100 корисници! Наместо тоа, користете го ажурирачот на командната линија!",
"Open updater" : "Стартувај го надградувачот",
"Download now" : "Преземи",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Веб-ажурирањето е оневозможено. Користете го ажурирањето од командната линија или соодветниот механизам за ажурирање за вашиот метод на инсталација (на пр. Docker pull) за ажурирање.",
"What's new?" : "Што е ново",
+ "View changelog" : "Видете ги проммените",
"The update check is not yet finished. Please refresh the page." : "Сеуште нема извшено проверка за ажурирање, Ве молиме рефреширајте ја страната.",
"Your version is up to date." : "Вашата верзија е ажурирана.",
"A non-default update server is in use to be checked for updates:" : "Нестандарден сервер е поставен за проверка за ажурирање:",
- "Update channel:" : "Канал за ажурирање:",
+ "Update channel" : "Канал за ажурирање",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Промената на каналот за ажурирање влијае на страницата за управување со апликации. На пр. откако ќе се префрлите на бета каналот, ќе ви бидат понудени ажурирања на бета апликации на страницата за управување со апликации.",
+ "Current update channel:" : "Моментален канал за ажурирање:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Секогаш можете да ажурирате на нова верзија. Но никогаш нема да можете да се вратите на постара верзија.",
"Notify members of the following groups about available updates:" : "Извести ги членовите на овие групи за достапните ажурирања:",
- "Only notification for app updates are available." : "Известувања само за достапни ажурирања на апликации.",
+ "No groups" : "Нема групи",
+ "Only notifications for app updates are available." : "Известувања само за достапни ажурирања на апликации.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Избраниот канал за ажурирање ќе овозможи известувања за застарениот сервер.",
"The selected update channel does not support updates of the server." : "Избраниот канал за ажурирање не поддржува ажурирање за серверот.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Достапна е нова верзија: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Проверено на {lastCheckedDate}",
- "Checking apps for compatible updates" : "Проверка за компатибилност на апликациите со новата верзија",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Бидете сигурни дека во config.php датотеката параматарот <samp>appstoreenabled</samp> е поставен на false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Неможе да се поврзе со appstore или одговорот е дека нема ажурирање. Пребарајте рачно за ажурирање или бидете сигурни дека серверот има пристап до интернет и може да се поврзе со продавницата.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Сите</strong> апликации имаат ажурирања за оваа верзија",
- "View changelog" : "Видете ги проммените",
- "Enterprise" : "Професионален",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За професионална употреба. Овозможува секогаш најново ниво на ажурирање, но нема веднаш да се ажурира на следното големо издание. Ова ажурирање се случува откако Nextcloud GmbH ќе направи дополнително тестирање за големи и критични сервери. Овој канал е достапен само за клиентите и го имаат пакетот Nextcloud Enterprise.",
- "Stable" : "Стабилна",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Најнова стабилна верзија. Корисно за редовна употреба и секогаш ќе се ажурира до последната најнова верзија.",
- "Beta" : "Бета",
- "A pre-release version only for testing new features, not for production environments." : "Неиздадена верзија само за тестирање на новите можности, не е за редовна употреба.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> апликација нема ажурирање за оваа веријза","<strong>%n</strong> апликации немаат ажурирања за оваа веријза"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Можно е да треба некое време додека новата верзија се прикаже овде. Ние испорачуваме нови до нашите корисници но од време на време некој верзии ги прескокнуваме поради пројандени проблеми во истите."
+ "Changelog for app {app}" : "Дневник на промени за апликацијата {app}",
+ "What's new in {app} version {version}" : "Што е ново во {app} верзија {version}",
+ "{version} is available. Get more information on how to update." : "Достапна е нова верзија {version}. Видете ги информациите како да ја ажурирате."
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/nb.js b/apps/updatenotification/l10n/nb.js
index 4903ca65d35..9882acb2613 100644
--- a/apps/updatenotification/l10n/nb.js
+++ b/apps/updatenotification/l10n/nb.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} er tilgjengelig. Få mer informasjon om å oppdatere.",
"Channel updated" : "Kanal oppdatert",
+ "Web updater is disabled" : "Web-oppdaterer er deaktivert",
+ "App updated" : "App oppdatert",
+ "See what's new" : "Se hva som er nytt",
+ "{app} updated to version {version}" : "{app} oppdatert til versjon {version}",
"Update notifications" : "Oppdateringsvarsel",
"The update server could not be reached since %d days to check for new updates." : "Har ikke oppnådd kontakt med oppdateringsserveren på %d dager for å se etter nye oppdateringer.",
"Please check the Nextcloud and server log files for errors." : "Se i Nextcloud- og server-loggen etter feil.",
- "Update to %1$s is available." : "Oppdatering til %1$s er tilgjengelig.",
- "Update for %1$s to version %2$s is available." : "Oppdatering for %1$s til versjon %2$s er tilgjengelig.",
+ "Update to {serverAndVersion} is available." : "Oppdatering til {serverAndVersion} er tilgjengelig.",
"Update for {app} to version %s is available." : "Oppdatering for {app} til versjon %s er tilgjengelig.",
"Update notification" : "Oppdateringsvarsel",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Viser oppdateringsvarsler for Nextcloud og gir SSO for oppdatereren.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Viser oppdateringsvarsler for Nextcloud, appoppdateringer og gir SSO for oppdateringsprogrammet.",
+ "Give feedback" : "Gi tilbakemelding",
+ "Get started" : "Kom i gang",
+ "No changelog available" : "Ingen endringslogg tilgjengelig",
+ "What's new in {app} {version}" : "Hva er nytt i {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "En ny versjon er tilgjengelig: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Merk at etter en ny utgivelse vises oppdateringen først etter den første mindre utgivelsen eller senere. Vi ruller ut nye versjoner spredt over tid til brukerne våre og hopper noen ganger over en versjon når problemer blir funnet. Finn ut mer om oppdateringer og utgivelseskanaler på {link}.",
+ "Checked on {lastCheckedDate} - Open changelog" : "Sist sjekket {lastCheckedDate} - Åpne endringslogg",
+ "Checking apps for compatible versions" : "Sjekker apper for kompatible versjoner",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Forsikre deg om at <samp>appstoreenabled</samp> ikke er satt til false i config.php.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kunne ikke koble til appbutikken eller ingen oppdateringer har blitt returnert i det hele tatt. Søk manuelt etter oppdateringer eller sørg for at serveren din har tilgang til internett og kan koble til appbutikken.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Alle</strong> apper har en kompatibel versjon for denne Nextcloud-versjonen tilgjengelig.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> apper har ingen kompatibel versjon for denne Nextcloud-versjonen tilgjengelig.","<strong>%n</strong> apper har ingen kompatibel versjon for denne Nextcloud-versjonen tilgjengelig."],
+ "Enterprise" : "Bedrift",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For bedriftsbruk. Tilbyr alltid det siste oppdateringsnivået, men oppdateres ikke til neste store utgivelse umiddelbart. Denne oppdateringen skjer når Nextcloud GmbH har gjort ytterligere herding og testing for store og oppdragskritiske distribusjoner. Denne kanalen er bare tilgjengelig for kunder og tilbyr Nextcloud Enterprise-pakken.",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den siste stabile versjonen. Den er egnet for vanlig bruk og vil alltid oppdatere til den siste store versjonen.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "En pre-release versjon bare for testing av nye funksjoner, ikke for produksjonsmiljøer.",
+ "Update" : "Oppdater",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Versjonen du kjører vedlikeholdes ikke lengre. Vennligst sørg for å oppdatere til en støttet versjon så snart som mulig.",
- "Apps missing updates" : "Apper mangler oppdateringer",
+ "Apps missing compatible version" : "Apper som mangler kompatibel versjon",
"View in store" : "Vis i butikk",
- "Apps with available updates" : "Apper med tilgjengelige oppdateringer",
+ "Apps with compatible version" : "Apper med kompatibel versjon",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Vær oppmerksom på at web-oppdaterer ikke anbefales med mer enn 100 kontoer! Bruk kommandolinjen i stedet!",
"Open updater" : "Åpne oppdaterer",
"Download now" : "Last ned nå",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web-oppdaterer er deaktivert. Bruk kommandolinjeoppdateringen eller riktig oppdateringsmekanisme for installasjonsmetoden din (f.eks. Docker pull) for å oppdatere.",
"What's new?" : "Hva er nytt?",
+ "View changelog" : "Se endringslogg",
"The update check is not yet finished. Please refresh the page." : "Oppdateringssjekken er ikke ferdig, vennligst oppdater siden.",
"Your version is up to date." : "Du har nyeste versjon.",
"A non-default update server is in use to be checked for updates:" : "En ikke-forvalgt oppdateringsserver brukes for å se etter oppdateringer:",
- "Update channel:" : "Oppdateringskanal:",
+ "Update channel" : "Oppdateringskanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Endring av oppdateringskanalen påvirker også administrasjonssiden for apper. F.eks. etter at du har byttet til betakanalen, vil beta-appoppdateringer bli tilbudt deg på administrasjonssiden for apper.",
+ "Current update channel:" : "Gjeldende oppdateringskanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Du kan alltid oppdatere til en nyere versjon. Men du kan aldri nedgradere til en mer stabil versjon.",
"Notify members of the following groups about available updates:" : "Informer medlemmene i følgende grupper om tilgjengelig oppdateringer:",
- "Only notification for app updates are available." : "Kun varsler for app-oppdateringer er tilgjengelig.",
+ "No groups" : "Ingen grupper",
+ "Only notifications for app updates are available." : "Bare varsler for appoppdateringer er tilgjengelige.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Den valgte oppdateringskanalen gjør dedikerte varsler til denne serveren utdatert.",
"The selected update channel does not support updates of the server." : "Den valgte oppdateringskanalen tilbyr ikke oppdateringer av serveren.",
- "A new version is available: <strong>{newVersionString}</strong>" : "En ny versjon er tilgjengelig: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Sist sjekket {lastCheckedDate}",
- "Checking apps for compatible updates" : "Kontrollerer programmer for kompatible oppdateringer",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Forsikre deg om at <samp>appstoreenabled</samp> ikke er satt til false i config.php.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Kunne ikke opprette forbindelse med appstore eller den rapporterte ingen oppdateringer. Søk manuelt for oppdatering eller sørg for at din tjener har tilgang til internet og kan opprette forbindelse med appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Alle</strong> apper har en oppdatering tilgjengelig for denne versjonen",
- "View changelog" : "Se endringslogg",
- "Enterprise" : "Bedrift",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For bedriftsbruk. Tilbyr alltid det siste oppdateringsnivået, men oppdateres ikke til neste store utgivelse umiddelbart. Denne oppdateringen skjer når Nextcloud GmbH har gjort ytterligere herding og testing for store og oppdragskritiske distribusjoner. Denne kanalen er bare tilgjengelig for kunder og tilbyr Nextcloud Enterprise-pakken.",
- "Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den siste stabile versjonen. Den er egnet for vanlig bruk og vil alltid oppdatere til den siste store versjonen.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "En pre-release versjon bare for testing av nye funksjoner, ikke for produksjonsmiljøer.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app har ingen oppdatering tilgjengelig for denne versjonen","<strong>%n</strong> apper har ingen oppdatering tilgjengelig for denne versjonen"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Vær oppmerksom på at etter en ny utgivelse kan det ta noe tid før den vises her. Vi ruller ut nye versjonen spredt utover tid til våre brukere, og av og til hoppes det over en versjon når problemer dukker opp."
+ "Changelog for app {app}" : "Endringslogg for app {app}",
+ "What's new in {app} version {version}" : "Hva er nytt i {app} versjon {version}",
+ "{version} is available. Get more information on how to update." : "{version} er tilgjengelig. Få mer informasjon om å oppdatere."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/nb.json b/apps/updatenotification/l10n/nb.json
index 4da354e0056..9673b42ba33 100644
--- a/apps/updatenotification/l10n/nb.json
+++ b/apps/updatenotification/l10n/nb.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} er tilgjengelig. Få mer informasjon om å oppdatere.",
"Channel updated" : "Kanal oppdatert",
+ "Web updater is disabled" : "Web-oppdaterer er deaktivert",
+ "App updated" : "App oppdatert",
+ "See what's new" : "Se hva som er nytt",
+ "{app} updated to version {version}" : "{app} oppdatert til versjon {version}",
"Update notifications" : "Oppdateringsvarsel",
"The update server could not be reached since %d days to check for new updates." : "Har ikke oppnådd kontakt med oppdateringsserveren på %d dager for å se etter nye oppdateringer.",
"Please check the Nextcloud and server log files for errors." : "Se i Nextcloud- og server-loggen etter feil.",
- "Update to %1$s is available." : "Oppdatering til %1$s er tilgjengelig.",
- "Update for %1$s to version %2$s is available." : "Oppdatering for %1$s til versjon %2$s er tilgjengelig.",
+ "Update to {serverAndVersion} is available." : "Oppdatering til {serverAndVersion} er tilgjengelig.",
"Update for {app} to version %s is available." : "Oppdatering for {app} til versjon %s er tilgjengelig.",
"Update notification" : "Oppdateringsvarsel",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Viser oppdateringsvarsler for Nextcloud og gir SSO for oppdatereren.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Viser oppdateringsvarsler for Nextcloud, appoppdateringer og gir SSO for oppdateringsprogrammet.",
+ "Give feedback" : "Gi tilbakemelding",
+ "Get started" : "Kom i gang",
+ "No changelog available" : "Ingen endringslogg tilgjengelig",
+ "What's new in {app} {version}" : "Hva er nytt i {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "En ny versjon er tilgjengelig: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Merk at etter en ny utgivelse vises oppdateringen først etter den første mindre utgivelsen eller senere. Vi ruller ut nye versjoner spredt over tid til brukerne våre og hopper noen ganger over en versjon når problemer blir funnet. Finn ut mer om oppdateringer og utgivelseskanaler på {link}.",
+ "Checked on {lastCheckedDate} - Open changelog" : "Sist sjekket {lastCheckedDate} - Åpne endringslogg",
+ "Checking apps for compatible versions" : "Sjekker apper for kompatible versjoner",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Forsikre deg om at <samp>appstoreenabled</samp> ikke er satt til false i config.php.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kunne ikke koble til appbutikken eller ingen oppdateringer har blitt returnert i det hele tatt. Søk manuelt etter oppdateringer eller sørg for at serveren din har tilgang til internett og kan koble til appbutikken.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Alle</strong> apper har en kompatibel versjon for denne Nextcloud-versjonen tilgjengelig.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> apper har ingen kompatibel versjon for denne Nextcloud-versjonen tilgjengelig.","<strong>%n</strong> apper har ingen kompatibel versjon for denne Nextcloud-versjonen tilgjengelig."],
+ "Enterprise" : "Bedrift",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For bedriftsbruk. Tilbyr alltid det siste oppdateringsnivået, men oppdateres ikke til neste store utgivelse umiddelbart. Denne oppdateringen skjer når Nextcloud GmbH har gjort ytterligere herding og testing for store og oppdragskritiske distribusjoner. Denne kanalen er bare tilgjengelig for kunder og tilbyr Nextcloud Enterprise-pakken.",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den siste stabile versjonen. Den er egnet for vanlig bruk og vil alltid oppdatere til den siste store versjonen.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "En pre-release versjon bare for testing av nye funksjoner, ikke for produksjonsmiljøer.",
+ "Update" : "Oppdater",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Versjonen du kjører vedlikeholdes ikke lengre. Vennligst sørg for å oppdatere til en støttet versjon så snart som mulig.",
- "Apps missing updates" : "Apper mangler oppdateringer",
+ "Apps missing compatible version" : "Apper som mangler kompatibel versjon",
"View in store" : "Vis i butikk",
- "Apps with available updates" : "Apper med tilgjengelige oppdateringer",
+ "Apps with compatible version" : "Apper med kompatibel versjon",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Vær oppmerksom på at web-oppdaterer ikke anbefales med mer enn 100 kontoer! Bruk kommandolinjen i stedet!",
"Open updater" : "Åpne oppdaterer",
"Download now" : "Last ned nå",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web-oppdaterer er deaktivert. Bruk kommandolinjeoppdateringen eller riktig oppdateringsmekanisme for installasjonsmetoden din (f.eks. Docker pull) for å oppdatere.",
"What's new?" : "Hva er nytt?",
+ "View changelog" : "Se endringslogg",
"The update check is not yet finished. Please refresh the page." : "Oppdateringssjekken er ikke ferdig, vennligst oppdater siden.",
"Your version is up to date." : "Du har nyeste versjon.",
"A non-default update server is in use to be checked for updates:" : "En ikke-forvalgt oppdateringsserver brukes for å se etter oppdateringer:",
- "Update channel:" : "Oppdateringskanal:",
+ "Update channel" : "Oppdateringskanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Endring av oppdateringskanalen påvirker også administrasjonssiden for apper. F.eks. etter at du har byttet til betakanalen, vil beta-appoppdateringer bli tilbudt deg på administrasjonssiden for apper.",
+ "Current update channel:" : "Gjeldende oppdateringskanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Du kan alltid oppdatere til en nyere versjon. Men du kan aldri nedgradere til en mer stabil versjon.",
"Notify members of the following groups about available updates:" : "Informer medlemmene i følgende grupper om tilgjengelig oppdateringer:",
- "Only notification for app updates are available." : "Kun varsler for app-oppdateringer er tilgjengelig.",
+ "No groups" : "Ingen grupper",
+ "Only notifications for app updates are available." : "Bare varsler for appoppdateringer er tilgjengelige.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Den valgte oppdateringskanalen gjør dedikerte varsler til denne serveren utdatert.",
"The selected update channel does not support updates of the server." : "Den valgte oppdateringskanalen tilbyr ikke oppdateringer av serveren.",
- "A new version is available: <strong>{newVersionString}</strong>" : "En ny versjon er tilgjengelig: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Sist sjekket {lastCheckedDate}",
- "Checking apps for compatible updates" : "Kontrollerer programmer for kompatible oppdateringer",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Forsikre deg om at <samp>appstoreenabled</samp> ikke er satt til false i config.php.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Kunne ikke opprette forbindelse med appstore eller den rapporterte ingen oppdateringer. Søk manuelt for oppdatering eller sørg for at din tjener har tilgang til internet og kan opprette forbindelse med appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Alle</strong> apper har en oppdatering tilgjengelig for denne versjonen",
- "View changelog" : "Se endringslogg",
- "Enterprise" : "Bedrift",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "For bedriftsbruk. Tilbyr alltid det siste oppdateringsnivået, men oppdateres ikke til neste store utgivelse umiddelbart. Denne oppdateringen skjer når Nextcloud GmbH har gjort ytterligere herding og testing for store og oppdragskritiske distribusjoner. Denne kanalen er bare tilgjengelig for kunder og tilbyr Nextcloud Enterprise-pakken.",
- "Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den siste stabile versjonen. Den er egnet for vanlig bruk og vil alltid oppdatere til den siste store versjonen.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "En pre-release versjon bare for testing av nye funksjoner, ikke for produksjonsmiljøer.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app har ingen oppdatering tilgjengelig for denne versjonen","<strong>%n</strong> apper har ingen oppdatering tilgjengelig for denne versjonen"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Vær oppmerksom på at etter en ny utgivelse kan det ta noe tid før den vises her. Vi ruller ut nye versjonen spredt utover tid til våre brukere, og av og til hoppes det over en versjon når problemer dukker opp."
+ "Changelog for app {app}" : "Endringslogg for app {app}",
+ "What's new in {app} version {version}" : "Hva er nytt i {app} versjon {version}",
+ "{version} is available. Get more information on how to update." : "{version} er tilgjengelig. Få mer informasjon om å oppdatere."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/nb_NO.js b/apps/updatenotification/l10n/nb_NO.js
deleted file mode 100644
index f5839f09c7c..00000000000
--- a/apps/updatenotification/l10n/nb_NO.js
+++ /dev/null
@@ -1,22 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Oppdateringsvarsel",
- "Could not start updater, please try the manual update" : "Kunne ikke starte oppdateringen, vennligst prøv å oppdatere manuelt",
- "{version} is available. Get more information on how to update." : "{version} er tilgjengelig. Få mer informasjon om å oppdatere.",
- "Channel updated" : "Kanal oppdatert",
- "Update to %1$s is available." : "Oppdatering til %1$s er tilgjengelig.",
- "Update for %1$s to version %2$s is available." : "Oppdatering for %1$s til versjon %2$s er tilgjengelig.",
- "A new version is available: %s" : "En ny versjon er tilgjengelig: %s",
- "Open updater" : "Åpne oppdaterer",
- "Download now" : "Last ned nå",
- "Your version is up to date." : "Du har nyeste versjon.",
- "Checked on %s" : "Sjekket %s",
- "Update channel:" : "Oppdateringskanal:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Du kan alltid oppdatere til en nyere versjon / eksperimentell kanal. Men du kan aldri nedgradere til en mer stabil kanal.",
- "Notify members of the following groups about available updates:" : "Informer medlemmene i følgende grupper om tilgjengelig oppdateringer:",
- "Only notification for app updates are available." : "Kun varsler for app oppdateringer er tilgjengelig.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Den valgte oppdateringskanalen gjør at dedikerte varsler til denne serveren utdatert.",
- "The selected update channel does not support updates of the server." : "Den valgte oppdateringskanalen tilbyr ikke oppdateringer av tjeneren."
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/nb_NO.json b/apps/updatenotification/l10n/nb_NO.json
deleted file mode 100644
index 14cd3a12a69..00000000000
--- a/apps/updatenotification/l10n/nb_NO.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{ "translations": {
- "Update notifications" : "Oppdateringsvarsel",
- "Could not start updater, please try the manual update" : "Kunne ikke starte oppdateringen, vennligst prøv å oppdatere manuelt",
- "{version} is available. Get more information on how to update." : "{version} er tilgjengelig. Få mer informasjon om å oppdatere.",
- "Channel updated" : "Kanal oppdatert",
- "Update to %1$s is available." : "Oppdatering til %1$s er tilgjengelig.",
- "Update for %1$s to version %2$s is available." : "Oppdatering for %1$s til versjon %2$s er tilgjengelig.",
- "A new version is available: %s" : "En ny versjon er tilgjengelig: %s",
- "Open updater" : "Åpne oppdaterer",
- "Download now" : "Last ned nå",
- "Your version is up to date." : "Du har nyeste versjon.",
- "Checked on %s" : "Sjekket %s",
- "Update channel:" : "Oppdateringskanal:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Du kan alltid oppdatere til en nyere versjon / eksperimentell kanal. Men du kan aldri nedgradere til en mer stabil kanal.",
- "Notify members of the following groups about available updates:" : "Informer medlemmene i følgende grupper om tilgjengelig oppdateringer:",
- "Only notification for app updates are available." : "Kun varsler for app oppdateringer er tilgjengelig.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Den valgte oppdateringskanalen gjør at dedikerte varsler til denne serveren utdatert.",
- "The selected update channel does not support updates of the server." : "Den valgte oppdateringskanalen tilbyr ikke oppdateringer av tjeneren."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/nl.js b/apps/updatenotification/l10n/nl.js
index a51f0fc9018..319db5a3773 100644
--- a/apps/updatenotification/l10n/nl.js
+++ b/apps/updatenotification/l10n/nl.js
@@ -1,47 +1,40 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.",
"Channel updated" : "Kanaal bijgewerkt",
+ "Web updater is disabled" : "Web-updater is uitgeschakeld",
"Update notifications" : "Bijwerkmeldingen",
"The update server could not be reached since %d days to check for new updates." : "De updateserver kon sinds %d dagen niet meer worden bereikt om op updates te controleren.",
"Please check the Nextcloud and server log files for errors." : "Controleer de Nextcloud- en serverlogbestanden op fouten.",
- "Update to %1$s is available." : "Update naar %1$s is beschikbaar.",
- "Update for %1$s to version %2$s is available." : "Update voor %1$s naar versie %2$s is beschikbaar.",
"Update for {app} to version %s is available." : "Update voor {app} naar versie %s is beschikbaar.",
"Update notification" : "Bijwerkmelding",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Toont updatemeldingen voor Nextcloud en zorgt voor SSO voor de updater.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Er is een nieuwe versie beschikbaar: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Apps controleren op compatibele versies.",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Zorg ervoor dat je in config.php <samp>appstoreenabled</samp> niet op 'false' zet.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kan niet verbinden met de App Store of er zijn geen updates teruggegeven. Zoek handmatig naar updates of verifieer dat je server internettoegang heeft en kan verbinden met de App Store.",
+ "Enterprise" : "Zakelijk",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Voor zakelijk gebruik. Biedt altijd het laatste patch level, maar zal niet meteen naar de laatste hoofdrelease bijwerken. Die update vindt pas plaats nadat Nextcloud GmbH aanvullende hardening en tests voor grootschalige en bedrijfskritische installaties heeft uitgevoerd. Dit kanaal is alleen beschikbaar voor klanten en levert het Nextcloud Enterprise pakket.",
+ "Stable" : "Stabiel",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "De meest recente stabiele versie. Het is geschikt voor normaal gebruik en werkt altijd bij naar de laatste hoofdversie.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Een vroeg vrijgegeven versie, alleen bedoeld om nieuwe functies te testen. Niet voor productieomgevingen.",
+ "Update" : "Update",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "De versie die je gebruikt, wordt niet langer ondersteund. Zorg ervoor om zo snel mogelijk bij te werken naar een ondersteunde versie.",
- "Apps missing updates" : "Apps met ontbrekende updates",
+ "Apps missing compatible version" : "Apps zonder compatibele versie",
"View in store" : "Bekijk in winkel",
- "Apps with available updates" : "Apps met beschikbare updates",
+ "Apps with compatible version" : "Apps met compatibele versie",
"Open updater" : "Open updater",
"Download now" : "Download nu",
"What's new?" : "Wat is nieuw?",
+ "View changelog" : "Bekijk wijzigingenoverzicht",
"The update check is not yet finished. Please refresh the page." : "De updatecontrole is niet afgerond. Ververs de pagina.",
"Your version is up to date." : "Je versie is up-to-date.",
"A non-default update server is in use to be checked for updates:" : "Een niet-standaard updateserver is in gebruik om te worden gecontroleerd op updates:",
- "Update channel:" : "Bijwerkkanaal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Je kan altijd naar een nieuwere versie, maar je kan nooit terug naar een oudere stabielere versie.",
"Notify members of the following groups about available updates:" : "Geef een melding over beschikbare updates aan leden van de volgende groepen:",
- "Only notification for app updates are available." : "Er zijn alleen meldingen voor apps beschikbaar.",
+ "Only notifications for app updates are available." : "Er zijn alleen meldingen voor apps beschikbaar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Het geselecteerde updatekanaal maakt overbodig om serverspecifieke meldingen apart te genereren.",
"The selected update channel does not support updates of the server." : "Het geselecteerde updatekanaal ondersteunt geen updates voor de server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Er is een nieuwe versie beschikbaar: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Let op dat na een nieuwe release de update pas verschijnt na de eerste secundaire release of later. We introduceren nieuwe versies verspreid over de tijd voor onze gebruikers en slaan soms een versie over wanneer er problemen worden gevonden. Lees meer over updates en releasekanalen op {link}",
- "Checked on {lastCheckedDate}" : "Gecontroleerd op {lastCheckedDate}",
- "Checking apps for compatible updates" : "Apps controleren op compatibele updates",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Zorg ervoor dat je in config.php <samp>appstoreenabled</samp> niet op 'false' zet.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Kan niet verbinden met de appstore of de appstore gaf geen updates terug. Zoek handmatig naar updates of verifieer dat je server internettoegang heeft en kan verbinden met de appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Alle</strong> apps hebben een update voor deze versie beschikbaar",
- "View changelog" : "Bekijk wijzigingenoverzicht",
- "Enterprise" : "Zakelijk",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Voor zakelijk gebruik. Biedt altijd het laatste patch level, maar zal niet meteen naar de laatste hoofdrelease bijwerken. Die update vindt pas plaats nadat Nextcloud GmbH aanvullende hardening en tests voor grootschalige en bedrijfskritische installaties heeft uitgevoerd. Dit kanaal is alleen beschikbaar voor klanten en levert het Nextcloud Enterprise pakket.",
- "Stable" : "Stabiel",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "De meest recente stabiele versie. Het is geschikt voor normaal gebruik en werkt altijd bij naar de laatste hoofdversie.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Een vroeg vrijgegeven versie, alleen bedoeld om nieuwe functies te testen. Niet voor productieomgevingen.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app heeft geen update voor deze versie beschikbaar","<strong>%n</strong> apps hebben geen update voor deze versie beschikbaar"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Houd er rekening mee dat het enige tijd kan duren voordat na een nieuwe versie hier verschijnt. We verspreiden nieuwe versies over de tijd aan onze gebruikers en soms slaan we een versie over als er problemen zijn gevonden."
+ "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/nl.json b/apps/updatenotification/l10n/nl.json
index b1967e07809..316928754ca 100644
--- a/apps/updatenotification/l10n/nl.json
+++ b/apps/updatenotification/l10n/nl.json
@@ -1,45 +1,38 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.",
"Channel updated" : "Kanaal bijgewerkt",
+ "Web updater is disabled" : "Web-updater is uitgeschakeld",
"Update notifications" : "Bijwerkmeldingen",
"The update server could not be reached since %d days to check for new updates." : "De updateserver kon sinds %d dagen niet meer worden bereikt om op updates te controleren.",
"Please check the Nextcloud and server log files for errors." : "Controleer de Nextcloud- en serverlogbestanden op fouten.",
- "Update to %1$s is available." : "Update naar %1$s is beschikbaar.",
- "Update for %1$s to version %2$s is available." : "Update voor %1$s naar versie %2$s is beschikbaar.",
"Update for {app} to version %s is available." : "Update voor {app} naar versie %s is beschikbaar.",
"Update notification" : "Bijwerkmelding",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Toont updatemeldingen voor Nextcloud en zorgt voor SSO voor de updater.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Er is een nieuwe versie beschikbaar: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Apps controleren op compatibele versies.",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Zorg ervoor dat je in config.php <samp>appstoreenabled</samp> niet op 'false' zet.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kan niet verbinden met de App Store of er zijn geen updates teruggegeven. Zoek handmatig naar updates of verifieer dat je server internettoegang heeft en kan verbinden met de App Store.",
+ "Enterprise" : "Zakelijk",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Voor zakelijk gebruik. Biedt altijd het laatste patch level, maar zal niet meteen naar de laatste hoofdrelease bijwerken. Die update vindt pas plaats nadat Nextcloud GmbH aanvullende hardening en tests voor grootschalige en bedrijfskritische installaties heeft uitgevoerd. Dit kanaal is alleen beschikbaar voor klanten en levert het Nextcloud Enterprise pakket.",
+ "Stable" : "Stabiel",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "De meest recente stabiele versie. Het is geschikt voor normaal gebruik en werkt altijd bij naar de laatste hoofdversie.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Een vroeg vrijgegeven versie, alleen bedoeld om nieuwe functies te testen. Niet voor productieomgevingen.",
+ "Update" : "Update",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "De versie die je gebruikt, wordt niet langer ondersteund. Zorg ervoor om zo snel mogelijk bij te werken naar een ondersteunde versie.",
- "Apps missing updates" : "Apps met ontbrekende updates",
+ "Apps missing compatible version" : "Apps zonder compatibele versie",
"View in store" : "Bekijk in winkel",
- "Apps with available updates" : "Apps met beschikbare updates",
+ "Apps with compatible version" : "Apps met compatibele versie",
"Open updater" : "Open updater",
"Download now" : "Download nu",
"What's new?" : "Wat is nieuw?",
+ "View changelog" : "Bekijk wijzigingenoverzicht",
"The update check is not yet finished. Please refresh the page." : "De updatecontrole is niet afgerond. Ververs de pagina.",
"Your version is up to date." : "Je versie is up-to-date.",
"A non-default update server is in use to be checked for updates:" : "Een niet-standaard updateserver is in gebruik om te worden gecontroleerd op updates:",
- "Update channel:" : "Bijwerkkanaal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Je kan altijd naar een nieuwere versie, maar je kan nooit terug naar een oudere stabielere versie.",
"Notify members of the following groups about available updates:" : "Geef een melding over beschikbare updates aan leden van de volgende groepen:",
- "Only notification for app updates are available." : "Er zijn alleen meldingen voor apps beschikbaar.",
+ "Only notifications for app updates are available." : "Er zijn alleen meldingen voor apps beschikbaar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Het geselecteerde updatekanaal maakt overbodig om serverspecifieke meldingen apart te genereren.",
"The selected update channel does not support updates of the server." : "Het geselecteerde updatekanaal ondersteunt geen updates voor de server.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Er is een nieuwe versie beschikbaar: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Let op dat na een nieuwe release de update pas verschijnt na de eerste secundaire release of later. We introduceren nieuwe versies verspreid over de tijd voor onze gebruikers en slaan soms een versie over wanneer er problemen worden gevonden. Lees meer over updates en releasekanalen op {link}",
- "Checked on {lastCheckedDate}" : "Gecontroleerd op {lastCheckedDate}",
- "Checking apps for compatible updates" : "Apps controleren op compatibele updates",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Zorg ervoor dat je in config.php <samp>appstoreenabled</samp> niet op 'false' zet.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Kan niet verbinden met de appstore of de appstore gaf geen updates terug. Zoek handmatig naar updates of verifieer dat je server internettoegang heeft en kan verbinden met de appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Alle</strong> apps hebben een update voor deze versie beschikbaar",
- "View changelog" : "Bekijk wijzigingenoverzicht",
- "Enterprise" : "Zakelijk",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Voor zakelijk gebruik. Biedt altijd het laatste patch level, maar zal niet meteen naar de laatste hoofdrelease bijwerken. Die update vindt pas plaats nadat Nextcloud GmbH aanvullende hardening en tests voor grootschalige en bedrijfskritische installaties heeft uitgevoerd. Dit kanaal is alleen beschikbaar voor klanten en levert het Nextcloud Enterprise pakket.",
- "Stable" : "Stabiel",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "De meest recente stabiele versie. Het is geschikt voor normaal gebruik en werkt altijd bij naar de laatste hoofdversie.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Een vroeg vrijgegeven versie, alleen bedoeld om nieuwe functies te testen. Niet voor productieomgevingen.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> app heeft geen update voor deze versie beschikbaar","<strong>%n</strong> apps hebben geen update voor deze versie beschikbaar"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Houd er rekening mee dat het enige tijd kan duren voordat na een nieuwe versie hier verschijnt. We verspreiden nieuwe versies over de tijd aan onze gebruikers en soms slaan we een versie over als er problemen zijn gevonden."
+ "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/oc.js b/apps/updatenotification/l10n/oc.js
deleted file mode 100644
index e1e930ba805..00000000000
--- a/apps/updatenotification/l10n/oc.js
+++ /dev/null
@@ -1,9 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "La version {version} es disponibla. Obtenètz mai d'informacions a prepaus d'aquesta mesa a jorn.",
- "Updated channel" : "Canal mes a jorn",
- "Update channel:" : "Canal de mesa a jorn :",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Podètz a tot moment metre a jorn cap a una version mai recenta o un canal experimental. Pasmens, poiretz pas jamai tornar a un canal mai estable."
-},
-"nplurals=2; plural=(n > 1);");
diff --git a/apps/updatenotification/l10n/oc.json b/apps/updatenotification/l10n/oc.json
deleted file mode 100644
index 16c52460813..00000000000
--- a/apps/updatenotification/l10n/oc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "La version {version} es disponibla. Obtenètz mai d'informacions a prepaus d'aquesta mesa a jorn.",
- "Updated channel" : "Canal mes a jorn",
- "Update channel:" : "Canal de mesa a jorn :",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Podètz a tot moment metre a jorn cap a una version mai recenta o un canal experimental. Pasmens, poiretz pas jamai tornar a un canal mai estable."
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/pl.js b/apps/updatenotification/l10n/pl.js
index 46876aee06b..84ec70b4c63 100644
--- a/apps/updatenotification/l10n/pl.js
+++ b/apps/updatenotification/l10n/pl.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Wersja {version} jest dostępna. Uzyskaj więcej informacji na temat aktualizacji.",
"Channel updated" : "Zaktualizowano kanał",
+ "Web updater is disabled" : "Aktualizator sieciowy jest wyłączony",
+ "App updated" : "Aplikacja została zaktualizowana",
+ "See what's new" : "Zobacz co nowego",
+ "{app} updated to version {version}" : "{app} zaktualizowana do wersji {version}",
"Update notifications" : "Powiadomienia o aktualizacji",
"The update server could not be reached since %d days to check for new updates." : "Serwer aktualizacji nie był dostępny od %d dni w celu sprawdzenia dostępności nowych aktualizacji.",
"Please check the Nextcloud and server log files for errors." : "Sprawdź pliki dziennika Nextcloud i serwera pod kątem błędów.",
- "Update to %1$s is available." : "Dostępna jest aktualizacja do wersji %1$s.",
- "Update for %1$s to version %2$s is available." : "Dostępna jest aktualizacja dla %1$s do wersji %2$s.",
+ "Update to {serverAndVersion} is available." : "Dostępna jest aktualizacja dla {serverAndVersion}.",
"Update for {app} to version %s is available." : "Dostępna jest aktualizacja dla {app} do wersji %s.",
"Update notification" : "Powiadomienie o aktualizacji",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Wyświetla powiadomienia o aktualizacji dla usługi Nextcloud i udostępnia SSO dla aktualizatora.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Wyświetla powiadomienia o aktualizacjach Nextcloud, aplikacji oraz zapewnia SSO dla modułu aktualizacji.",
+ "Give feedback" : "Przekaż opinię",
+ "Get started" : "Rozpocznij",
+ "No changelog available" : "Brak dostępnego dziennika zmian",
+ "What's new in {app} {version}" : "Co nowego w {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Dostępna jest nowa wersja: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Należy pamiętać, że po wydaniu nowego wydania aktualizacja pojawia się dopiero po pierwszym wydaniu pomocniczym lub później. Wdrażamy nowe wersje rozłożone w czasie i czasami pomijamy wersję, gdy zostaną znalezione problemy. Dowiedz się więcej o aktualizacjach i kanałach wydań pod adresem: {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Sprawdzone dnia {lastCheckedDate} - Otwórz dziennik zmian",
+ "Checking apps for compatible versions" : "Sprawdzanie aplikacji pod kątem kompatybilnych wersji",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Upewnij się, że opcja <samp>appstoreenabled</samp> w Twoim config.php nie jest ustawiona na false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nie można połączyć się ze sklepem z aplikacjami lub zgłasza brak aktualizacji. Wyszukaj aktualizacje ręcznie lub upewnij się, że serwer ma dostęp do Internetu i może łączyć się ze sklepem z aplikacjami.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Wszystkie</strong> aplikacje mają kompatybilną wersję dla tej wersji Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplikacja nie ma kompatybilnej wersji z tą wersją Nextcloud.","<strong>%n</strong> aplikacje nie ma kompatybilnej wersji z tą wersją Nextcloud.","<strong>%n</strong> aplikacji nie ma kompatybilnej wersji z tą wersją Nextcloud.","<strong>%n</strong> aplikacji nie ma kompatybilnej wersji z tą wersją Nextcloud."],
+ "Enterprise" : "Komercyjna",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Do użytku firmowego. Zapewnia zawsze najnowszy poziom poprawek, które zostaną wprowadzone dopiero po przetestowaniu przez Nextcloud GmbH. Aktualizacja usunie błędy krytyczne i wprowadzi dodatkowe ulepszenia. Ten kanał jest dostępny tylko dla klientów, którzy posiadają pakiet dla firm.",
+ "Stable" : "Stabilna",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnowsza wersja stabilna. Jest odpowiednia do regularnego używania i zawsze będzie aktualizowana do najnowszej wersji głównej.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Wersja przedpremierowa tylko do testowania nowych funkcji. Nie jest do środowisk produkcyjnych.",
+ "Update" : "Aktualizacja",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Wersja, której używasz, nie jest już wspierana. Pamiętaj, aby jak najszybciej zaktualizować do nowszej wersji.",
- "Apps missing updates" : "Brakujące aktualizacje aplikacji",
+ "Apps missing compatible version" : "W aplikacjach brakuje zgodnej wersji",
"View in store" : "Zobacz w sklepie",
- "Apps with available updates" : "Dostępne aktualizacje dla aplikacji",
+ "Apps with compatible version" : "Aplikacje z kompatybilną wersją",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Należy pamiętać, że aktualizator przez przeglądarkę nie jest zalecany przy więcej niż 100 kontach! Zamiast tego użyj aktualizacji z poziomu wiersza poleceń!",
"Open updater" : "Otwórz aktualizator",
"Download now" : "Pobierz teraz",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Aktualizator przez przeglądarkę jest wyłączony. Użyj aktualizatora z linii poleceń lub odpowiedniego mechanizmu aktualizacji dla swojej metody instalacji (np. docker pull), aby przeprowadzić aktualizację.",
"What's new?" : "Co nowego?",
+ "View changelog" : "Zobacz listę zmian",
"The update check is not yet finished. Please refresh the page." : "Sprawdzanie aktualizacji nie zostało jeszcze zakończone. Odśwież stronę.",
"Your version is up to date." : "Posiadasz aktualną wersję.",
"A non-default update server is in use to be checked for updates:" : "Do sprawdzania aktualizacji nie są używane domyślne serwery aktualizacji:",
- "Update channel:" : "Kanał aktualizacji:",
+ "Update channel" : "Kanał aktualizacji",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Zmiana kanału aktualizacji wpływa również na stronę zarządzania aplikacjami. Np. po przejściu na kanał beta aktualizacje aplikacji w wersji beta będą oferowane na stronie zarządzania aplikacjami.",
+ "Current update channel:" : "Aktualny kanał aktualizacji:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Zawsze możesz zaktualizować do nowszej wersji. Ale nigdy nie możesz powrócić do wersji bardziej stabilnej.",
"Notify members of the following groups about available updates:" : "Powiadom członków następujących grup o dostępnych aktualizacjach:",
- "Only notification for app updates are available." : "Dostępne są tylko powiadomienia o aktualizacjach aplikacji.",
+ "No groups" : "Brak grup",
+ "Only notifications for app updates are available." : "Dostępne są tylko powiadomienia o aktualizacjach aplikacji.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Wybrany kanał aktualizacji dla dedykowanych powiadomień dla serwera jest nieaktualny.",
"The selected update channel does not support updates of the server." : "Wybrany kanał aktualizacji nie obsługuje danego serwera.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Dostępna jest nowa wersja: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Zauważ, że po nowej wersji aktualizacja pojawia się dopiero po pierwszym mniejszym wydaniu lub później. Udostępniamy nowe wersje rozłożone w czasie dla naszych użytkowników i czasami pomijamy wersję w przypadku znalezienia problemów. Dowiedz się więcej o aktualizacjach i kanałach wydań pod adresem {link}",
- "Checked on {lastCheckedDate}" : "Sprawdzono {lastCheckedDate}",
- "Checking apps for compatible updates" : "Sprawdzanie aplikacji pod kątem zgodnych aktualizacji",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Upewnij się, że opcja <samp>appstoreenabled</samp> w Twoim config.php nie jest ustawiona na false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nie można połączyć się z appstore lub całkowicie zgłasza brak aktualizacji. Wyszukaj aktualizacje ręcznie lub upewnij się, że masz dostęp do Internetu i możesz łączyć się z appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Wszystkie</strong> aplikacje mają dostępną aktualizację dla tej wersji",
- "View changelog" : "Zobacz listę zmian",
- "Enterprise" : "Komercyjna",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Do użytku firmowego. Zapewnia zawsze najnowszy poziom poprawek, które zostaną wprowadzone dopiero po przetestowaniu przez Nextcloud GmbH. Aktualizacja usunie błędy krytyczne i wprowadzi dodatkowe ulepszenia. Ten kanał jest dostępny tylko dla klientów, którzy posiadają pakiet dla firm.",
- "Stable" : "Stabilna",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnowsza wersja stabilna. Jest odpowiednia do regularnego używania i zawsze będzie aktualizowana do najnowszej wersji głównej.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Wersja przedpremierowa tylko do testowania nowych funkcji. Nie jest do środowisk produkcyjnych.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikacja nie ma dostępnej aktualizacji dla tej wersji","<strong>%n</strong> aplikacje nie mają dostępnych aktualizacji dla tej wersji","<strong>%n</strong> aplikacji nie ma dostępnych aktualizacji dla tej wersji","<strong>%n</strong> aplikacje nie mają dostępnych aktualizacji dla tej wersji"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Zauważ, że po opublikowaniu nowej wersji może minąć trochę czasu, zanim pojawi się ona tutaj. Publikację dla naszych użytkowników rozkładamy w czasie, a czasami pomijamy wersję, gdy znajdziemy jakieś błędy."
+ "Changelog for app {app}" : "Dziennik zmian aplikacji {app}",
+ "What's new in {app} version {version}" : "Co nowego w aplikacji {app} wersja {version}",
+ "{version} is available. Get more information on how to update." : "Wersja {version} jest dostępna. Uzyskaj więcej informacji na temat aktualizacji."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/apps/updatenotification/l10n/pl.json b/apps/updatenotification/l10n/pl.json
index 41d0b5a4f34..45f03603ad3 100644
--- a/apps/updatenotification/l10n/pl.json
+++ b/apps/updatenotification/l10n/pl.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Wersja {version} jest dostępna. Uzyskaj więcej informacji na temat aktualizacji.",
"Channel updated" : "Zaktualizowano kanał",
+ "Web updater is disabled" : "Aktualizator sieciowy jest wyłączony",
+ "App updated" : "Aplikacja została zaktualizowana",
+ "See what's new" : "Zobacz co nowego",
+ "{app} updated to version {version}" : "{app} zaktualizowana do wersji {version}",
"Update notifications" : "Powiadomienia o aktualizacji",
"The update server could not be reached since %d days to check for new updates." : "Serwer aktualizacji nie był dostępny od %d dni w celu sprawdzenia dostępności nowych aktualizacji.",
"Please check the Nextcloud and server log files for errors." : "Sprawdź pliki dziennika Nextcloud i serwera pod kątem błędów.",
- "Update to %1$s is available." : "Dostępna jest aktualizacja do wersji %1$s.",
- "Update for %1$s to version %2$s is available." : "Dostępna jest aktualizacja dla %1$s do wersji %2$s.",
+ "Update to {serverAndVersion} is available." : "Dostępna jest aktualizacja dla {serverAndVersion}.",
"Update for {app} to version %s is available." : "Dostępna jest aktualizacja dla {app} do wersji %s.",
"Update notification" : "Powiadomienie o aktualizacji",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Wyświetla powiadomienia o aktualizacji dla usługi Nextcloud i udostępnia SSO dla aktualizatora.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Wyświetla powiadomienia o aktualizacjach Nextcloud, aplikacji oraz zapewnia SSO dla modułu aktualizacji.",
+ "Give feedback" : "Przekaż opinię",
+ "Get started" : "Rozpocznij",
+ "No changelog available" : "Brak dostępnego dziennika zmian",
+ "What's new in {app} {version}" : "Co nowego w {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Dostępna jest nowa wersja: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Należy pamiętać, że po wydaniu nowego wydania aktualizacja pojawia się dopiero po pierwszym wydaniu pomocniczym lub później. Wdrażamy nowe wersje rozłożone w czasie i czasami pomijamy wersję, gdy zostaną znalezione problemy. Dowiedz się więcej o aktualizacjach i kanałach wydań pod adresem: {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Sprawdzone dnia {lastCheckedDate} - Otwórz dziennik zmian",
+ "Checking apps for compatible versions" : "Sprawdzanie aplikacji pod kątem kompatybilnych wersji",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Upewnij się, że opcja <samp>appstoreenabled</samp> w Twoim config.php nie jest ustawiona na false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nie można połączyć się ze sklepem z aplikacjami lub zgłasza brak aktualizacji. Wyszukaj aktualizacje ręcznie lub upewnij się, że serwer ma dostęp do Internetu i może łączyć się ze sklepem z aplikacjami.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Wszystkie</strong> aplikacje mają kompatybilną wersję dla tej wersji Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplikacja nie ma kompatybilnej wersji z tą wersją Nextcloud.","<strong>%n</strong> aplikacje nie ma kompatybilnej wersji z tą wersją Nextcloud.","<strong>%n</strong> aplikacji nie ma kompatybilnej wersji z tą wersją Nextcloud.","<strong>%n</strong> aplikacji nie ma kompatybilnej wersji z tą wersją Nextcloud."],
+ "Enterprise" : "Komercyjna",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Do użytku firmowego. Zapewnia zawsze najnowszy poziom poprawek, które zostaną wprowadzone dopiero po przetestowaniu przez Nextcloud GmbH. Aktualizacja usunie błędy krytyczne i wprowadzi dodatkowe ulepszenia. Ten kanał jest dostępny tylko dla klientów, którzy posiadają pakiet dla firm.",
+ "Stable" : "Stabilna",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnowsza wersja stabilna. Jest odpowiednia do regularnego używania i zawsze będzie aktualizowana do najnowszej wersji głównej.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Wersja przedpremierowa tylko do testowania nowych funkcji. Nie jest do środowisk produkcyjnych.",
+ "Update" : "Aktualizacja",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Wersja, której używasz, nie jest już wspierana. Pamiętaj, aby jak najszybciej zaktualizować do nowszej wersji.",
- "Apps missing updates" : "Brakujące aktualizacje aplikacji",
+ "Apps missing compatible version" : "W aplikacjach brakuje zgodnej wersji",
"View in store" : "Zobacz w sklepie",
- "Apps with available updates" : "Dostępne aktualizacje dla aplikacji",
+ "Apps with compatible version" : "Aplikacje z kompatybilną wersją",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Należy pamiętać, że aktualizator przez przeglądarkę nie jest zalecany przy więcej niż 100 kontach! Zamiast tego użyj aktualizacji z poziomu wiersza poleceń!",
"Open updater" : "Otwórz aktualizator",
"Download now" : "Pobierz teraz",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Aktualizator przez przeglądarkę jest wyłączony. Użyj aktualizatora z linii poleceń lub odpowiedniego mechanizmu aktualizacji dla swojej metody instalacji (np. docker pull), aby przeprowadzić aktualizację.",
"What's new?" : "Co nowego?",
+ "View changelog" : "Zobacz listę zmian",
"The update check is not yet finished. Please refresh the page." : "Sprawdzanie aktualizacji nie zostało jeszcze zakończone. Odśwież stronę.",
"Your version is up to date." : "Posiadasz aktualną wersję.",
"A non-default update server is in use to be checked for updates:" : "Do sprawdzania aktualizacji nie są używane domyślne serwery aktualizacji:",
- "Update channel:" : "Kanał aktualizacji:",
+ "Update channel" : "Kanał aktualizacji",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Zmiana kanału aktualizacji wpływa również na stronę zarządzania aplikacjami. Np. po przejściu na kanał beta aktualizacje aplikacji w wersji beta będą oferowane na stronie zarządzania aplikacjami.",
+ "Current update channel:" : "Aktualny kanał aktualizacji:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Zawsze możesz zaktualizować do nowszej wersji. Ale nigdy nie możesz powrócić do wersji bardziej stabilnej.",
"Notify members of the following groups about available updates:" : "Powiadom członków następujących grup o dostępnych aktualizacjach:",
- "Only notification for app updates are available." : "Dostępne są tylko powiadomienia o aktualizacjach aplikacji.",
+ "No groups" : "Brak grup",
+ "Only notifications for app updates are available." : "Dostępne są tylko powiadomienia o aktualizacjach aplikacji.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Wybrany kanał aktualizacji dla dedykowanych powiadomień dla serwera jest nieaktualny.",
"The selected update channel does not support updates of the server." : "Wybrany kanał aktualizacji nie obsługuje danego serwera.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Dostępna jest nowa wersja: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Zauważ, że po nowej wersji aktualizacja pojawia się dopiero po pierwszym mniejszym wydaniu lub później. Udostępniamy nowe wersje rozłożone w czasie dla naszych użytkowników i czasami pomijamy wersję w przypadku znalezienia problemów. Dowiedz się więcej o aktualizacjach i kanałach wydań pod adresem {link}",
- "Checked on {lastCheckedDate}" : "Sprawdzono {lastCheckedDate}",
- "Checking apps for compatible updates" : "Sprawdzanie aplikacji pod kątem zgodnych aktualizacji",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Upewnij się, że opcja <samp>appstoreenabled</samp> w Twoim config.php nie jest ustawiona na false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nie można połączyć się z appstore lub całkowicie zgłasza brak aktualizacji. Wyszukaj aktualizacje ręcznie lub upewnij się, że masz dostęp do Internetu i możesz łączyć się z appstore.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Wszystkie</strong> aplikacje mają dostępną aktualizację dla tej wersji",
- "View changelog" : "Zobacz listę zmian",
- "Enterprise" : "Komercyjna",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Do użytku firmowego. Zapewnia zawsze najnowszy poziom poprawek, które zostaną wprowadzone dopiero po przetestowaniu przez Nextcloud GmbH. Aktualizacja usunie błędy krytyczne i wprowadzi dodatkowe ulepszenia. Ten kanał jest dostępny tylko dla klientów, którzy posiadają pakiet dla firm.",
- "Stable" : "Stabilna",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnowsza wersja stabilna. Jest odpowiednia do regularnego używania i zawsze będzie aktualizowana do najnowszej wersji głównej.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Wersja przedpremierowa tylko do testowania nowych funkcji. Nie jest do środowisk produkcyjnych.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikacja nie ma dostępnej aktualizacji dla tej wersji","<strong>%n</strong> aplikacje nie mają dostępnych aktualizacji dla tej wersji","<strong>%n</strong> aplikacji nie ma dostępnych aktualizacji dla tej wersji","<strong>%n</strong> aplikacje nie mają dostępnych aktualizacji dla tej wersji"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Zauważ, że po opublikowaniu nowej wersji może minąć trochę czasu, zanim pojawi się ona tutaj. Publikację dla naszych użytkowników rozkładamy w czasie, a czasami pomijamy wersję, gdy znajdziemy jakieś błędy."
+ "Changelog for app {app}" : "Dziennik zmian aplikacji {app}",
+ "What's new in {app} version {version}" : "Co nowego w aplikacji {app} wersja {version}",
+ "{version} is available. Get more information on how to update." : "Wersja {version} jest dostępna. Uzyskaj więcej informacji na temat aktualizacji."
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/pt_BR.js b/apps/updatenotification/l10n/pt_BR.js
index 3fc4ec98f50..a5069a53e1a 100644
--- a/apps/updatenotification/l10n/pt_BR.js
+++ b/apps/updatenotification/l10n/pt_BR.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar.",
"Channel updated" : "Canal atualizado",
+ "Web updater is disabled" : "O atualizador de Web está desativado",
+ "App updated" : "Aplicativo atualizado",
+ "See what's new" : "Veja o que é novo",
+ "{app} updated to version {version}" : "{app} atualizado para a versão {version}",
"Update notifications" : "Notificações de atualização",
"The update server could not be reached since %d days to check for new updates." : "O servidor de atualização não foi encontrado já há %d dias para verificar por novas atualizações.",
"Please check the Nextcloud and server log files for errors." : "Verifique se há erros nos arquivos de log do servidor e do Nextcloud ",
- "Update to %1$s is available." : "Atualização para %1$s está disponível.",
- "Update for %1$s to version %2$s is available." : "Atualização de %1$s para versão %2$s está disponível.",
+ "Update to {serverAndVersion} is available." : "Uma atualização para {serverAndVersion} está disponível.",
"Update for {app} to version %s is available." : "Atualização para {app} para a versão %s está disponível.",
"Update notification" : "Notificação de atualização",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Exibe notificações de atualização para o Nextcloud e fornece o SSO para o atualizador.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Exibe notificações de atualização para o Nextcloud, atualizações de aplicativos e fornece o SSO para o atualizador.",
+ "Give feedback" : "Dê um retorno",
+ "Get started" : "Comece agora",
+ "No changelog available" : "Nenhum registro de alterações disponível",
+ "What's new in {app} {version}" : "Novidades em {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Uma nova versão está disponível: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Observe que após um novo lançamento, a atualização só aparece após o primeiro lançamento secundário ou posterior. Lançamos novas versões ao longo do tempo e, às vezes, pulamos uma versão quando são encontrados problemas. Saiba mais sobre atualizações e canais de lançamento em {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Verificado em {lastCheckedDate} - Abrir registro de alterações",
+ "Checking apps for compatible versions" : "Verificando aplicativos para versões compatíveis",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Certifique-se de que seu config.php não tenha configurado <samp>appstoreenabled</samp> para falso.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Não foi possível conectar à Loja de Aplicativos ou nenhuma atualização foi retornada. Pesquise manualmente por atualizações ou certifique-se de que seu servidor tenha acesso à Internet e possa se conectar à Loja de Aplicativos.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todos</strong> os aplicativos têm uma versão compatível para esta versão do Nextcloud disponível.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicativo não têm versão compatível para esta versão do Nextcloud disponível.","<strong>%n</strong> aplicativos não têm versão compatível para esta versão do Nextcloud disponível.","<strong>%n</strong> aplicativos não têm versão compatível para esta versão do Nextcloud disponível."],
+ "Enterprise" : "Empresarial",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Fornece sempre o nível de patch mais recente, mas não será atualizado para a próxima versão principal imediatamente. Essa atualização acontece assim que a Nextcloud GmbH fizer mais ajustes e testes para implantações de larga escala e missão crítica. Este canal está disponível apenas para clientes do Nextcloud Enterprise.",
+ "Stable" : "Estável",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versão estável mais recente. É adequada para uso regular e será sempre atualizada para a versão principal mais recente.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Uma versão de pré-lançamento para testar novos recursos, não indicada para produção.",
+ "Update" : "Atualização",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "A versão que você está executando não é mais mantida. Por favor, atualize para uma versão suportada o mais rápido possível.",
- "Apps missing updates" : "Aplicativos faltando atualizações",
+ "Apps missing compatible version" : "Aplicativos sem versão compatível",
"View in store" : "Ver na loja",
- "Apps with available updates" : "Aplicativos com atualizações disponíveis",
+ "Apps with compatible version" : "Aplicativos com versão compatível",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Observe que o atualizador da web não é recomendado para mais de 100 contas! Por favor, use o atualizador de linha de comando!",
"Open updater" : "Abrir atualizador",
"Download now" : "Baixar agora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "O atualizador da web está desativado. Use o atualizador de linha de comando ou o mecanismo de atualização apropriado para o seu método de instalação (p. ex., Docker pull) para atualizar.",
"What's new?" : "O que há de novo?",
+ "View changelog" : "Visualizar registro de alterações",
"The update check is not yet finished. Please refresh the page." : "A verificação de atualização ainda não acabou. Atualize a página.",
"Your version is up to date." : "Sua versão está atualizada.",
"A non-default update server is in use to be checked for updates:" : "Um servidor de atualização não padrão está sendo verificado por atualizações:",
- "Update channel:" : "Atualizar para:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Você sempre pode atualizar para uma versão mais recente, mas nunca pode voltar à uma versão mais estável.",
+ "Update channel" : "Canal de atualização",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Alterar o canal de atualização também afeta a página de gerenciamento de aplicativos. Por exemplo. depois de mudar para o canal beta, as atualizações do aplicativo beta serão oferecidas a você na página de gerenciamento de aplicativos.",
+ "Current update channel:" : "Canal de atualização atual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre é possível atualizar para uma versão mais nova, mas não é possível retroceder para uma versão mais antiga.",
"Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis:",
- "Only notification for app updates are available." : "Só está disponível notificação para atualizações de aplicativos.",
+ "No groups" : "Nenhum grupo",
+ "Only notifications for app updates are available." : "Apenas notificações para atualizações de aplicativos estão disponíveis. ",
"The selected update channel makes dedicated notifications for the server obsolete." : "A atualização selecionada fornece notificações dedicadas para o servidor desatualizado.",
"The selected update channel does not support updates of the server." : "A atualização selecionada não fornece suporte a atualizações do servidor.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Uma nova versão está disponível: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Observe que depois de um novo lançamento, a atualização só aparece após o primeiro lançamento secundário ou posterior. Lançamos novas versões distribuídas ao longo do tempo para nossos usuários e às vezes pulamos uma versão quando problemas são encontrados. Saiba mais sobre atualizações e canais de lançamento em {link}",
- "Checked on {lastCheckedDate}" : "Verificado em {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando atualização dos aplicativos",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Certifique-se de que seu config.php não tenha configurado <samp>appstoreenabled</samp> para falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Não foi possível conectar a appstore ou não havia atualização. Procure manualmente por atualizações ou verifique se o servidor tem acesso à internet.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todos</strong> os aplicativos tem uma atualização disponível",
- "View changelog" : "Visualizar registro de alterações",
- "Enterprise" : "Empresarial",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Fornece sempre o nível de patch mais recente, mas não será atualizado para a próxima versão principal imediatamente. Essa atualização acontece assim que a Nextcloud GmbH fizer mais ajustes e testes para implantações de larga escala e missão crítica. Este canal está disponível apenas para clientes do Nextcloud Enterprise.",
- "Stable" : "Estável",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versão estável mais recente. É adequada para uso regular e será sempre atualizada para a versão principal mais recente.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Uma versão de pré-lançamento para testar novos recursos, não indicada para produção.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicativo não tem atualização disponível","<strong>%n</strong> aplicativos tem uma atualização disponível"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Observe que uma nova versão pode levar um tempo até aparecer aqui. Lançamos novas versões distribuídas ao longo do tempo para nossos usuários e às vezes pulamos uma versão quando problemas são encontrados."
+ "Changelog for app {app}" : "Registro de alterações do aplicativo {app}",
+ "What's new in {app} version {version}" : "Novidades na versão {version} do {app}",
+ "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar."
},
-"nplurals=2; plural=(n > 1);");
+"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/pt_BR.json b/apps/updatenotification/l10n/pt_BR.json
index 723ac312ddd..5b8dfa5328c 100644
--- a/apps/updatenotification/l10n/pt_BR.json
+++ b/apps/updatenotification/l10n/pt_BR.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar.",
"Channel updated" : "Canal atualizado",
+ "Web updater is disabled" : "O atualizador de Web está desativado",
+ "App updated" : "Aplicativo atualizado",
+ "See what's new" : "Veja o que é novo",
+ "{app} updated to version {version}" : "{app} atualizado para a versão {version}",
"Update notifications" : "Notificações de atualização",
"The update server could not be reached since %d days to check for new updates." : "O servidor de atualização não foi encontrado já há %d dias para verificar por novas atualizações.",
"Please check the Nextcloud and server log files for errors." : "Verifique se há erros nos arquivos de log do servidor e do Nextcloud ",
- "Update to %1$s is available." : "Atualização para %1$s está disponível.",
- "Update for %1$s to version %2$s is available." : "Atualização de %1$s para versão %2$s está disponível.",
+ "Update to {serverAndVersion} is available." : "Uma atualização para {serverAndVersion} está disponível.",
"Update for {app} to version %s is available." : "Atualização para {app} para a versão %s está disponível.",
"Update notification" : "Notificação de atualização",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Exibe notificações de atualização para o Nextcloud e fornece o SSO para o atualizador.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Exibe notificações de atualização para o Nextcloud, atualizações de aplicativos e fornece o SSO para o atualizador.",
+ "Give feedback" : "Dê um retorno",
+ "Get started" : "Comece agora",
+ "No changelog available" : "Nenhum registro de alterações disponível",
+ "What's new in {app} {version}" : "Novidades em {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Uma nova versão está disponível: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Observe que após um novo lançamento, a atualização só aparece após o primeiro lançamento secundário ou posterior. Lançamos novas versões ao longo do tempo e, às vezes, pulamos uma versão quando são encontrados problemas. Saiba mais sobre atualizações e canais de lançamento em {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Verificado em {lastCheckedDate} - Abrir registro de alterações",
+ "Checking apps for compatible versions" : "Verificando aplicativos para versões compatíveis",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Certifique-se de que seu config.php não tenha configurado <samp>appstoreenabled</samp> para falso.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Não foi possível conectar à Loja de Aplicativos ou nenhuma atualização foi retornada. Pesquise manualmente por atualizações ou certifique-se de que seu servidor tenha acesso à Internet e possa se conectar à Loja de Aplicativos.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Todos</strong> os aplicativos têm uma versão compatível para esta versão do Nextcloud disponível.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplicativo não têm versão compatível para esta versão do Nextcloud disponível.","<strong>%n</strong> aplicativos não têm versão compatível para esta versão do Nextcloud disponível.","<strong>%n</strong> aplicativos não têm versão compatível para esta versão do Nextcloud disponível."],
+ "Enterprise" : "Empresarial",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Fornece sempre o nível de patch mais recente, mas não será atualizado para a próxima versão principal imediatamente. Essa atualização acontece assim que a Nextcloud GmbH fizer mais ajustes e testes para implantações de larga escala e missão crítica. Este canal está disponível apenas para clientes do Nextcloud Enterprise.",
+ "Stable" : "Estável",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versão estável mais recente. É adequada para uso regular e será sempre atualizada para a versão principal mais recente.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Uma versão de pré-lançamento para testar novos recursos, não indicada para produção.",
+ "Update" : "Atualização",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "A versão que você está executando não é mais mantida. Por favor, atualize para uma versão suportada o mais rápido possível.",
- "Apps missing updates" : "Aplicativos faltando atualizações",
+ "Apps missing compatible version" : "Aplicativos sem versão compatível",
"View in store" : "Ver na loja",
- "Apps with available updates" : "Aplicativos com atualizações disponíveis",
+ "Apps with compatible version" : "Aplicativos com versão compatível",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Observe que o atualizador da web não é recomendado para mais de 100 contas! Por favor, use o atualizador de linha de comando!",
"Open updater" : "Abrir atualizador",
"Download now" : "Baixar agora",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "O atualizador da web está desativado. Use o atualizador de linha de comando ou o mecanismo de atualização apropriado para o seu método de instalação (p. ex., Docker pull) para atualizar.",
"What's new?" : "O que há de novo?",
+ "View changelog" : "Visualizar registro de alterações",
"The update check is not yet finished. Please refresh the page." : "A verificação de atualização ainda não acabou. Atualize a página.",
"Your version is up to date." : "Sua versão está atualizada.",
"A non-default update server is in use to be checked for updates:" : "Um servidor de atualização não padrão está sendo verificado por atualizações:",
- "Update channel:" : "Atualizar para:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "Você sempre pode atualizar para uma versão mais recente, mas nunca pode voltar à uma versão mais estável.",
+ "Update channel" : "Canal de atualização",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Alterar o canal de atualização também afeta a página de gerenciamento de aplicativos. Por exemplo. depois de mudar para o canal beta, as atualizações do aplicativo beta serão oferecidas a você na página de gerenciamento de aplicativos.",
+ "Current update channel:" : "Canal de atualização atual:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Sempre é possível atualizar para uma versão mais nova, mas não é possível retroceder para uma versão mais antiga.",
"Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis:",
- "Only notification for app updates are available." : "Só está disponível notificação para atualizações de aplicativos.",
+ "No groups" : "Nenhum grupo",
+ "Only notifications for app updates are available." : "Apenas notificações para atualizações de aplicativos estão disponíveis. ",
"The selected update channel makes dedicated notifications for the server obsolete." : "A atualização selecionada fornece notificações dedicadas para o servidor desatualizado.",
"The selected update channel does not support updates of the server." : "A atualização selecionada não fornece suporte a atualizações do servidor.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Uma nova versão está disponível: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Observe que depois de um novo lançamento, a atualização só aparece após o primeiro lançamento secundário ou posterior. Lançamos novas versões distribuídas ao longo do tempo para nossos usuários e às vezes pulamos uma versão quando problemas são encontrados. Saiba mais sobre atualizações e canais de lançamento em {link}",
- "Checked on {lastCheckedDate}" : "Verificado em {lastCheckedDate}",
- "Checking apps for compatible updates" : "Verificando atualização dos aplicativos",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Certifique-se de que seu config.php não tenha configurado <samp>appstoreenabled</samp> para falso.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Não foi possível conectar a appstore ou não havia atualização. Procure manualmente por atualizações ou verifique se o servidor tem acesso à internet.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Todos</strong> os aplicativos tem uma atualização disponível",
- "View changelog" : "Visualizar registro de alterações",
- "Enterprise" : "Empresarial",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Para uso empresarial. Fornece sempre o nível de patch mais recente, mas não será atualizado para a próxima versão principal imediatamente. Essa atualização acontece assim que a Nextcloud GmbH fizer mais ajustes e testes para implantações de larga escala e missão crítica. Este canal está disponível apenas para clientes do Nextcloud Enterprise.",
- "Stable" : "Estável",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "A versão estável mais recente. É adequada para uso regular e será sempre atualizada para a versão principal mais recente.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Uma versão de pré-lançamento para testar novos recursos, não indicada para produção.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicativo não tem atualização disponível","<strong>%n</strong> aplicativos tem uma atualização disponível"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Observe que uma nova versão pode levar um tempo até aparecer aqui. Lançamos novas versões distribuídas ao longo do tempo para nossos usuários e às vezes pulamos uma versão quando problemas são encontrados."
-},"pluralForm" :"nplurals=2; plural=(n > 1);"
+ "Changelog for app {app}" : "Registro de alterações do aplicativo {app}",
+ "What's new in {app} version {version}" : "Novidades na versão {version} do {app}",
+ "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar."
+},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/pt_PT.js b/apps/updatenotification/l10n/pt_PT.js
deleted file mode 100644
index 728048689b8..00000000000
--- a/apps/updatenotification/l10n/pt_PT.js
+++ /dev/null
@@ -1,17 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Notificações de atualização",
- "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informação sobre como atualizar.",
- "Updated channel" : "Canal atualizado",
- "Update for %1$s to version %2$s is available." : "Está disponível a atualização para %1$s para a versão %2$s.",
- "Updater" : "Atualizador",
- "A new version is available: %s" : "Está disponível uma nova versão: %s",
- "Open updater" : "Abrir atualizador",
- "Your version is up to date." : "A sua versão está atualizada.",
- "Checked on %s" : "Verificada em %s",
- "Update channel:" : "Canal de atualização:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Pode atualizar sempre para uma nova versão / canal experimental. Mas nunca poderá voltar para um canal mais estável.",
- "Notify members of the following groups about available updates:" : "Notifique os membros dos seguintes grupos sobre as atualizações disponíveis:"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/pt_PT.json b/apps/updatenotification/l10n/pt_PT.json
deleted file mode 100644
index 161e1e5f05a..00000000000
--- a/apps/updatenotification/l10n/pt_PT.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{ "translations": {
- "Update notifications" : "Notificações de atualização",
- "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informação sobre como atualizar.",
- "Updated channel" : "Canal atualizado",
- "Update for %1$s to version %2$s is available." : "Está disponível a atualização para %1$s para a versão %2$s.",
- "Updater" : "Atualizador",
- "A new version is available: %s" : "Está disponível uma nova versão: %s",
- "Open updater" : "Abrir atualizador",
- "Your version is up to date." : "A sua versão está atualizada.",
- "Checked on %s" : "Verificada em %s",
- "Update channel:" : "Canal de atualização:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Pode atualizar sempre para uma nova versão / canal experimental. Mas nunca poderá voltar para um canal mais estável.",
- "Notify members of the following groups about available updates:" : "Notifique os membros dos seguintes grupos sobre as atualizações disponíveis:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ro.js b/apps/updatenotification/l10n/ro.js
deleted file mode 100644
index 465de73c9f4..00000000000
--- a/apps/updatenotification/l10n/ro.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} este disponibil. Află mai multe informații despre cum să faci o actualizare.",
- "Updated channel" : "Canal actualizat",
- "Updater" : "Unealtă pentru actualizare",
- "A new version is available: %s" : "O nouă versiune este disponibilă: %s",
- "Open updater" : "Deschide unealta pentru actualizare",
- "Your version is up to date." : "Versiunea curentă este la zi.",
- "Checked on %s" : "Verificat la %s",
- "Update channel:" : "Canal pentru actualizări:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Poți mereu să faci o actualizare către o versiune nouă / o versiune dintr-un canal experimental. Dar nu te poți niciodată întoarce la un canal de distribuție stabil."
-},
-"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/updatenotification/l10n/ro.json b/apps/updatenotification/l10n/ro.json
deleted file mode 100644
index 56a8c48d3bc..00000000000
--- a/apps/updatenotification/l10n/ro.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} este disponibil. Află mai multe informații despre cum să faci o actualizare.",
- "Updated channel" : "Canal actualizat",
- "Updater" : "Unealtă pentru actualizare",
- "A new version is available: %s" : "O nouă versiune este disponibilă: %s",
- "Open updater" : "Deschide unealta pentru actualizare",
- "Your version is up to date." : "Versiunea curentă este la zi.",
- "Checked on %s" : "Verificat la %s",
- "Update channel:" : "Canal pentru actualizări:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Poți mereu să faci o actualizare către o versiune nouă / o versiune dintr-un canal experimental. Dar nu te poți niciodată întoarce la un canal de distribuție stabil."
-},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ru.js b/apps/updatenotification/l10n/ru.js
index 18bbd2c1ee9..5204335af04 100644
--- a/apps/updatenotification/l10n/ru.js
+++ b/apps/updatenotification/l10n/ru.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о порядке обновления.",
- "Channel updated" : "Канал обновлен.",
+ "Channel updated" : "Канал обновлён",
+ "Web updater is disabled" : "Веб обновление отключено",
+ "App updated" : "Приложение обновлено",
+ "See what's new" : "Просмотреть нововведения",
+ "{app} updated to version {version}" : "Приложение «{app}» обновлено до версии {version}",
"Update notifications" : "Уведомления об обновлениях",
"The update server could not be reached since %d days to check for new updates." : "Сервер обновлений недоступен для проверки наличия обновлений дней: %d.",
"Please check the Nextcloud and server log files for errors." : "Проверьте наличие ошибок в файлах журналов Nextcloud и сервера.",
- "Update to %1$s is available." : "Доступно обновление до версии %1$s.",
- "Update for %1$s to version %2$s is available." : "Для приложения «%1$s» доступно обновление до версии %2$s.",
- "Update for {app} to version %s is available." : "Для приложения «{app}» доступно обновление до версии %s.",
- "Update notification" : "Уведомление о новой версии",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Показывает уведомления об обновлениях для Nextcloud и обеспечивает систему обновления технологией единого входа (SSO).",
+ "Update to {serverAndVersion} is available." : "Доступно обновление до версии {serverAndVersion}.",
+ "Update for {app} to version %s is available." : "Для приложения {app} доступно обновление до версии %s.",
+ "Update notification" : "Уведомление об обновлении",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Отображает уведомления об обновлениях для Nextcloud, обновлениях приложений и предоставляет единый вход для программы обновления.",
+ "Give feedback" : "Обратная связь",
+ "Get started" : "Начать",
+ "No changelog available" : "Список изменений недоступен",
+ "What's new in {app} {version}" : "Новшества {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Доступна новая версия: <strong>{newVersionString}</strong> ",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Обратите внимание, что уведомление о возможности обновления появляется только после первого дополнительного выпуска или позже. Мы выпускаем новые версии с разбивкой по времени и иногда пропускаем версию при обнаружении проблем. Узнайте больше об обновлениях и каналах выпуска на {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Проверено {lastCheckedDate}. Открыть журнал изменений.",
+ "Checking apps for compatible versions" : "Проверка приложений на совместимость версий",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Убедитесь, что значением параметра <samp>appstoreenabled</samp> в файле «config.php» не является «false».",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Не удалось подключиться к App Store или обновления не были получены. Выполните поиск обновлений вручную или убедитесь, что ваш сервер имеет доступ к Интернету и может подключиться к App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Все</strong> приложения имеют версию, совместимую с этой версией Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["У <strong>%n</strong> приложения нет версии, совместимой с этой версией Nextcloud.","У <strong>%n</strong> приложений нет версии, совместимой с этой версией Nextcloud.","У <strong>%n</strong> приложений нет версии, совместимой с этой версией Nextcloud.","У <strong>%n</strong> приложений нет версии, совместимой с этой версией Nextcloud."],
+ "Enterprise" : "Использование на предприятии (Enterprise)",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Для корпоративного использования. Всегда обеспечивает самый последний уровень исправлений, но не будет немедленно обновляться до следующего основного выпуска. Обновление произойдет, когда Nextcloud GmbH проведут дополнительное тестирование для крупномасштабных и критически важных развертываний. Этот канал доступен только для клиентов и предоставляет пакет Nextcloud Enterprise.",
+ "Stable" : "Стабильные выпуски (Stable)",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Актуальная стабильная версия. Подходит для обычного использования и будет обновляться до старшей версии сразу после её выхода.",
+ "Beta" : "Бета-версии (Beta)",
+ "A pre-release version only for testing new features, not for production environments." : "Предрелизная версия, предназначенная только для тестирования новых возможностей.",
+ "Update" : "Обновление",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Версия, которой вы пользуетесь, больше не обслуживается. Пожалуйста, обновитесь до поддерживаемой версии как можно скорее.",
- "Apps missing updates" : "Приложения без обновлений",
+ "Apps missing compatible version" : "Приложения без совместимой версии",
"View in store" : "Перейти в магазин приложений",
- "Apps with available updates" : "Приложения с доступными обновлениями",
+ "Apps with compatible version" : "Приложения с совместимой версией",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Пожалуйста, обратите внимание, что веб-программа обновления не рекомендуется для более чем 100 учетных записей! Пожалуйста, используйте программу обновления из командной строки!",
"Open updater" : "Открыть окно обновления",
"Download now" : "Скачать сейчас",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Веб-программа обновления отключена. Пожалуйста, используйте программу обновления из командной строки или соответствующий вашему методу установки механизм обновления (например, Docker pull) для обновления.",
"What's new?" : "Что нового?",
+ "View changelog" : "Просмотреть изменения",
"The update check is not yet finished. Please refresh the page." : "Проверка обновлений ещё не закончена. Пожалуйста обновите страницу.",
"Your version is up to date." : "Версия не требует обновления.",
"A non-default update server is in use to be checked for updates:" : "Не сервер по умолчанию используется как сервер для проверки обновлений:",
- "Update channel:" : "Канал обновлений:",
+ "Update channel" : "Канал обновлений",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Изменение канала обновления также влияет на страницу управления приложениями. Например. после перехода на бета-канал обновления бета-приложений будут предлагаться вам на странице управления приложениями.",
+ "Current update channel:" : "Текущий канал обновления:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Вы всегда можете обновиться до более новой версии. Но учтите, что вы не сможете откатиться до более стабильной версии.",
"Notify members of the following groups about available updates:" : "Уведомлять о наличии обновлений участников следующих групп:",
- "Only notification for app updates are available." : "Только уведомления об обновлении приложений доступны.",
+ "No groups" : "Без групп",
+ "Only notifications for app updates are available." : "Доступны только уведомления об обновлениях приложений.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Выбранный канал обновлений высылает специальные уведомления, если сервер устарел.",
"The selected update channel does not support updates of the server." : "Выбранный канал обновлений не поддерживает обновление сервера.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Доступна новая версия: <strong>{newVersionString}</strong> ",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Обратите внимание, что уведомление о возможности обновления до новой значительной версии будет показано только после выхода этой версии с первым набором исправлений или позже. Процесс распространения новых версий растягивается во времени, и некоторые версии уведомление о выпуске некоторых версий может быть не показано в случае, если в ней были обнаружены ошибки. Дополнительные сведения о выпуске обновлений и видах каналов приведены на соответствующей странице: {link}.",
- "Checked on {lastCheckedDate}" : "Проверено {lastCheckedDate}",
- "Checking apps for compatible updates" : "Проверка приложений на совместимые обновления",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Убедитесь, что значением параметра <samp>appstoreenabled</samp> в файле «config.php» не является «false».",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Не удалось установить соединение с магазином приложений, либо магазин приложений не предоставляет информации об обновлениях. Выполните поиск обновлений вручную, или убедитесь, что сервер имеет подключение к Интернет и магазин приложений доступен.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Все</strong> приложения имеют доступные обновления для этой версии",
- "View changelog" : "Просмотреть изменения",
- "Enterprise" : "Использование на предприятии (Enterprise)",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Для корпоративного использования. Всегда обеспечивает самый последний уровень исправлений, но не будет немедленно обновляться до следующего основного выпуска. Обновление произойдет, когда Nextcloud GmbH проведут дополнительное тестирование для крупномасштабных и критически важных развертываний. Этот канал доступен только для клиентов и предоставляет пакет Nextcloud Enterprise.",
- "Stable" : "Стабильные выпуски (Stable)",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Актуальная стабильная версия. Подходит для обычного использования и будет обновляться до старшей версии сразу после её выхода.",
- "Beta" : "Бета-версии (Beta)",
- "A pre-release version only for testing new features, not for production environments." : "Предрелизная версия, предназначенная только для тестирования новых возможностей.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Для <strong>%n</strong> приложения отсутствует обновление, совместимое с этой версией.","Для <strong>%n</strong> приложений отсутствуют обновления, совместимые с этой версией.","Для <strong>%n</strong> приложений отсутствуют обновления, совместимые с этой версией.","Для <strong>%n</strong> приложений отсутствуют обновления, совместимые с этой версией."],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Обратите внимание, что с момента выпуска новой версии до её появления здесь может пройти некоторое время. Мы растягиваем во времени распространение новых версий и иногда, при обнаружении проблем, пропускаем версию."
+ "Changelog for app {app}" : "Журнал изменений приложения «{app}»",
+ "What's new in {app} version {version}" : "Новшества {app} версии {version}",
+ "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о способе обновления."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/updatenotification/l10n/ru.json b/apps/updatenotification/l10n/ru.json
index 9aeeb5913d5..d7616975b7f 100644
--- a/apps/updatenotification/l10n/ru.json
+++ b/apps/updatenotification/l10n/ru.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о порядке обновления.",
- "Channel updated" : "Канал обновлен.",
+ "Channel updated" : "Канал обновлён",
+ "Web updater is disabled" : "Веб обновление отключено",
+ "App updated" : "Приложение обновлено",
+ "See what's new" : "Просмотреть нововведения",
+ "{app} updated to version {version}" : "Приложение «{app}» обновлено до версии {version}",
"Update notifications" : "Уведомления об обновлениях",
"The update server could not be reached since %d days to check for new updates." : "Сервер обновлений недоступен для проверки наличия обновлений дней: %d.",
"Please check the Nextcloud and server log files for errors." : "Проверьте наличие ошибок в файлах журналов Nextcloud и сервера.",
- "Update to %1$s is available." : "Доступно обновление до версии %1$s.",
- "Update for %1$s to version %2$s is available." : "Для приложения «%1$s» доступно обновление до версии %2$s.",
- "Update for {app} to version %s is available." : "Для приложения «{app}» доступно обновление до версии %s.",
- "Update notification" : "Уведомление о новой версии",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Показывает уведомления об обновлениях для Nextcloud и обеспечивает систему обновления технологией единого входа (SSO).",
+ "Update to {serverAndVersion} is available." : "Доступно обновление до версии {serverAndVersion}.",
+ "Update for {app} to version %s is available." : "Для приложения {app} доступно обновление до версии %s.",
+ "Update notification" : "Уведомление об обновлении",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Отображает уведомления об обновлениях для Nextcloud, обновлениях приложений и предоставляет единый вход для программы обновления.",
+ "Give feedback" : "Обратная связь",
+ "Get started" : "Начать",
+ "No changelog available" : "Список изменений недоступен",
+ "What's new in {app} {version}" : "Новшества {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Доступна новая версия: <strong>{newVersionString}</strong> ",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Обратите внимание, что уведомление о возможности обновления появляется только после первого дополнительного выпуска или позже. Мы выпускаем новые версии с разбивкой по времени и иногда пропускаем версию при обнаружении проблем. Узнайте больше об обновлениях и каналах выпуска на {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Проверено {lastCheckedDate}. Открыть журнал изменений.",
+ "Checking apps for compatible versions" : "Проверка приложений на совместимость версий",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Убедитесь, что значением параметра <samp>appstoreenabled</samp> в файле «config.php» не является «false».",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Не удалось подключиться к App Store или обновления не были получены. Выполните поиск обновлений вручную или убедитесь, что ваш сервер имеет доступ к Интернету и может подключиться к App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Все</strong> приложения имеют версию, совместимую с этой версией Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["У <strong>%n</strong> приложения нет версии, совместимой с этой версией Nextcloud.","У <strong>%n</strong> приложений нет версии, совместимой с этой версией Nextcloud.","У <strong>%n</strong> приложений нет версии, совместимой с этой версией Nextcloud.","У <strong>%n</strong> приложений нет версии, совместимой с этой версией Nextcloud."],
+ "Enterprise" : "Использование на предприятии (Enterprise)",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Для корпоративного использования. Всегда обеспечивает самый последний уровень исправлений, но не будет немедленно обновляться до следующего основного выпуска. Обновление произойдет, когда Nextcloud GmbH проведут дополнительное тестирование для крупномасштабных и критически важных развертываний. Этот канал доступен только для клиентов и предоставляет пакет Nextcloud Enterprise.",
+ "Stable" : "Стабильные выпуски (Stable)",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Актуальная стабильная версия. Подходит для обычного использования и будет обновляться до старшей версии сразу после её выхода.",
+ "Beta" : "Бета-версии (Beta)",
+ "A pre-release version only for testing new features, not for production environments." : "Предрелизная версия, предназначенная только для тестирования новых возможностей.",
+ "Update" : "Обновление",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Версия, которой вы пользуетесь, больше не обслуживается. Пожалуйста, обновитесь до поддерживаемой версии как можно скорее.",
- "Apps missing updates" : "Приложения без обновлений",
+ "Apps missing compatible version" : "Приложения без совместимой версии",
"View in store" : "Перейти в магазин приложений",
- "Apps with available updates" : "Приложения с доступными обновлениями",
+ "Apps with compatible version" : "Приложения с совместимой версией",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Пожалуйста, обратите внимание, что веб-программа обновления не рекомендуется для более чем 100 учетных записей! Пожалуйста, используйте программу обновления из командной строки!",
"Open updater" : "Открыть окно обновления",
"Download now" : "Скачать сейчас",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Веб-программа обновления отключена. Пожалуйста, используйте программу обновления из командной строки или соответствующий вашему методу установки механизм обновления (например, Docker pull) для обновления.",
"What's new?" : "Что нового?",
+ "View changelog" : "Просмотреть изменения",
"The update check is not yet finished. Please refresh the page." : "Проверка обновлений ещё не закончена. Пожалуйста обновите страницу.",
"Your version is up to date." : "Версия не требует обновления.",
"A non-default update server is in use to be checked for updates:" : "Не сервер по умолчанию используется как сервер для проверки обновлений:",
- "Update channel:" : "Канал обновлений:",
+ "Update channel" : "Канал обновлений",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Изменение канала обновления также влияет на страницу управления приложениями. Например. после перехода на бета-канал обновления бета-приложений будут предлагаться вам на странице управления приложениями.",
+ "Current update channel:" : "Текущий канал обновления:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Вы всегда можете обновиться до более новой версии. Но учтите, что вы не сможете откатиться до более стабильной версии.",
"Notify members of the following groups about available updates:" : "Уведомлять о наличии обновлений участников следующих групп:",
- "Only notification for app updates are available." : "Только уведомления об обновлении приложений доступны.",
+ "No groups" : "Без групп",
+ "Only notifications for app updates are available." : "Доступны только уведомления об обновлениях приложений.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Выбранный канал обновлений высылает специальные уведомления, если сервер устарел.",
"The selected update channel does not support updates of the server." : "Выбранный канал обновлений не поддерживает обновление сервера.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Доступна новая версия: <strong>{newVersionString}</strong> ",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Обратите внимание, что уведомление о возможности обновления до новой значительной версии будет показано только после выхода этой версии с первым набором исправлений или позже. Процесс распространения новых версий растягивается во времени, и некоторые версии уведомление о выпуске некоторых версий может быть не показано в случае, если в ней были обнаружены ошибки. Дополнительные сведения о выпуске обновлений и видах каналов приведены на соответствующей странице: {link}.",
- "Checked on {lastCheckedDate}" : "Проверено {lastCheckedDate}",
- "Checking apps for compatible updates" : "Проверка приложений на совместимые обновления",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Убедитесь, что значением параметра <samp>appstoreenabled</samp> в файле «config.php» не является «false».",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Не удалось установить соединение с магазином приложений, либо магазин приложений не предоставляет информации об обновлениях. Выполните поиск обновлений вручную, или убедитесь, что сервер имеет подключение к Интернет и магазин приложений доступен.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Все</strong> приложения имеют доступные обновления для этой версии",
- "View changelog" : "Просмотреть изменения",
- "Enterprise" : "Использование на предприятии (Enterprise)",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Для корпоративного использования. Всегда обеспечивает самый последний уровень исправлений, но не будет немедленно обновляться до следующего основного выпуска. Обновление произойдет, когда Nextcloud GmbH проведут дополнительное тестирование для крупномасштабных и критически важных развертываний. Этот канал доступен только для клиентов и предоставляет пакет Nextcloud Enterprise.",
- "Stable" : "Стабильные выпуски (Stable)",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Актуальная стабильная версия. Подходит для обычного использования и будет обновляться до старшей версии сразу после её выхода.",
- "Beta" : "Бета-версии (Beta)",
- "A pre-release version only for testing new features, not for production environments." : "Предрелизная версия, предназначенная только для тестирования новых возможностей.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Для <strong>%n</strong> приложения отсутствует обновление, совместимое с этой версией.","Для <strong>%n</strong> приложений отсутствуют обновления, совместимые с этой версией.","Для <strong>%n</strong> приложений отсутствуют обновления, совместимые с этой версией.","Для <strong>%n</strong> приложений отсутствуют обновления, совместимые с этой версией."],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Обратите внимание, что с момента выпуска новой версии до её появления здесь может пройти некоторое время. Мы растягиваем во времени распространение новых версий и иногда, при обнаружении проблем, пропускаем версию."
+ "Changelog for app {app}" : "Журнал изменений приложения «{app}»",
+ "What's new in {app} version {version}" : "Новшества {app} версии {version}",
+ "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о способе обновления."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sc.js b/apps/updatenotification/l10n/sc.js
new file mode 100644
index 00000000000..c912b8ceae0
--- /dev/null
+++ b/apps/updatenotification/l10n/sc.js
@@ -0,0 +1,43 @@
+OC.L10N.register(
+ "updatenotification",
+ {
+ "Channel updated" : "Canale agiornadu",
+ "Web updater is disabled" : "S'agiornamentu web est disativadu",
+ "See what's new" : "Bide is noas",
+ "Update notifications" : "Notìficas de is agiornamentos",
+ "The update server could not be reached since %d days to check for new updates." : "Su serbidore no si podet sighire dae %d dies pro controllare si b'at agiornamentos noos.",
+ "Please check the Nextcloud and server log files for errors." : "Controla is archìvios de registru de Nextcloud e de su serbidore a sa chirca de is errores.",
+ "Update for {app} to version %s is available." : "Est a disponimentu s'agiornamentu de {app} a sa versione %s.",
+ "Update notification" : "Notìficas de agiornamentu",
+ "What's new in {app} {version}" : "Noas in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versione noa est a disponimentu: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Controllu de aplicatziones cun versiones cumpatìbiles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assegura·ti chi su config.php tuo non tèngiat <samp>appstoreenabled</samp> cunfiguradu comente false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No at fatu a si connètere a sa butega de aplicatziones o a sa butega de aplicatziones no at torradu perunu agiornamentu. Chirca a manu is agiornamentos o segura·ti chi su serbidore potzat intrare a Internet e si potzat collegare a sa butega de aplicatziones.",
+ "Enterprise" : "Impresa",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pro un'impreu aziendale. Frunit semper s'ùrtimu livellu de patch, ma non s'at a agiornare deretu a s'ùrtima versione printzipale. Tale agiornamentu at a èssere a disponimentu in su momentu chi Nextcloud GmbH at a àere megioradu sa seguresa, at a àere fatu proas a iscala manna e installatziones in ambientes de importu mannu. Custu canale est a disponimentu isceti pro is clientes e frunit is pachetes Nextcloud Enterprise.",
+ "Stable" : "Istàbile",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Sa versione istàbile prus reghente. Est dèghida pro s'impreu fitianu e at a èssere semper agiornada a s'ùrtima versione printzipale.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versione pre-publicatzione isceti pro proare is funtzionalidades noas, non pro ambientes de produtzione.",
+ "Update" : "Agiorna",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Sa versione chi ses ponende in esecutzione non s'est mantenende prus. Segura·ti de agiornare a una versione suportada cantu in antis.",
+ "Apps missing compatible version" : "Aplicatziones sena versione cumpatìbile",
+ "View in store" : "Visualiza in sa butega",
+ "Apps with compatible version" : "Aplicatzione cun versione cumpatìbile",
+ "Open updater" : "Aberi sa funtzione de agiornamentu",
+ "Download now" : "Iscàrriga immoe",
+ "What's new?" : "Ite noas?",
+ "View changelog" : "Visualiza le novidade",
+ "The update check is not yet finished. Please refresh the page." : "Su controllu de is agiornamentos no est terminadu ancora. Agiorna sa pàgina.",
+ "Your version is up to date." : "Sa versione tua est agiornada.",
+ "A non-default update server is in use to be checked for updates:" : "Ses impreende unu serbidore non predefinidu pro controllare is agiornamentos:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Podes agiornare semper a una versine noa. Ma non podes torrare mai a una versione de in antis.",
+ "Notify members of the following groups about available updates:" : "Notìficas a is membros de is grupos in fatu in contu de sa disponibilidade de agiornamentos:",
+ "Only notifications for app updates are available." : "Sunt a disponimentu isceti is notìficas pro is agiornamentos de is aplicatziones.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Su canale de agiornamentu seletzionadu faghet chi is notìficas dedicadas a su serbidores siant in disusu.",
+ "The selected update channel does not support updates of the server." : "Su canale de agiornamentu seletzionadu non suportat is agiornamentos de su serbidore.",
+ "What's new in {app} version {version}" : "Noas in {app} versione {version}",
+ "{version} is available. Get more information on how to update." : "{version} est a disponimentu. Otene è àteras informatziones subra comente pònnere in esecutzione s'agiornamentu."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/sc.json b/apps/updatenotification/l10n/sc.json
new file mode 100644
index 00000000000..5d2df696766
--- /dev/null
+++ b/apps/updatenotification/l10n/sc.json
@@ -0,0 +1,41 @@
+{ "translations": {
+ "Channel updated" : "Canale agiornadu",
+ "Web updater is disabled" : "S'agiornamentu web est disativadu",
+ "See what's new" : "Bide is noas",
+ "Update notifications" : "Notìficas de is agiornamentos",
+ "The update server could not be reached since %d days to check for new updates." : "Su serbidore no si podet sighire dae %d dies pro controllare si b'at agiornamentos noos.",
+ "Please check the Nextcloud and server log files for errors." : "Controla is archìvios de registru de Nextcloud e de su serbidore a sa chirca de is errores.",
+ "Update for {app} to version %s is available." : "Est a disponimentu s'agiornamentu de {app} a sa versione %s.",
+ "Update notification" : "Notìficas de agiornamentu",
+ "What's new in {app} {version}" : "Noas in {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versione noa est a disponimentu: <strong>{newVersionString}</strong>",
+ "Checking apps for compatible versions" : "Controllu de aplicatziones cun versiones cumpatìbiles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Assegura·ti chi su config.php tuo non tèngiat <samp>appstoreenabled</samp> cunfiguradu comente false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "No at fatu a si connètere a sa butega de aplicatziones o a sa butega de aplicatziones no at torradu perunu agiornamentu. Chirca a manu is agiornamentos o segura·ti chi su serbidore potzat intrare a Internet e si potzat collegare a sa butega de aplicatziones.",
+ "Enterprise" : "Impresa",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pro un'impreu aziendale. Frunit semper s'ùrtimu livellu de patch, ma non s'at a agiornare deretu a s'ùrtima versione printzipale. Tale agiornamentu at a èssere a disponimentu in su momentu chi Nextcloud GmbH at a àere megioradu sa seguresa, at a àere fatu proas a iscala manna e installatziones in ambientes de importu mannu. Custu canale est a disponimentu isceti pro is clientes e frunit is pachetes Nextcloud Enterprise.",
+ "Stable" : "Istàbile",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Sa versione istàbile prus reghente. Est dèghida pro s'impreu fitianu e at a èssere semper agiornada a s'ùrtima versione printzipale.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Una versione pre-publicatzione isceti pro proare is funtzionalidades noas, non pro ambientes de produtzione.",
+ "Update" : "Agiorna",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Sa versione chi ses ponende in esecutzione non s'est mantenende prus. Segura·ti de agiornare a una versione suportada cantu in antis.",
+ "Apps missing compatible version" : "Aplicatziones sena versione cumpatìbile",
+ "View in store" : "Visualiza in sa butega",
+ "Apps with compatible version" : "Aplicatzione cun versione cumpatìbile",
+ "Open updater" : "Aberi sa funtzione de agiornamentu",
+ "Download now" : "Iscàrriga immoe",
+ "What's new?" : "Ite noas?",
+ "View changelog" : "Visualiza le novidade",
+ "The update check is not yet finished. Please refresh the page." : "Su controllu de is agiornamentos no est terminadu ancora. Agiorna sa pàgina.",
+ "Your version is up to date." : "Sa versione tua est agiornada.",
+ "A non-default update server is in use to be checked for updates:" : "Ses impreende unu serbidore non predefinidu pro controllare is agiornamentos:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Podes agiornare semper a una versine noa. Ma non podes torrare mai a una versione de in antis.",
+ "Notify members of the following groups about available updates:" : "Notìficas a is membros de is grupos in fatu in contu de sa disponibilidade de agiornamentos:",
+ "Only notifications for app updates are available." : "Sunt a disponimentu isceti is notìficas pro is agiornamentos de is aplicatziones.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Su canale de agiornamentu seletzionadu faghet chi is notìficas dedicadas a su serbidores siant in disusu.",
+ "The selected update channel does not support updates of the server." : "Su canale de agiornamentu seletzionadu non suportat is agiornamentos de su serbidore.",
+ "What's new in {app} version {version}" : "Noas in {app} versione {version}",
+ "{version} is available. Get more information on how to update." : "{version} est a disponimentu. Otene è àteras informatziones subra comente pònnere in esecutzione s'agiornamentu."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sk.js b/apps/updatenotification/l10n/sk.js
index b3eb1522154..a0c9041a4aa 100644
--- a/apps/updatenotification/l10n/sk.js
+++ b/apps/updatenotification/l10n/sk.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} je dostupná. Získajte viac informácií o postupe aktualizácie.",
"Channel updated" : "Kanál bol aktualizovaný",
+ "Web updater is disabled" : "Aktualizácia cez Web je vypnutá",
+ "App updated" : "Aplikácia aktualizovaná",
+ "See what's new" : "Pozrite si, čo je nového.",
+ "{app} updated to version {version}" : "{app} aktualizovaná na verziu {version}",
"Update notifications" : "Aktualizovať hlásenia",
"The update server could not be reached since %d days to check for new updates." : "Aktualizačný server je nedostupný %d dní pre kontrolu aktualizácií.",
"Please check the Nextcloud and server log files for errors." : "Chyby skontrolujte prosím v logoch Nextcloud a webového servera",
- "Update to %1$s is available." : "Je dostupná aktualizácia na verziu %1$s.",
- "Update for %1$s to version %2$s is available." : "Pre %1$s je dostupná aktualizácia na verziu %2$s.",
+ "Update to {serverAndVersion} is available." : "Je dostupná aktualizácia na {serverAndVersion}.",
"Update for {app} to version %s is available." : "Pre {app} je dostupná aktualizácia na verziu %s.",
"Update notification" : "Aktualizovať hlásenie",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Zobrazí upozornenie na aktualizáciu pre Nextcloud a poskytuje zjednotené prihlasovanie pre aktualizátor.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Zobrazí upozornenie na aktualizáciu pre Nextcloud, aktualizácie aplikácií a poskytuje zjednotené prihlasovanie pre aktualizátor.",
+ "Give feedback" : "Poskytnite spätnú väzbu",
+ "Get started" : "Začnite!",
+ "No changelog available" : "Žiadne zmeny nie sú k dispozícii",
+ "What's new in {app} {version}" : "Čo je nové v {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Je dostupná nová verzia: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Upozorňujeme, že po oficiálnom vydaní novej verzie môže chvíľu trvať, než sa tu objaví. Nové verzie medzi našich užívateľov distribuujeme priebežne rozložené v čase a ak sa nájdu chyby, niekedy danú verziu preskočíme. Viac informácií o kanáloch aktualizácií a vydaní sa dozviete na {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Skontrolované dňa {lastCheckedDate} - Otvoriť záznam o zmenách",
+ "Checking apps for compatible versions" : "Kontrolujú sa aplikácie na kompatibilné verzie",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Prosím uistite sa, že Váš config.php nemá nastavené <samp>appstoreenabled</samp>na false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nepodarilo sa pripojiť k obchodu s aplikáciami alebo obchod nemá žiadne aktualizácie. Aktualizácie hľadajte manuálne alebo sa uistite, že Váš server má prístup na internet a že sa môže pripojiť k obchodu.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Všetky</strong> aplikácie majú dostupnú kompatibilnú verziu s týmto Nextcloudom.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplikácia nemá dostupnú kompatibilnú verziu s týmto Nextcloudom","<strong>%n</strong> aplikácie nemajú dostupnú kompatibilnú verziu s týmto Nextcloudom","<strong>%n</strong> aplikácie nemajú dostupnú kompatibilnú verziu s týmto Nextcloudom","<strong>%n</strong> aplikácie nemajú dostupnú kompatibilnú verziu s týmto Nextcloudom"],
+ "Enterprise" : "Podnikový",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pre podnikové použitie. Poskytuje vždy najnovšiu úroveň opráv, ale neaktualizuje sa okamžite na ďalšie hlavné vydanie. K tejto aktualizácii dôjde, keď Nextcloud GmbH urobí ďalšie zodolnenie a testovanie pre veľké a kritické nasadenia. Tento kanál je k dispozícii iba pre zákazníkov a poskytuje balík Nextcloud Enterprise.",
+ "Stable" : "Stabilný",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovšia stabilná verzia. Je vhodná na bežné používanie a vždy sa aktualizuje na najnovšiu hlavnú verziu.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Verzia pred vydaním iba na testovanie nových funkcií, nevhodné pre ostrú prevádzku.",
+ "Update" : "Aktualizovať",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Verzia, ktorú používate už nie je podporovaná. Čím skôr aktualizujte na podporovanú verziu prosím.",
- "Apps missing updates" : "Aplikácie s chýbajúcimi aktualizáciami",
+ "Apps missing compatible version" : "Aplikácie s chýbajúcou kompatibilnou verziou",
"View in store" : "Zobraziť v obchode",
- "Apps with available updates" : "Aplikácie pre ktoré sú dostupné aktualizácie",
+ "Apps with compatible version" : "Aplikácie s kompatibilnou verziou",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Upozorňujeme, že aktualizácia cez web sa neodporúča pre viac ako 100 účtov! Namiesto toho použite nástroj na aktualizáciu príkazového riadku!",
"Open updater" : "Otvoriť aktualizátor",
"Download now" : "Stiahnuť teraz",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web updater je zakázaný. Použite prosím príkazový riadok pre aktualizáciu alebo vhodný mechanizmus aktualizácie pre váš inštalačný spôsob (napr. Docker pull) na aktualizáciu.",
"What's new?" : "Čo je nové?",
+ "View changelog" : "Zobraziť súhrn zmien",
"The update check is not yet finished. Please refresh the page." : "Kontrola aktualizácií ešte neskončila. Obnovte prosím stránku.",
- "Your version is up to date." : "Vaša verzia je atuálna.",
+ "Your version is up to date." : "Vaša verzia je aktuálna.",
"A non-default update server is in use to be checked for updates:" : "Pre kontrolu aktualizácií sa používa iný než predvolený server:",
- "Update channel:" : "Aktualizačný kanál:",
+ "Update channel" : "Aktualizovať kanál",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Zmena aktualizačného kanála ovplyvňuje aj stránku správy aplikácií. Napr. po prepnutí na beta kanál vám budú na stránke správy aplikácií ponúknuté aktualizácie na beta verzie aplikácií.",
+ "Current update channel:" : "Aktuálny kanál aktualizácií:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Vždy môžete aktualizovať na novšiu verziu, ale nikdy nemôžete prejsť na nižšiu, stabilnejšiu verziu.",
"Notify members of the following groups about available updates:" : "Upozorňovať členov nasledujúcich skupín o dostupných aktualizáciach:",
- "Only notification for app updates are available." : "Sú dostupné upozornenia iba pre aktualizácie aplikácií.",
+ "No groups" : "Žiadne skupiny",
+ "Only notifications for app updates are available." : "Sú dostupné upozornenia iba pre aktualizácie aplikácií.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Pre vybraný aktualizačný kanál budú priradené upozornenia pre server zastarané.",
"The selected update channel does not support updates of the server." : "Vybraný aktualizačný kanál nepodporuje aktualizácie servera.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Je dostupná nová verzia: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Skontrolované {lastCheckedDate}",
- "Checking apps for compatible updates" : "Kontrolujú sa aplikácie na kompatibilné aktualizácie",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Prosím uistite sa, že Váš config.php nemá nastavené <samp>appstoreenabled</samp>na false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nepodarilo sa pripojiť k obchodu s aplikáciami alebo obchod nemá žiadne aktualizácie. Aktualizácie hľadajte manuálne alebo sa uistite, že Váš server má prístup na internet a že sa môže pripojiť k obchodu.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Všetky</strong> aplikácie majú dostupnú aktualizáciu",
- "View changelog" : "Zobraziť súhrn zmien",
- "Enterprise" : "Podnikové",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pre podnikové použitie. Poskytuje vždy najnovšiu úroveň opráv, ale neaktualizuje sa okamžite na ďalšie hlavné vydanie. K tejto aktualizácii dôjde, keď Nextcloud GmbH urobí ďalšie zodolnenie a testovanie pre veľké a kritické nasadenia. Tento kanál je k dispozícii iba pre zákazníkov a poskytuje balík Nextcloud Enterprise.",
- "Stable" : "Stabilná",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovšia stabilná verzia. Je vhodná na bežné používanie a vždy sa aktualizuje na najnovšiu hlavnú verziu.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Verzia pred vydaním iba na testovanie nových funkcií, nie pre praktické nasadenie.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikácia nemá dostupnú aktualizáciu na túto verziu","<strong>%n</strong> aplikácie nemá dostupnú aktualizáciu na túto verziu ","<strong>%n</strong> aplikácií nemá dostupnú aktualizáciu na túto verziu","<strong>%n</strong>aplikácií nemá dostupnú aktualizáciu na túto verziu"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Upozorňujeme, že po oficiálnom vydaní novej verzie môže chvíľu trvať, než sa tu objaví. Nové verzie medzi našich používateľov distribuujeme priebežne rozložené v čase a ak sa nájdu chyby, niekedy danú verziu preskočíme."
+ "Changelog for app {app}" : "Zoznam zmien pre aplikáciu {app}",
+ "What's new in {app} version {version}" : "Čo je nové v {app} verzie {version}",
+ "{version} is available. Get more information on how to update." : "{version} je dostupná. Získajte viac informácií o postupe aktualizácie."
},
"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/updatenotification/l10n/sk.json b/apps/updatenotification/l10n/sk.json
index a69ca2bf9d3..a1402b18eea 100644
--- a/apps/updatenotification/l10n/sk.json
+++ b/apps/updatenotification/l10n/sk.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} je dostupná. Získajte viac informácií o postupe aktualizácie.",
"Channel updated" : "Kanál bol aktualizovaný",
+ "Web updater is disabled" : "Aktualizácia cez Web je vypnutá",
+ "App updated" : "Aplikácia aktualizovaná",
+ "See what's new" : "Pozrite si, čo je nového.",
+ "{app} updated to version {version}" : "{app} aktualizovaná na verziu {version}",
"Update notifications" : "Aktualizovať hlásenia",
"The update server could not be reached since %d days to check for new updates." : "Aktualizačný server je nedostupný %d dní pre kontrolu aktualizácií.",
"Please check the Nextcloud and server log files for errors." : "Chyby skontrolujte prosím v logoch Nextcloud a webového servera",
- "Update to %1$s is available." : "Je dostupná aktualizácia na verziu %1$s.",
- "Update for %1$s to version %2$s is available." : "Pre %1$s je dostupná aktualizácia na verziu %2$s.",
+ "Update to {serverAndVersion} is available." : "Je dostupná aktualizácia na {serverAndVersion}.",
"Update for {app} to version %s is available." : "Pre {app} je dostupná aktualizácia na verziu %s.",
"Update notification" : "Aktualizovať hlásenie",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Zobrazí upozornenie na aktualizáciu pre Nextcloud a poskytuje zjednotené prihlasovanie pre aktualizátor.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Zobrazí upozornenie na aktualizáciu pre Nextcloud, aktualizácie aplikácií a poskytuje zjednotené prihlasovanie pre aktualizátor.",
+ "Give feedback" : "Poskytnite spätnú väzbu",
+ "Get started" : "Začnite!",
+ "No changelog available" : "Žiadne zmeny nie sú k dispozícii",
+ "What's new in {app} {version}" : "Čo je nové v {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Je dostupná nová verzia: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Upozorňujeme, že po oficiálnom vydaní novej verzie môže chvíľu trvať, než sa tu objaví. Nové verzie medzi našich užívateľov distribuujeme priebežne rozložené v čase a ak sa nájdu chyby, niekedy danú verziu preskočíme. Viac informácií o kanáloch aktualizácií a vydaní sa dozviete na {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Skontrolované dňa {lastCheckedDate} - Otvoriť záznam o zmenách",
+ "Checking apps for compatible versions" : "Kontrolujú sa aplikácie na kompatibilné verzie",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Prosím uistite sa, že Váš config.php nemá nastavené <samp>appstoreenabled</samp>na false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Nepodarilo sa pripojiť k obchodu s aplikáciami alebo obchod nemá žiadne aktualizácie. Aktualizácie hľadajte manuálne alebo sa uistite, že Váš server má prístup na internet a že sa môže pripojiť k obchodu.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Všetky</strong> aplikácie majú dostupnú kompatibilnú verziu s týmto Nextcloudom.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> aplikácia nemá dostupnú kompatibilnú verziu s týmto Nextcloudom","<strong>%n</strong> aplikácie nemajú dostupnú kompatibilnú verziu s týmto Nextcloudom","<strong>%n</strong> aplikácie nemajú dostupnú kompatibilnú verziu s týmto Nextcloudom","<strong>%n</strong> aplikácie nemajú dostupnú kompatibilnú verziu s týmto Nextcloudom"],
+ "Enterprise" : "Podnikový",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pre podnikové použitie. Poskytuje vždy najnovšiu úroveň opráv, ale neaktualizuje sa okamžite na ďalšie hlavné vydanie. K tejto aktualizácii dôjde, keď Nextcloud GmbH urobí ďalšie zodolnenie a testovanie pre veľké a kritické nasadenia. Tento kanál je k dispozícii iba pre zákazníkov a poskytuje balík Nextcloud Enterprise.",
+ "Stable" : "Stabilný",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovšia stabilná verzia. Je vhodná na bežné používanie a vždy sa aktualizuje na najnovšiu hlavnú verziu.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Verzia pred vydaním iba na testovanie nových funkcií, nevhodné pre ostrú prevádzku.",
+ "Update" : "Aktualizovať",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Verzia, ktorú používate už nie je podporovaná. Čím skôr aktualizujte na podporovanú verziu prosím.",
- "Apps missing updates" : "Aplikácie s chýbajúcimi aktualizáciami",
+ "Apps missing compatible version" : "Aplikácie s chýbajúcou kompatibilnou verziou",
"View in store" : "Zobraziť v obchode",
- "Apps with available updates" : "Aplikácie pre ktoré sú dostupné aktualizácie",
+ "Apps with compatible version" : "Aplikácie s kompatibilnou verziou",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Upozorňujeme, že aktualizácia cez web sa neodporúča pre viac ako 100 účtov! Namiesto toho použite nástroj na aktualizáciu príkazového riadku!",
"Open updater" : "Otvoriť aktualizátor",
"Download now" : "Stiahnuť teraz",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web updater je zakázaný. Použite prosím príkazový riadok pre aktualizáciu alebo vhodný mechanizmus aktualizácie pre váš inštalačný spôsob (napr. Docker pull) na aktualizáciu.",
"What's new?" : "Čo je nové?",
+ "View changelog" : "Zobraziť súhrn zmien",
"The update check is not yet finished. Please refresh the page." : "Kontrola aktualizácií ešte neskončila. Obnovte prosím stránku.",
- "Your version is up to date." : "Vaša verzia je atuálna.",
+ "Your version is up to date." : "Vaša verzia je aktuálna.",
"A non-default update server is in use to be checked for updates:" : "Pre kontrolu aktualizácií sa používa iný než predvolený server:",
- "Update channel:" : "Aktualizačný kanál:",
+ "Update channel" : "Aktualizovať kanál",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Zmena aktualizačného kanála ovplyvňuje aj stránku správy aplikácií. Napr. po prepnutí na beta kanál vám budú na stránke správy aplikácií ponúknuté aktualizácie na beta verzie aplikácií.",
+ "Current update channel:" : "Aktuálny kanál aktualizácií:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Vždy môžete aktualizovať na novšiu verziu, ale nikdy nemôžete prejsť na nižšiu, stabilnejšiu verziu.",
"Notify members of the following groups about available updates:" : "Upozorňovať členov nasledujúcich skupín o dostupných aktualizáciach:",
- "Only notification for app updates are available." : "Sú dostupné upozornenia iba pre aktualizácie aplikácií.",
+ "No groups" : "Žiadne skupiny",
+ "Only notifications for app updates are available." : "Sú dostupné upozornenia iba pre aktualizácie aplikácií.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Pre vybraný aktualizačný kanál budú priradené upozornenia pre server zastarané.",
"The selected update channel does not support updates of the server." : "Vybraný aktualizačný kanál nepodporuje aktualizácie servera.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Je dostupná nová verzia: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Skontrolované {lastCheckedDate}",
- "Checking apps for compatible updates" : "Kontrolujú sa aplikácie na kompatibilné aktualizácie",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Prosím uistite sa, že Váš config.php nemá nastavené <samp>appstoreenabled</samp>na false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Nepodarilo sa pripojiť k obchodu s aplikáciami alebo obchod nemá žiadne aktualizácie. Aktualizácie hľadajte manuálne alebo sa uistite, že Váš server má prístup na internet a že sa môže pripojiť k obchodu.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Všetky</strong> aplikácie majú dostupnú aktualizáciu",
- "View changelog" : "Zobraziť súhrn zmien",
- "Enterprise" : "Podnikové",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Pre podnikové použitie. Poskytuje vždy najnovšiu úroveň opráv, ale neaktualizuje sa okamžite na ďalšie hlavné vydanie. K tejto aktualizácii dôjde, keď Nextcloud GmbH urobí ďalšie zodolnenie a testovanie pre veľké a kritické nasadenia. Tento kanál je k dispozícii iba pre zákazníkov a poskytuje balík Nextcloud Enterprise.",
- "Stable" : "Stabilná",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovšia stabilná verzia. Je vhodná na bežné používanie a vždy sa aktualizuje na najnovšiu hlavnú verziu.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Verzia pred vydaním iba na testovanie nových funkcií, nie pre praktické nasadenie.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplikácia nemá dostupnú aktualizáciu na túto verziu","<strong>%n</strong> aplikácie nemá dostupnú aktualizáciu na túto verziu ","<strong>%n</strong> aplikácií nemá dostupnú aktualizáciu na túto verziu","<strong>%n</strong>aplikácií nemá dostupnú aktualizáciu na túto verziu"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Upozorňujeme, že po oficiálnom vydaní novej verzie môže chvíľu trvať, než sa tu objaví. Nové verzie medzi našich používateľov distribuujeme priebežne rozložené v čase a ak sa nájdu chyby, niekedy danú verziu preskočíme."
+ "Changelog for app {app}" : "Zoznam zmien pre aplikáciu {app}",
+ "What's new in {app} version {version}" : "Čo je nové v {app} verzie {version}",
+ "{version} is available. Get more information on how to update." : "{version} je dostupná. Získajte viac informácií o postupe aktualizácie."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sk_SK.js b/apps/updatenotification/l10n/sk_SK.js
deleted file mode 100644
index 6ec23bbed31..00000000000
--- a/apps/updatenotification/l10n/sk_SK.js
+++ /dev/null
@@ -1,24 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "Update notifications" : "Upozornenia aktualizácií",
- "Could not start updater, please try the manual update" : "Nebolo možné spustiť aktualizátor, skúste prosím manuálnu aktualizáciu",
- "{version} is available. Get more information on how to update." : "{version} je dostupná. Získajte viac informácií o postupe aktualizácie.",
- "Channel updated" : "Kanál bol aktualizovaný",
- "Update to %1$s is available." : "Je dostupná aktualizácia na verziu %1$s.",
- "Update for %1$s to version %2$s is available." : "Pre %1$s je dostupná aktualizácia na verziu %2$s.",
- "Update for {app} to version %s is available." : "Pre {app} je dostupná aktualizácia na verziu %s.",
- "A new version is available: %s" : "Je dostupná nová verzia: %s",
- "Open updater" : "Otvoriť aktualizátor",
- "Download now" : "Stiahnuť teraz",
- "Your version is up to date." : "Vaša verzia je atuálna.",
- "Checked on %s" : "Skontrolované %s",
- "Update channel:" : "Aktualizačný kanál:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Vždy je možné prejsť na novšiu verziu / experimentálny kanál. Ale následne nie je možné prejsť naspäť na staršiu verziu / stabilnejší kanál.",
- "Notify members of the following groups about available updates:" : "Upozorňovať členov nasledujúcich skupín o dostupných aktualizáciach:",
- "Only notification for app updates are available." : "Sú dostupné upozornenia iba pre aktualizácie aplikácií.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Pre vybraný aktualizačný kanál budú priradené upozornenia pre server zastarané.",
- "The selected update channel does not support updates of the server." : "Vybraný aktualizačný kanál nepodporuje aktualizácie servera.",
- "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "Momentálne používate PHP %s. Pre aktualizáciu na Nextcloud 11 je potrebné PHP verzie minimálne 5.6. Ako náhle aktualizujete verziu PHP budete dostávať upozornenia s možnosťou aktualizácie na novšie verzie."
-},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/updatenotification/l10n/sk_SK.json b/apps/updatenotification/l10n/sk_SK.json
deleted file mode 100644
index 0a10a476301..00000000000
--- a/apps/updatenotification/l10n/sk_SK.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{ "translations": {
- "Update notifications" : "Upozornenia aktualizácií",
- "Could not start updater, please try the manual update" : "Nebolo možné spustiť aktualizátor, skúste prosím manuálnu aktualizáciu",
- "{version} is available. Get more information on how to update." : "{version} je dostupná. Získajte viac informácií o postupe aktualizácie.",
- "Channel updated" : "Kanál bol aktualizovaný",
- "Update to %1$s is available." : "Je dostupná aktualizácia na verziu %1$s.",
- "Update for %1$s to version %2$s is available." : "Pre %1$s je dostupná aktualizácia na verziu %2$s.",
- "Update for {app} to version %s is available." : "Pre {app} je dostupná aktualizácia na verziu %s.",
- "A new version is available: %s" : "Je dostupná nová verzia: %s",
- "Open updater" : "Otvoriť aktualizátor",
- "Download now" : "Stiahnuť teraz",
- "Your version is up to date." : "Vaša verzia je atuálna.",
- "Checked on %s" : "Skontrolované %s",
- "Update channel:" : "Aktualizačný kanál:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Vždy je možné prejsť na novšiu verziu / experimentálny kanál. Ale následne nie je možné prejsť naspäť na staršiu verziu / stabilnejší kanál.",
- "Notify members of the following groups about available updates:" : "Upozorňovať členov nasledujúcich skupín o dostupných aktualizáciach:",
- "Only notification for app updates are available." : "Sú dostupné upozornenia iba pre aktualizácie aplikácií.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Pre vybraný aktualizačný kanál budú priradené upozornenia pre server zastarané.",
- "The selected update channel does not support updates of the server." : "Vybraný aktualizačný kanál nepodporuje aktualizácie servera.",
- "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "Momentálne používate PHP %s. Pre aktualizáciu na Nextcloud 11 je potrebné PHP verzie minimálne 5.6. Ako náhle aktualizujete verziu PHP budete dostávať upozornenia s možnosťou aktualizácie na novšie verzie."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sl.js b/apps/updatenotification/l10n/sl.js
index 87d49b4a275..872322b88e0 100644
--- a/apps/updatenotification/l10n/sl.js
+++ b/apps/updatenotification/l10n/sl.js
@@ -1,46 +1,48 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Na voljo je nova različica {version}. Oglejte si več podrobnosti o nadgradnji.",
"Channel updated" : "Kanal je posodobljen",
+ "Web updater is disabled" : "Spletni posodabljalnik je onemogočen",
"Update notifications" : "Obvestila o posodobitvah",
"The update server could not be reached since %d days to check for new updates." : "Vzpostavitev povezave s strežnikom za posodobitve ni mogoče že %d dni.",
"Please check the Nextcloud and server log files for errors." : "Preverite strežniške in sistemske dnevnike za napake.",
- "Update to %1$s is available." : "Na voljo je posodobitev na %1$s.",
- "Update for %1$s to version %2$s is available." : "Na voljo je posodobitev %1$s na različico %2$s.",
+ "Update to {serverAndVersion} is available." : "Na voljo je posodobitev za {serverAndVersion}.",
"Update for {app} to version %s is available." : "Na voljo je posodobitev programa {app} na različico %s.",
"Update notification" : "Obvestilo o posodobitvi",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Pokaže obvestila o posodobitvah okolja Nextcloud in omogoča prijavo SSO za posodabljalnik.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Na voljo je nova različica: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Po vsaki novi objavi je lahko tudi daljši časovni zamik, preden se posodobitev pojavi v sistemu in se pokaže šele po prvi posodobitvi. Nove različice objavljamo v časovnih razmikih in včasih kakšno tudi preskočimo, če so zaznane težave ali napake. Več podrobnosti o kanalih objav je zbranih na povezavi {link}.",
+ "Checking apps for compatible versions" : "Preverjanje skladnih posodobitev različic programov",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Prepričajte se, da v datoteki config.php možnost <samp>appstoreenabled</samp> ni nastavljena na vrednost napak – false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Povezava s trgovino programov ni na voljo, ali pa ni nobene posodobitve. Posodobitve je mogoče iskati ročno, preveriti pa je treba tudi povezljivost programa s strežnikom posodobitev.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Vsi</strong> programi imajo izdano skladno različico za trenutno nameščen oblak Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> nameščen program nima skladne različice s trenutno različico oblaka Nextcloud.","<strong>%n</strong> nameščena programa nimata skladne različice s trenutno različico oblaka Nextcloud.","<strong>%n</strong> nameščeni programi nimajo skladne različice s trenutno različico oblaka Nextcloud.","<strong>%n</strong> nameščenih programov nima skladne različice s trenutno različico oblaka Nextcloud."],
+ "Enterprise" : "Poslovno",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Za poslovno uporabo. Na voljo so najnovejši popravki programov in manjše posodobitve, ne pa tudi takojšnja nadgradnja sistema na naslednjo večjo različico. Ta posodobitev je na voljo šele po daljšem in podrobnejšem preizkušanju sistema. Ta kanal je na voljo le naročnikom, ki uporabljajo paket Nextcloud Enterprise.",
+ "Stable" : "Stabilno",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovejša stabilna različica je primerna za običajno rabo in bo vedno posodobljena na zadnjo najvišjo različico.",
+ "Beta" : "Preizkusno",
+ "A pre-release version only for testing new features, not for production environments." : "Preizkusna različica je namenjena preizkušanju novih zmožnosti in ni primerna za produkcijska okolja.",
+ "Update" : "Posodobi",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Različica, ki je trenutno v uporabi, ni več vzdrževana. Priporočljivo je čim prej posodobiti okolje!",
- "Apps missing updates" : "Manjkajoče programske posodobitve",
+ "Apps missing compatible version" : "Programi brez podprte različice",
"View in store" : "Pokaži v trgovini",
- "Apps with available updates" : "Programi z objavljenimi posodobitvami",
+ "Apps with compatible version" : "Programi s podprto različico",
"Open updater" : "Odpri posodabljalnik",
"Download now" : "Prejmi takoj",
"What's new?" : "Kaj je novega?",
+ "View changelog" : "Ogled Dnevnika sprememb",
"The update check is not yet finished. Please refresh the page." : "Preverjanje za posodobitve še ni končano. Osvežite stran za ponovno vzpostavitev seje.",
"Your version is up to date." : "Nameščena je najnovejša različica.",
"A non-default update server is in use to be checked for updates:" : "Za posodobitev bo uporabljen neprivzet strežnik:",
- "Update channel:" : "Posodobi kanal:",
+ "Update channel" : "Kanal za posodobitve",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Kanal za posodobitve vpliva na stran za upravljanje z nameščenimi programi. Pri preklopu na različico beta so za namestitev na primer na voljo tudi beta različice programske opreme.",
+ "Current update channel:" : "Trenutno uporabljeni kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Nadgradnja na višjo različico je vedno mogoča, ne pa tudi povrnitev na predhodno, bolj stabilno.",
- "Notify members of the following groups about available updates:" : "Člani navedenih skupin, ki so obveščeni o posodobitvah:",
- "Only notification for app updates are available." : "Na voljo so le obvestila za posodobitve programov.",
+ "Notify members of the following groups about available updates:" : "O posodobitvah bodo obveščeni člani skupin:",
+ "No groups" : "Ni navedenih skupin",
+ "Only notifications for app updates are available." : "Na voljo so le obvestila za posodobitve programov.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Izbran kanal za posodobitve onemogoča obvestila s strežnika.",
"The selected update channel does not support updates of the server." : "Izbran kanal za posodobitve ne omogoča posodobitev stražnika.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Na voljo je nova različica: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Nazadnje preverjeno {lastCheckedDate}",
- "Checking apps for compatible updates" : "Poteka preverjanje za skladne posodobitve ...",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Prepričajte se, da v datoteki config.php možnost <samp>appstoreenabled</samp> ni nastavljena na vrednost napak – false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "S trgovino se ni mogoče povezati, ali pa usklajevanje ni vrnilo nobenih posodobitev. Te je mogoče poiskati tudi ročno, priporočljivo pa je preveriti, ali ima strežnik dostop do interneta in je povezava s trgovino sploh mogoča.",
- "<strong>All</strong> apps have an update for this version available" : "Za <strong>vse nameščene programe</strong> je na voljo podprta posodobitev.",
- "View changelog" : "Ogled Dnevnika sprememb",
- "Enterprise" : "Poslovno",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Za poslovno uporabo. Na voljo so najnovejši popravki programov in manjše posodobitve, ne pa tudi takojšnja nadgradnja sistema na naslednjo večjo različico. Ta posodobitev je na voljo šele po daljšem in podrobnejšem preizkušanju sistema. Ta kanal je na voljo le naročnikom, ki uporabljajo paket Nextcloud Enterprise.",
- "Stable" : "Stabilno",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovejša stabilna različica je primerna za običajno rabo in bo vedno posodobljena na zadnjo najvišjo različico.",
- "Beta" : "Preizkusno",
- "A pre-release version only for testing new features, not for production environments." : "Preizkusna različica je namenjena preizkušanju novih zmožnosti in ni primerna za produkcijska okolja.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Za <strong>%n</strong> program je na voljo posodobitev za to različico.","Za <strong>%n</strong> programa so na voljo posodobitve za to različico.","Za <strong>%n</strong> programe so na voljo posodobitve za to različico.","Za <strong>%n</strong> programov so na voljo posodobitve za to različico."],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Po vsaki novi objavi je lahko tudi daljši časovni zamik, preden se posodobitev pojavi v sistemu. Nove različice objavljamo v časovnih razmikih in včasih kakšno tudi preskočimo, če prvi uporabniki zaznajo težave, ali napake."
+ "{version} is available. Get more information on how to update." : "Na voljo je nova različica {version}. Oglejte si več podrobnosti o nadgradnji."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/updatenotification/l10n/sl.json b/apps/updatenotification/l10n/sl.json
index 30975e23fb8..ed384ffd874 100644
--- a/apps/updatenotification/l10n/sl.json
+++ b/apps/updatenotification/l10n/sl.json
@@ -1,44 +1,46 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Na voljo je nova različica {version}. Oglejte si več podrobnosti o nadgradnji.",
"Channel updated" : "Kanal je posodobljen",
+ "Web updater is disabled" : "Spletni posodabljalnik je onemogočen",
"Update notifications" : "Obvestila o posodobitvah",
"The update server could not be reached since %d days to check for new updates." : "Vzpostavitev povezave s strežnikom za posodobitve ni mogoče že %d dni.",
"Please check the Nextcloud and server log files for errors." : "Preverite strežniške in sistemske dnevnike za napake.",
- "Update to %1$s is available." : "Na voljo je posodobitev na %1$s.",
- "Update for %1$s to version %2$s is available." : "Na voljo je posodobitev %1$s na različico %2$s.",
+ "Update to {serverAndVersion} is available." : "Na voljo je posodobitev za {serverAndVersion}.",
"Update for {app} to version %s is available." : "Na voljo je posodobitev programa {app} na različico %s.",
"Update notification" : "Obvestilo o posodobitvi",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Pokaže obvestila o posodobitvah okolja Nextcloud in omogoča prijavo SSO za posodabljalnik.",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Na voljo je nova različica: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Po vsaki novi objavi je lahko tudi daljši časovni zamik, preden se posodobitev pojavi v sistemu in se pokaže šele po prvi posodobitvi. Nove različice objavljamo v časovnih razmikih in včasih kakšno tudi preskočimo, če so zaznane težave ali napake. Več podrobnosti o kanalih objav je zbranih na povezavi {link}.",
+ "Checking apps for compatible versions" : "Preverjanje skladnih posodobitev različic programov",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Prepričajte se, da v datoteki config.php možnost <samp>appstoreenabled</samp> ni nastavljena na vrednost napak – false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Povezava s trgovino programov ni na voljo, ali pa ni nobene posodobitve. Posodobitve je mogoče iskati ročno, preveriti pa je treba tudi povezljivost programa s strežnikom posodobitev.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Vsi</strong> programi imajo izdano skladno različico za trenutno nameščen oblak Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> nameščen program nima skladne različice s trenutno različico oblaka Nextcloud.","<strong>%n</strong> nameščena programa nimata skladne različice s trenutno različico oblaka Nextcloud.","<strong>%n</strong> nameščeni programi nimajo skladne različice s trenutno različico oblaka Nextcloud.","<strong>%n</strong> nameščenih programov nima skladne različice s trenutno različico oblaka Nextcloud."],
+ "Enterprise" : "Poslovno",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Za poslovno uporabo. Na voljo so najnovejši popravki programov in manjše posodobitve, ne pa tudi takojšnja nadgradnja sistema na naslednjo večjo različico. Ta posodobitev je na voljo šele po daljšem in podrobnejšem preizkušanju sistema. Ta kanal je na voljo le naročnikom, ki uporabljajo paket Nextcloud Enterprise.",
+ "Stable" : "Stabilno",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovejša stabilna različica je primerna za običajno rabo in bo vedno posodobljena na zadnjo najvišjo različico.",
+ "Beta" : "Preizkusno",
+ "A pre-release version only for testing new features, not for production environments." : "Preizkusna različica je namenjena preizkušanju novih zmožnosti in ni primerna za produkcijska okolja.",
+ "Update" : "Posodobi",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Različica, ki je trenutno v uporabi, ni več vzdrževana. Priporočljivo je čim prej posodobiti okolje!",
- "Apps missing updates" : "Manjkajoče programske posodobitve",
+ "Apps missing compatible version" : "Programi brez podprte različice",
"View in store" : "Pokaži v trgovini",
- "Apps with available updates" : "Programi z objavljenimi posodobitvami",
+ "Apps with compatible version" : "Programi s podprto različico",
"Open updater" : "Odpri posodabljalnik",
"Download now" : "Prejmi takoj",
"What's new?" : "Kaj je novega?",
+ "View changelog" : "Ogled Dnevnika sprememb",
"The update check is not yet finished. Please refresh the page." : "Preverjanje za posodobitve še ni končano. Osvežite stran za ponovno vzpostavitev seje.",
"Your version is up to date." : "Nameščena je najnovejša različica.",
"A non-default update server is in use to be checked for updates:" : "Za posodobitev bo uporabljen neprivzet strežnik:",
- "Update channel:" : "Posodobi kanal:",
+ "Update channel" : "Kanal za posodobitve",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Kanal za posodobitve vpliva na stran za upravljanje z nameščenimi programi. Pri preklopu na različico beta so za namestitev na primer na voljo tudi beta različice programske opreme.",
+ "Current update channel:" : "Trenutno uporabljeni kanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Nadgradnja na višjo različico je vedno mogoča, ne pa tudi povrnitev na predhodno, bolj stabilno.",
- "Notify members of the following groups about available updates:" : "Člani navedenih skupin, ki so obveščeni o posodobitvah:",
- "Only notification for app updates are available." : "Na voljo so le obvestila za posodobitve programov.",
+ "Notify members of the following groups about available updates:" : "O posodobitvah bodo obveščeni člani skupin:",
+ "No groups" : "Ni navedenih skupin",
+ "Only notifications for app updates are available." : "Na voljo so le obvestila za posodobitve programov.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Izbran kanal za posodobitve onemogoča obvestila s strežnika.",
"The selected update channel does not support updates of the server." : "Izbran kanal za posodobitve ne omogoča posodobitev stražnika.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Na voljo je nova različica: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Nazadnje preverjeno {lastCheckedDate}",
- "Checking apps for compatible updates" : "Poteka preverjanje za skladne posodobitve ...",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Prepričajte se, da v datoteki config.php možnost <samp>appstoreenabled</samp> ni nastavljena na vrednost napak – false.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "S trgovino se ni mogoče povezati, ali pa usklajevanje ni vrnilo nobenih posodobitev. Te je mogoče poiskati tudi ročno, priporočljivo pa je preveriti, ali ima strežnik dostop do interneta in je povezava s trgovino sploh mogoča.",
- "<strong>All</strong> apps have an update for this version available" : "Za <strong>vse nameščene programe</strong> je na voljo podprta posodobitev.",
- "View changelog" : "Ogled Dnevnika sprememb",
- "Enterprise" : "Poslovno",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Za poslovno uporabo. Na voljo so najnovejši popravki programov in manjše posodobitve, ne pa tudi takojšnja nadgradnja sistema na naslednjo večjo različico. Ta posodobitev je na voljo šele po daljšem in podrobnejšem preizkušanju sistema. Ta kanal je na voljo le naročnikom, ki uporabljajo paket Nextcloud Enterprise.",
- "Stable" : "Stabilno",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Najnovejša stabilna različica je primerna za običajno rabo in bo vedno posodobljena na zadnjo najvišjo različico.",
- "Beta" : "Preizkusno",
- "A pre-release version only for testing new features, not for production environments." : "Preizkusna različica je namenjena preizkušanju novih zmožnosti in ni primerna za produkcijska okolja.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["Za <strong>%n</strong> program je na voljo posodobitev za to različico.","Za <strong>%n</strong> programa so na voljo posodobitve za to različico.","Za <strong>%n</strong> programe so na voljo posodobitve za to različico.","Za <strong>%n</strong> programov so na voljo posodobitve za to različico."],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Po vsaki novi objavi je lahko tudi daljši časovni zamik, preden se posodobitev pojavi v sistemu. Nove različice objavljamo v časovnih razmikih in včasih kakšno tudi preskočimo, če prvi uporabniki zaznajo težave, ali napake."
+ "{version} is available. Get more information on how to update." : "Na voljo je nova različica {version}. Oglejte si več podrobnosti o nadgradnji."
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sq.js b/apps/updatenotification/l10n/sq.js
deleted file mode 100644
index 19e44ea99b4..00000000000
--- a/apps/updatenotification/l10n/sq.js
+++ /dev/null
@@ -1,26 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "Është gati {version}. Merrni më tepër informacion se si ta përditësoni.",
- "Update notifications" : "Njoftime përditësimesh",
- "Channel updated" : "Kanali u përditësua",
- "The update server could not be reached since %d days to check for new updates." : "Përditësimi i serverit nuk mund të arrihej deri sa %dtë kontrollohen për përditësime të reja.",
- "Please check the Nextcloud and server log files for errors." : "Ju lutemi kontrolloni dosjet e Nextcloud dhe te server log-ut per gabimet",
- "Update to %1$s is available." : "Përditësimi te%1$s është në dispozicion.",
- "Update for %1$s to version %2$s is available." : "Është gati përditësimi për %1$s në version %2$s.",
- "Update for {app} to version %s is available." : "Përditësimi për {app} në versionin %s është në dispozicion",
- "Open updater" : "Hape përditësuesin",
- "Download now" : "Shkarko tani",
- "Your version is up to date." : "Versioni juaj është i përditësuar.",
- "Update channel:" : "Kanal përditësimesh:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Mundeni përherë ta përditësoni me një version të ri / kanal eksperimental. Por nuk mund ta ulni kurrë versionin në një version më të qëndrueshëm.",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Vini re se pas një lëshimi të ri mund të duhet pak kohë para se të shfaqet këtu. Ne hapim versione të reja të shpërndara me kalimin e kohës tek përdoruesit tanë dhe nganjëherë kalojmë një version kur gjenden çështjet.",
- "Notify members of the following groups about available updates:" : "Njoftoji anëtarët e grupeve vijues për përditësime të gatshme:",
- "Only notification for app updates are available." : "Vetëm njoftime për përditësime aplikacionesh janë të disponueshme.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Kanali i zgjedhur i përditësimit i bën njoftimet për shërbyesin të papërdorshme.",
- "The selected update channel does not support updates of the server." : "Kanali i zgjdhur i përditësimit nuk mbështet përditësime të shvrbyesit.",
- "Could not start updater, please try the manual update" : "Nuk mundi të filloj përditësuesi, ju lutemi të provoni përditësimin manual",
- "A new version is available: %s" : "Ka gati një version të ri: %s",
- "Checked on %s" : "Kontrolluar më %s"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/sq.json b/apps/updatenotification/l10n/sq.json
deleted file mode 100644
index b7309a1bdda..00000000000
--- a/apps/updatenotification/l10n/sq.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "Është gati {version}. Merrni më tepër informacion se si ta përditësoni.",
- "Update notifications" : "Njoftime përditësimesh",
- "Channel updated" : "Kanali u përditësua",
- "The update server could not be reached since %d days to check for new updates." : "Përditësimi i serverit nuk mund të arrihej deri sa %dtë kontrollohen për përditësime të reja.",
- "Please check the Nextcloud and server log files for errors." : "Ju lutemi kontrolloni dosjet e Nextcloud dhe te server log-ut per gabimet",
- "Update to %1$s is available." : "Përditësimi te%1$s është në dispozicion.",
- "Update for %1$s to version %2$s is available." : "Është gati përditësimi për %1$s në version %2$s.",
- "Update for {app} to version %s is available." : "Përditësimi për {app} në versionin %s është në dispozicion",
- "Open updater" : "Hape përditësuesin",
- "Download now" : "Shkarko tani",
- "Your version is up to date." : "Versioni juaj është i përditësuar.",
- "Update channel:" : "Kanal përditësimesh:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Mundeni përherë ta përditësoni me një version të ri / kanal eksperimental. Por nuk mund ta ulni kurrë versionin në një version më të qëndrueshëm.",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Vini re se pas një lëshimi të ri mund të duhet pak kohë para se të shfaqet këtu. Ne hapim versione të reja të shpërndara me kalimin e kohës tek përdoruesit tanë dhe nganjëherë kalojmë një version kur gjenden çështjet.",
- "Notify members of the following groups about available updates:" : "Njoftoji anëtarët e grupeve vijues për përditësime të gatshme:",
- "Only notification for app updates are available." : "Vetëm njoftime për përditësime aplikacionesh janë të disponueshme.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "Kanali i zgjedhur i përditësimit i bën njoftimet për shërbyesin të papërdorshme.",
- "The selected update channel does not support updates of the server." : "Kanali i zgjdhur i përditësimit nuk mbështet përditësime të shvrbyesit.",
- "Could not start updater, please try the manual update" : "Nuk mundi të filloj përditësuesi, ju lutemi të provoni përditësimin manual",
- "A new version is available: %s" : "Ka gati një version të ri: %s",
- "Checked on %s" : "Kontrolluar më %s"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sr.js b/apps/updatenotification/l10n/sr.js
index 8cba33baea6..eac7eb9ad5c 100644
--- a/apps/updatenotification/l10n/sr.js
+++ b/apps/updatenotification/l10n/sr.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.",
"Channel updated" : "Канал ажуриран",
+ "Web updater is disabled" : "Веб алат за ажурирање је искључен",
+ "App updated" : "Апликација је ажурирана",
+ "See what's new" : "Погледајте шта има ново",
+ "{app} updated to version {version}" : "{app} је ажурирана на верзију {version}",
"Update notifications" : "Обавештења о ажурирању",
"The update server could not be reached since %d days to check for new updates." : "Сервер за ажурирања није доступан пошто је прошло %d дана од последње провере ажурирања.",
"Please check the Nextcloud and server log files for errors." : "Проверите логове од сервера и од Некстклауда за грешке.",
- "Update to %1$s is available." : "Доступно је ажурирање на %1$s. ",
- "Update for %1$s to version %2$s is available." : "Доступно је ажурирање апликације %1$s на верзију %2$s.",
+ "Update to {serverAndVersion} is available." : "Доступно је ажурирање на {serverAndVersion}.",
"Update for {app} to version %s is available." : "Доступно је ажурирање апликације {app} на верзију %s.",
"Update notification" : "Обавештење о ажурирању",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Приказује обавештавања о ажурирањима за Некстклауд и омогућава јединствену пријаву за програм ажурирања.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Приказује обавештавања о ажурирањима за Nextcloud, апликације и омогућава јединствену пријаву за програм ажурирања.",
+ "Give feedback" : "Пошаљите повратне информације",
+ "Get started" : "Хајде да почнемо",
+ "No changelog available" : "Није доступан дневник измена",
+ "What's new in {app} {version}" : "Шта има ново у {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Доступна је нова верзија: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Имајте на уму да се након новог издања ажурирање појављује само након првог малог издања или касније. Нове верзије издајемо у временском размаку, а понекад и прескочимо верзију онда када се открију проблеми. Сазнајте више о ажурирањима и каналима издања на {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Проверено {lastCheckedDate} - Отвори дневник измена",
+ "Checking apps for compatible versions" : "Проверава се постојање компатибилних верзија апликација",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Проверите да у config.php фајлу немате <samp>appstoreenabled</samp> постављено на „false“.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Није успело повезивање са Продавницом апликација или није враћено ниједно ажурирање. Потражите ручно ажурирања или обезбедите да ваш сервер има приступ интернету и да има могучност успостављања везе са Продавницом апликација.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Све</strong> апликације имају верзију која је компатибилна са верзијом ове Nextcloud инстанце.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> апликација нема верзију која је компатибилна са верзијом ове Nextcloud инстанце.","<strong>%n</strong> апликација немају верзију која је компатибилна са верзијом ове Nextcloud инстанце.","<strong>%n</strong> апликација нема верзију која је компатибилна са верзијом ове Nextcloud инстанце."],
+ "Enterprise" : "Предузетничка",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За предузећа. Пружа најновији ниво закрпа, али неће одмах да ажурира аутоматски на следећу главну верзију. То ажурирање ће се десити када Nextcloud GmbH обави додатне провере и тестирања на великим и критичним системима. Овај канал је доступан само муштеријама и пружа Nextcloud Enterprise пакет.",
+ "Stable" : "Стабилна",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Најскорашњија стабилна верзија. Погодна за редовну употребу и увек ће бити на најновијој главној верзији.",
+ "Beta" : "Бета",
+ "A pre-release version only for testing new features, not for production environments." : "Пред-издање и служи само за тестирање нових могућности, не за свакодневни рад.",
+ "Update" : "Ажурирај",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Верзија коју тренутно користите се више не одржава. Постарајте се да ажурирате инсталацију на неку подржану верзију што је пре могуће.",
- "Apps missing updates" : "Апликације којима недостаје ажурирање",
+ "Apps missing compatible version" : "Апликације које немају компатибилну верзију",
"View in store" : "Погледај у продавници",
- "Apps with available updates" : "Апликације са доступним ажурирањима",
+ "Apps with compatible version" : "Апликације са компатибилном верзијом",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Молимо вас да имате на уму да се веб алат за ажурирање не препоручује када постоји више од 100 налога! Молимо вас да у том случају употребите ажурирање из командне линије!",
"Open updater" : "Отвори програм за ажурирање",
"Download now" : "Скини сада",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Веб алат за ажурирање је искључен. Молимо вас да употребите алат за ажурирање из командне линије или механизам који одговара начину на који сте инсталирали Nextcloud (нпр. Docker повлачење).",
"What's new?" : "Шта је ново?",
+ "View changelog" : "Погледајте дневник измена",
"The update check is not yet finished. Please refresh the page." : "Провера за новим верзијама још није готова. Освежите страну.",
"Your version is up to date." : "Ваша верзија је ажурна.",
"A non-default update server is in use to be checked for updates:" : "Неподразумевани сервер за ажурирање је коришћен да провери нове верзије:",
- "Update channel:" : "Канал за ажурирање:",
+ "Update channel" : "Канал ажурирања",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Промена канала ажурирања такође утиче и на страницу за управљање апликацијама. Нпр. када се пребаците на бета канал, на страници за управљање апликацијама ће вам се нудити и бета ажурирања апликација.",
+ "Current update channel:" : "Тренутни канал ажурирања:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Увек можете да надоградите на новију верзију. Али не можете се вратити на стабилнију верзију.",
"Notify members of the following groups about available updates:" : "Обавести чланове следећих група о доступности нових верзија:",
- "Only notification for app updates are available." : "Доступна су само обавештења о новим верзијама апликација.",
+ "No groups" : "Нема група",
+ "Only notifications for app updates are available." : "Доступна су само обавештења о ажурирањима апликација.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Уз означени канал за ажурирање нема смисла да имате обавештења о новим верзијама.",
"The selected update channel does not support updates of the server." : "Означени канал за ажурирање не подржава обавештења о новим верзијама.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Доступна је нова верзија: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Проверено {lastCheckedDate}",
- "Checking apps for compatible updates" : "Проверавам компатибилна ажурирања за апликације",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Проверите да у config.php фајлу немате <samp>appstoreenabled</samp> постављено на „false“.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Не могу да се повежем на продавницу апликација или продавница нема ниједно ажурирање. Претражите ручно ажурирања или проверите да ли сервер има везу са интернетом",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Све</strong> апликације имају доступна ажурирања за ову верзију",
- "View changelog" : "Погледајте дневник измена",
- "Enterprise" : "Предузетничка",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За предузећа. Пружа најновији ниво закрпа, али неће одмах да ажурира аутоматски на следећу главну верзију. То ажурирање ће се десити када Nextcloud GmbH обави додатне провере и тестирања на великим и критичним системима. Овај канал је доступан само муштеријама и пружа Nextcloud Enterprise пакет.",
- "Stable" : "Стабилна",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Најскорашњија стабилна верзија. Погодна за редовну употребу и увек ће бити на најновијој главној верзији.",
- "Beta" : "Бета",
- "A pre-release version only for testing new features, not for production environments." : "Пред-издање и служи само за тестирање нових могућности, не за свакодневни рад.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> апликација имају доступна ажурирања за ову верзију","<strong>%n</strong> апликације имају доступна ажурирања за ову верзију","<strong>%n</strong> апликација имају доступна ажурирања за ову верзију"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "После издавања нове верзије, може да прође неко време пре него што се верзија појави овде. Ми избацујемо нове верзије постепено и можемо некад да прескочимо верзију ако наиђемо на проблеме."
+ "Changelog for app {app}" : "Дневник измена апликације {app}",
+ "What's new in {app} version {version}" : "Шта има ново у {app} верзије {version}",
+ "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/updatenotification/l10n/sr.json b/apps/updatenotification/l10n/sr.json
index dab4e34f249..61c6ede34fe 100644
--- a/apps/updatenotification/l10n/sr.json
+++ b/apps/updatenotification/l10n/sr.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.",
"Channel updated" : "Канал ажуриран",
+ "Web updater is disabled" : "Веб алат за ажурирање је искључен",
+ "App updated" : "Апликација је ажурирана",
+ "See what's new" : "Погледајте шта има ново",
+ "{app} updated to version {version}" : "{app} је ажурирана на верзију {version}",
"Update notifications" : "Обавештења о ажурирању",
"The update server could not be reached since %d days to check for new updates." : "Сервер за ажурирања није доступан пошто је прошло %d дана од последње провере ажурирања.",
"Please check the Nextcloud and server log files for errors." : "Проверите логове од сервера и од Некстклауда за грешке.",
- "Update to %1$s is available." : "Доступно је ажурирање на %1$s. ",
- "Update for %1$s to version %2$s is available." : "Доступно је ажурирање апликације %1$s на верзију %2$s.",
+ "Update to {serverAndVersion} is available." : "Доступно је ажурирање на {serverAndVersion}.",
"Update for {app} to version %s is available." : "Доступно је ажурирање апликације {app} на верзију %s.",
"Update notification" : "Обавештење о ажурирању",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Приказује обавештавања о ажурирањима за Некстклауд и омогућава јединствену пријаву за програм ажурирања.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Приказује обавештавања о ажурирањима за Nextcloud, апликације и омогућава јединствену пријаву за програм ажурирања.",
+ "Give feedback" : "Пошаљите повратне информације",
+ "Get started" : "Хајде да почнемо",
+ "No changelog available" : "Није доступан дневник измена",
+ "What's new in {app} {version}" : "Шта има ново у {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Доступна је нова верзија: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Имајте на уму да се након новог издања ажурирање појављује само након првог малог издања или касније. Нове верзије издајемо у временском размаку, а понекад и прескочимо верзију онда када се открију проблеми. Сазнајте више о ажурирањима и каналима издања на {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Проверено {lastCheckedDate} - Отвори дневник измена",
+ "Checking apps for compatible versions" : "Проверава се постојање компатибилних верзија апликација",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Проверите да у config.php фајлу немате <samp>appstoreenabled</samp> постављено на „false“.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Није успело повезивање са Продавницом апликација или није враћено ниједно ажурирање. Потражите ручно ажурирања или обезбедите да ваш сервер има приступ интернету и да има могучност успостављања везе са Продавницом апликација.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Све</strong> апликације имају верзију која је компатибилна са верзијом ове Nextcloud инстанце.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> апликација нема верзију која је компатибилна са верзијом ове Nextcloud инстанце.","<strong>%n</strong> апликација немају верзију која је компатибилна са верзијом ове Nextcloud инстанце.","<strong>%n</strong> апликација нема верзију која је компатибилна са верзијом ове Nextcloud инстанце."],
+ "Enterprise" : "Предузетничка",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За предузећа. Пружа најновији ниво закрпа, али неће одмах да ажурира аутоматски на следећу главну верзију. То ажурирање ће се десити када Nextcloud GmbH обави додатне провере и тестирања на великим и критичним системима. Овај канал је доступан само муштеријама и пружа Nextcloud Enterprise пакет.",
+ "Stable" : "Стабилна",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Најскорашњија стабилна верзија. Погодна за редовну употребу и увек ће бити на најновијој главној верзији.",
+ "Beta" : "Бета",
+ "A pre-release version only for testing new features, not for production environments." : "Пред-издање и служи само за тестирање нових могућности, не за свакодневни рад.",
+ "Update" : "Ажурирај",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Верзија коју тренутно користите се више не одржава. Постарајте се да ажурирате инсталацију на неку подржану верзију што је пре могуће.",
- "Apps missing updates" : "Апликације којима недостаје ажурирање",
+ "Apps missing compatible version" : "Апликације које немају компатибилну верзију",
"View in store" : "Погледај у продавници",
- "Apps with available updates" : "Апликације са доступним ажурирањима",
+ "Apps with compatible version" : "Апликације са компатибилном верзијом",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Молимо вас да имате на уму да се веб алат за ажурирање не препоручује када постоји више од 100 налога! Молимо вас да у том случају употребите ажурирање из командне линије!",
"Open updater" : "Отвори програм за ажурирање",
"Download now" : "Скини сада",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Веб алат за ажурирање је искључен. Молимо вас да употребите алат за ажурирање из командне линије или механизам који одговара начину на који сте инсталирали Nextcloud (нпр. Docker повлачење).",
"What's new?" : "Шта је ново?",
+ "View changelog" : "Погледајте дневник измена",
"The update check is not yet finished. Please refresh the page." : "Провера за новим верзијама још није готова. Освежите страну.",
"Your version is up to date." : "Ваша верзија је ажурна.",
"A non-default update server is in use to be checked for updates:" : "Неподразумевани сервер за ажурирање је коришћен да провери нове верзије:",
- "Update channel:" : "Канал за ажурирање:",
+ "Update channel" : "Канал ажурирања",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Промена канала ажурирања такође утиче и на страницу за управљање апликацијама. Нпр. када се пребаците на бета канал, на страници за управљање апликацијама ће вам се нудити и бета ажурирања апликација.",
+ "Current update channel:" : "Тренутни канал ажурирања:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Увек можете да надоградите на новију верзију. Али не можете се вратити на стабилнију верзију.",
"Notify members of the following groups about available updates:" : "Обавести чланове следећих група о доступности нових верзија:",
- "Only notification for app updates are available." : "Доступна су само обавештења о новим верзијама апликација.",
+ "No groups" : "Нема група",
+ "Only notifications for app updates are available." : "Доступна су само обавештења о ажурирањима апликација.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Уз означени канал за ажурирање нема смисла да имате обавештења о новим верзијама.",
"The selected update channel does not support updates of the server." : "Означени канал за ажурирање не подржава обавештења о новим верзијама.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Доступна је нова верзија: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Проверено {lastCheckedDate}",
- "Checking apps for compatible updates" : "Проверавам компатибилна ажурирања за апликације",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Проверите да у config.php фајлу немате <samp>appstoreenabled</samp> постављено на „false“.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Не могу да се повежем на продавницу апликација или продавница нема ниједно ажурирање. Претражите ручно ажурирања или проверите да ли сервер има везу са интернетом",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Све</strong> апликације имају доступна ажурирања за ову верзију",
- "View changelog" : "Погледајте дневник измена",
- "Enterprise" : "Предузетничка",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "За предузећа. Пружа најновији ниво закрпа, али неће одмах да ажурира аутоматски на следећу главну верзију. То ажурирање ће се десити када Nextcloud GmbH обави додатне провере и тестирања на великим и критичним системима. Овај канал је доступан само муштеријама и пружа Nextcloud Enterprise пакет.",
- "Stable" : "Стабилна",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Најскорашњија стабилна верзија. Погодна за редовну употребу и увек ће бити на најновијој главној верзији.",
- "Beta" : "Бета",
- "A pre-release version only for testing new features, not for production environments." : "Пред-издање и служи само за тестирање нових могућности, не за свакодневни рад.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> апликација имају доступна ажурирања за ову верзију","<strong>%n</strong> апликације имају доступна ажурирања за ову верзију","<strong>%n</strong> апликација имају доступна ажурирања за ову верзију"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "После издавања нове верзије, може да прође неко време пре него што се верзија појави овде. Ми избацујемо нове верзије постепено и можемо некад да прескочимо верзију ако наиђемо на проблеме."
+ "Changelog for app {app}" : "Дневник измена апликације {app}",
+ "What's new in {app} version {version}" : "Шта има ново у {app} верзије {version}",
+ "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sv.js b/apps/updatenotification/l10n/sv.js
index edfdbb7e20c..04e57048cfe 100644
--- a/apps/updatenotification/l10n/sv.js
+++ b/apps/updatenotification/l10n/sv.js
@@ -1,46 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar.",
"Channel updated" : "Uppdateringskanal uppdaterad",
+ "Web updater is disabled" : "Webbuppdateraren är inaktiverad",
+ "App updated" : "App uppdaterad",
+ "See what's new" : "Se vad som är nytt",
+ "{app} updated to version {version}" : "{app} uppdaterad till version {version}",
"Update notifications" : "Uppdateringsaviseringar",
"The update server could not be reached since %d days to check for new updates." : "Uppdateringsservern kunde inte nås. Senaste kontakt för %d dagar sedan.",
"Please check the Nextcloud and server log files for errors." : "Vänligen kontrollera ditt moln och dess serverloggar för felmeddelanden.",
- "Update to %1$s is available." : "Uppdatering till %1$s är tillgänglig.",
- "Update for %1$s to version %2$s is available." : "Uppdatering för %1$s till version %2$s är tillgänglig.",
+ "Update to {serverAndVersion} is available." : "En uppdatering till {serverAndVersion} finns tillgänglig.",
"Update for {app} to version %s is available." : "Uppdatering för {app} till version %s är tillgänglig.",
"Update notification" : "Uppdatera notifikation",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Visar uppdateringsaviseringar för Nextcloud och tillhandahåller SSO för uppdateraren.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Visar uppdateringsmeddelanden för Nextcloud, appuppdateringar och tillhandahåller SSO för uppdateraren.",
+ "Give feedback" : "Ge feedback",
+ "Get started" : "Kom igång",
+ "No changelog available" : "Ingen ändringslogg tillgänglig",
+ "What's new in {app} {version}" : "Vad är nytt i {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "En ny version är tillgänglig: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Observera att efter en ny release dyker uppdateringen endast upp efter den första mindre versionen eller senare. Vi rullar ut nya versioner spridda över tiden och hoppar ibland över en version när problem upptäcks. Läs mer om uppdateringar och releasekanaler på {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Kontrollerad {lastCheckedDate} - Öppna ändringslogg",
+ "Checking apps for compatible versions" : "Kontrollerar appar efter kompatibla versioner",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Se till att din config.php inte ställer in <samp>appstoreenabled</samp> till falsk.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kunde inte ansluta till appbutiken eller så returnerades inga uppdateringar alls. Sök manuellt för uppdateringar och säkerställ att din server har tillgång till internet och kan ansluta till appbutiken.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Alla</strong> appar har en kompatibel version för denna version av Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app har ingen tillgänglig kompatibel version för denna version av Nextcloud.","<strong>%n</strong> appar har ingen tillgänglig kompatibel version för denna version av Nextcloud."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Innehåller alltid den senaste patchnivån, men uppdateras inte omedelbart till nästa större version. Den uppdateringen sker när Nextcloud GmbH har utfört ytterligare verifiering och testning för storskaliga och kritiska installationer. Den här kanalen är endast tillgänglig för kunder och tillhandahåller Nextcloud Enterprise-paketet.",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den senaste stabila versionen. Den är lämplig för regelbunden användning och kommer alltid att uppdatera till den senaste större mer omfattande versionen.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "En förhandsversion endast för att testa nya funktioner, inte för produktionsmiljöer.",
+ "Update" : "Uppdatera",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Den version som du kör underhålls inte längre. Se till att uppdatera till en aktuell version så snart som möjligt.",
- "Apps missing updates" : "Appar som saknar uppdateringar",
+ "Apps missing compatible version" : "Appar som saknar kompatibel version",
"View in store" : "Visa i butik",
- "Apps with available updates" : "Appar med tillgängliga uppdateringar",
+ "Apps with compatible version" : "Appar med kompatibel version",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Observera att webbuppdateraren inte rekommenderas med fler än 100 användare! Använd kommandouppdateraren istället!",
"Open updater" : "Öppna uppdateraren",
"Download now" : "Hämta nu",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web-uppdateraren är inaktiverad. Använd kommandoradsuppdateraren eller lämpligt uppdateringsmekanism för din installationsmetod (t.ex. Docker pull) för att uppdatera.",
"What's new?" : "Vad är nytt?",
+ "View changelog" : "Visa ändringslogg",
"The update check is not yet finished. Please refresh the page." : "Uppdateringskontrollen är inte färdig ännu. Vänligen uppdatera sidan.",
"Your version is up to date." : "Din version är uppdaterad.",
"A non-default update server is in use to be checked for updates:" : "En icke-standard uppdateringsserver används för att kontrolleras efter uppdateringar:",
- "Update channel:" : "Uppdateringskanal:",
+ "Update channel" : "Uppdateringskanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Att ändra uppdateringskanalen påverkar också apphanteringssidan. T.ex. efter att du har bytt till betakanalen kommer betaappuppdateringar att erbjudas dig på apphanteringssidan.",
+ "Current update channel:" : "Aktuell uppdateringskanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Du kan alltid uppdatera till en nyare version, men du kan aldrig nedgradera till en mer stabil version.",
"Notify members of the following groups about available updates:" : "Notifiera medlemmar i följande grupper om tillgängliga uppdateraingar:",
- "Only notification for app updates are available." : "Endast notifikation för appuppdateringar är tillgängliga.",
+ "No groups" : "Inga grupper",
+ "Only notifications for app updates are available." : "Endast notifikationer för appuppdateringar är tillgängliga.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Den valda uppdateringskanalen gör dedikerade aviseringar för servern förlegade.",
"The selected update channel does not support updates of the server." : "Den valda uppdateringskanalen stödjer inte uppdateringar för servern.",
- "A new version is available: <strong>{newVersionString}</strong>" : "En ny version är tillgänglig: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Kontrollerad {lastCheckedDate}",
- "Checking apps for compatible updates" : "Kontrollera appar för kompatibla uppdateringar",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Se till att din config.php inte ställer in <samp>appstoreenabled</samp> till falsk.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Kunde inte ansluta till appbutiken eller så returnerades inga uppdateringar alls. Sök manuellt för uppdateringar och säkerställ att din server har tillgång till internet och kan ansluta till appbutiken.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Alla</strong> appar har en uppdatering för den här versionen tillgänglig",
- "View changelog" : "Visa ändringslogg",
- "Enterprise" : "Enterprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Innehåller alltid den senaste patchnivån, men uppdateras inte omedelbart till nästa större version. Den uppdateringen sker när Nextcloud GmbH har utfört ytterligare verifiering och testning för storskaliga och kritiska installationer. Den här kanalen är endast tillgänglig för kunder och tillhandahåller Nextcloud Enterprise-paketet.",
- "Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den senaste stabila versionen. Den är lämplig för regelbunden användning och kommer alltid att uppdatera till den senaste större mer omfattande versionen.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "En förhandsversion endast för att testa nya funktioner, inte för produktionsmiljöer.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> appen har ingen uppdatering för den här versionen tillgänglig","<strong>%n</strong> appar har inga uppdateringar för den här versionen tillgänglig"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Notera att när en ny version släppts kan det ta lite tid innan den dyker upp här. Vi rullar ut nya versioner till våra användare vid utspridda tillfällen och hoppar ibland över versioner när problem hittas."
+ "Changelog for app {app}" : "Ändringslogg för app {app}",
+ "What's new in {app} version {version}" : "Vad är nytt i {app} version {version}",
+ "{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/sv.json b/apps/updatenotification/l10n/sv.json
index b158ceb75e5..acdb5099eb7 100644
--- a/apps/updatenotification/l10n/sv.json
+++ b/apps/updatenotification/l10n/sv.json
@@ -1,44 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar.",
"Channel updated" : "Uppdateringskanal uppdaterad",
+ "Web updater is disabled" : "Webbuppdateraren är inaktiverad",
+ "App updated" : "App uppdaterad",
+ "See what's new" : "Se vad som är nytt",
+ "{app} updated to version {version}" : "{app} uppdaterad till version {version}",
"Update notifications" : "Uppdateringsaviseringar",
"The update server could not be reached since %d days to check for new updates." : "Uppdateringsservern kunde inte nås. Senaste kontakt för %d dagar sedan.",
"Please check the Nextcloud and server log files for errors." : "Vänligen kontrollera ditt moln och dess serverloggar för felmeddelanden.",
- "Update to %1$s is available." : "Uppdatering till %1$s är tillgänglig.",
- "Update for %1$s to version %2$s is available." : "Uppdatering för %1$s till version %2$s är tillgänglig.",
+ "Update to {serverAndVersion} is available." : "En uppdatering till {serverAndVersion} finns tillgänglig.",
"Update for {app} to version %s is available." : "Uppdatering för {app} till version %s är tillgänglig.",
"Update notification" : "Uppdatera notifikation",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Visar uppdateringsaviseringar för Nextcloud och tillhandahåller SSO för uppdateraren.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Visar uppdateringsmeddelanden för Nextcloud, appuppdateringar och tillhandahåller SSO för uppdateraren.",
+ "Give feedback" : "Ge feedback",
+ "Get started" : "Kom igång",
+ "No changelog available" : "Ingen ändringslogg tillgänglig",
+ "What's new in {app} {version}" : "Vad är nytt i {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "En ny version är tillgänglig: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Observera att efter en ny release dyker uppdateringen endast upp efter den första mindre versionen eller senare. Vi rullar ut nya versioner spridda över tiden och hoppar ibland över en version när problem upptäcks. Läs mer om uppdateringar och releasekanaler på {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Kontrollerad {lastCheckedDate} - Öppna ändringslogg",
+ "Checking apps for compatible versions" : "Kontrollerar appar efter kompatibla versioner",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Se till att din config.php inte ställer in <samp>appstoreenabled</samp> till falsk.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Kunde inte ansluta till appbutiken eller så returnerades inga uppdateringar alls. Sök manuellt för uppdateringar och säkerställ att din server har tillgång till internet och kan ansluta till appbutiken.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Alla</strong> appar har en kompatibel version för denna version av Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app har ingen tillgänglig kompatibel version för denna version av Nextcloud.","<strong>%n</strong> appar har ingen tillgänglig kompatibel version för denna version av Nextcloud."],
+ "Enterprise" : "Enterprise",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Innehåller alltid den senaste patchnivån, men uppdateras inte omedelbart till nästa större version. Den uppdateringen sker när Nextcloud GmbH har utfört ytterligare verifiering och testning för storskaliga och kritiska installationer. Den här kanalen är endast tillgänglig för kunder och tillhandahåller Nextcloud Enterprise-paketet.",
+ "Stable" : "Stabil",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den senaste stabila versionen. Den är lämplig för regelbunden användning och kommer alltid att uppdatera till den senaste större mer omfattande versionen.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "En förhandsversion endast för att testa nya funktioner, inte för produktionsmiljöer.",
+ "Update" : "Uppdatera",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Den version som du kör underhålls inte längre. Se till att uppdatera till en aktuell version så snart som möjligt.",
- "Apps missing updates" : "Appar som saknar uppdateringar",
+ "Apps missing compatible version" : "Appar som saknar kompatibel version",
"View in store" : "Visa i butik",
- "Apps with available updates" : "Appar med tillgängliga uppdateringar",
+ "Apps with compatible version" : "Appar med kompatibel version",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Observera att webbuppdateraren inte rekommenderas med fler än 100 användare! Använd kommandouppdateraren istället!",
"Open updater" : "Öppna uppdateraren",
"Download now" : "Hämta nu",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Web-uppdateraren är inaktiverad. Använd kommandoradsuppdateraren eller lämpligt uppdateringsmekanism för din installationsmetod (t.ex. Docker pull) för att uppdatera.",
"What's new?" : "Vad är nytt?",
+ "View changelog" : "Visa ändringslogg",
"The update check is not yet finished. Please refresh the page." : "Uppdateringskontrollen är inte färdig ännu. Vänligen uppdatera sidan.",
"Your version is up to date." : "Din version är uppdaterad.",
"A non-default update server is in use to be checked for updates:" : "En icke-standard uppdateringsserver används för att kontrolleras efter uppdateringar:",
- "Update channel:" : "Uppdateringskanal:",
+ "Update channel" : "Uppdateringskanal",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Att ändra uppdateringskanalen påverkar också apphanteringssidan. T.ex. efter att du har bytt till betakanalen kommer betaappuppdateringar att erbjudas dig på apphanteringssidan.",
+ "Current update channel:" : "Aktuell uppdateringskanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Du kan alltid uppdatera till en nyare version, men du kan aldrig nedgradera till en mer stabil version.",
"Notify members of the following groups about available updates:" : "Notifiera medlemmar i följande grupper om tillgängliga uppdateraingar:",
- "Only notification for app updates are available." : "Endast notifikation för appuppdateringar är tillgängliga.",
+ "No groups" : "Inga grupper",
+ "Only notifications for app updates are available." : "Endast notifikationer för appuppdateringar är tillgängliga.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Den valda uppdateringskanalen gör dedikerade aviseringar för servern förlegade.",
"The selected update channel does not support updates of the server." : "Den valda uppdateringskanalen stödjer inte uppdateringar för servern.",
- "A new version is available: <strong>{newVersionString}</strong>" : "En ny version är tillgänglig: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Kontrollerad {lastCheckedDate}",
- "Checking apps for compatible updates" : "Kontrollera appar för kompatibla uppdateringar",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Se till att din config.php inte ställer in <samp>appstoreenabled</samp> till falsk.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Kunde inte ansluta till appbutiken eller så returnerades inga uppdateringar alls. Sök manuellt för uppdateringar och säkerställ att din server har tillgång till internet och kan ansluta till appbutiken.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Alla</strong> appar har en uppdatering för den här versionen tillgänglig",
- "View changelog" : "Visa ändringslogg",
- "Enterprise" : "Enterprise",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Innehåller alltid den senaste patchnivån, men uppdateras inte omedelbart till nästa större version. Den uppdateringen sker när Nextcloud GmbH har utfört ytterligare verifiering och testning för storskaliga och kritiska installationer. Den här kanalen är endast tillgänglig för kunder och tillhandahåller Nextcloud Enterprise-paketet.",
- "Stable" : "Stabil",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Den senaste stabila versionen. Den är lämplig för regelbunden användning och kommer alltid att uppdatera till den senaste större mer omfattande versionen.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "En förhandsversion endast för att testa nya funktioner, inte för produktionsmiljöer.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> appen har ingen uppdatering för den här versionen tillgänglig","<strong>%n</strong> appar har inga uppdateringar för den här versionen tillgänglig"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Notera att när en ny version släppts kan det ta lite tid innan den dyker upp här. Vi rullar ut nya versioner till våra användare vid utspridda tillfällen och hoppar ibland över versioner när problem hittas."
+ "Changelog for app {app}" : "Ändringslogg för app {app}",
+ "What's new in {app} version {version}" : "Vad är nytt i {app} version {version}",
+ "{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sw.js b/apps/updatenotification/l10n/sw.js
new file mode 100644
index 00000000000..1643b29a466
--- /dev/null
+++ b/apps/updatenotification/l10n/sw.js
@@ -0,0 +1,61 @@
+OC.L10N.register(
+ "updatenotification",
+ {
+ "Channel updated" : "Kituo kimesasishwa",
+ "Web updater is disabled" : "Kisasisho cha wavuti kimezimwa",
+ "App updated" : "Programu imesasishwa",
+ "See what's new" : "Tazama kilicho kipya",
+ "{app} updated to version {version}" : "{app}imesasishwa hadi toleo {version}",
+ "Update notifications" : "Sasisha arifa",
+ "The update server could not be reached since %d days to check for new updates." : "Seva ya sasisho haikuweza kufikiwa tangu siku %d ili kuangalia masasisho mapya.",
+ "Please check the Nextcloud and server log files for errors." : "Tafadhali angalia faili za Nextcloud na kumbukumbu za seva kwa hitilafu.",
+ "Update to {serverAndVersion} is available." : "Sasisha kwa {serverAndVersion}inapatikana. ",
+ "Update for {app} to version %s is available." : "Sasisha kwa{app} hadi toleo %s linapatikana.",
+ "Update notification" : "Sasisha arifa",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Inaonyesha arifa za masasisho ya Nextcloud, masasisho ya programu na hutoa SSO kwa kiboreshaji.",
+ "Give feedback" : "Toa mrejesho",
+ "Get started" : "Anza",
+ "No changelog available" : "Hakuna logi ya mabadiliko inayopatikana",
+ "What's new in {app} {version}" : "Nini kipya katika {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Toleo jipya linapatikana: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Kumbuka kuwa baada ya toleo jipya sasisho huonekana tu baada ya toleo dogo la kwanza au baadaye. Tunasambaza matoleo mapya yaliyoenea kwa muda na wakati mwingine kuruka toleo matatizo yanapopatikana. Pata maelezo zaidi kuhusu masasisho na vituo vya uchapishaji kwenye {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Iliwekwa mnamo {lastCheckedDate} - Fungua orodha ya mabadiliko",
+ "Checking apps for compatible versions" : "Inakagua programu kwa matoleo yanayolingana",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Tafadhali hakikisha kuwa config.php yako haiweki <samp>appstoreenabled</samp>kuwa sivyo.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Haikuweza kuunganisha kwenye Duka la Programu au hakuna masasisho yoyote yaliyorejeshwa. Tafuta mwenyewe masasisho au uhakikishe kuwa seva yako ina ufikiaji wa mtandao na inaweza kuunganisha kwenye App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Zote</strong> programu zina toleo linalooana kwa toleo hili la Nextcloud linalopatikana.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app has no compatible version for this Nextcloud version available.","<strong>%n</strong> programu hazina toleo linalooana la toleo hili la Nextcloud linalopatikana."],
+ "Enterprise" : "Biashara",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Kwa matumizi ya biashara. Hutoa kiwango cha hivi punde zaidi cha kiraka, lakini haitasasishwa hadi toleo kuu linalofuata mara moja. Sasisho hilo hufanyika mara tu Nextcloud GmbH imefanya ugumu zaidi na majaribio kwa uwekaji wa kiasi kikubwa na muhimu wa dhamira. Kituo hiki kinapatikana kwa wateja pekee na hutoa kifurushi cha Nextcloud Enterprise.",
+ "Stable" : "Thabiti",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Toleo thabiti la hivi karibuni. Inafaa kwa matumizi ya kawaida na itasasishwa hadi toleo kuu la hivi punde.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Toleo la awali kwa ajili ya kujaribu vipengele vipya pekee, si kwa mazingira ya uzalishaji.",
+ "Update" : "Sasisha",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Toleo unaloendesha halihudumiwi tena. Tafadhali hakikisha kuwa umesasisha hadi toleo linalotumika haraka iwezekanavyo.",
+ "Apps missing compatible version" : "Programu hazina toleo linaloendana",
+ "View in store" : "Tazama kwenye eneo la kuhifadhi",
+ "Apps with compatible version" : "Programu zilizo na toleo linaloendana",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Tafadhali kumbuka kuwa sasisho la wavuti halipendekezwi kwa zaidi ya akaunti 100! Tafadhali tumia kiboresha mstari wa amri badala yake!",
+ "Open updater" : "Fungua msasishaji",
+ "Download now" : "Pakua sasa",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Kisasisho cha wavuti kimezimwa. Tafadhali tumia kisasisho cha mstari wa amri au utaratibu unaofaa wa kusasisha mbinu yako ya usakinishaji (k.m. Docker pull) kusasisha.",
+ "What's new?" : "Nini kipya?",
+ "View changelog" : "Tazama logi ya mabadiliko",
+ "The update check is not yet finished. Please refresh the page." : "Ukaguzi wa sasisho bado haujakamilika. Tafadhali onyesha upya ukurasa.",
+ "Your version is up to date." : "Toleo lako limesasishwa.",
+ "A non-default update server is in use to be checked for updates:" : "Seva isiyo ya chaguo-msingi ya sasisho inatumika kukaguliwa kwa masasisho:",
+ "Update channel" : "Sasisha kituo",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Kubadilisha kituo cha sasisho pia huathiri ukurasa wa usimamizi wa programu. K.m. baada ya kubadili hadi kituo cha beta, masasisho ya programu ya beta yatatolewa kwako katika ukurasa wa usimamizi wa programu.",
+ "Current update channel:" : "Kituo cha sasa cha masasisho:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Unaweza kusasisha hadi toleo jipya kila wakati. Lakini huwezi kamwe kushusha kiwango hadi toleo thabiti zaidi.",
+ "Notify members of the following groups about available updates:" : "Waarifu washiriki wa vikundi vifuatavyo kuhusu masasisho yanayopatikana:",
+ "No groups" : "Hakuna makundi",
+ "Only notifications for app updates are available." : "Arifa za masasisho ya programu pekee ndizo zinazopatikana.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Kituo cha sasisho kilichochaguliwa hufanya arifa maalum za seva kuwa za kizamani.",
+ "The selected update channel does not support updates of the server." : "Kituo cha sasisho kilichochaguliwa hakiauni masasisho ya seva.",
+ "Changelog for app {app}" : "Changelog kwa programu {app}",
+ "What's new in {app} version {version}" : "Kipya ni nini katika {app} toleo {version}",
+ "{version} is available. Get more information on how to update." : "{version} inapatikana. Pata maelezo zaidi kuhusu jinsi ya kusasisha."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/sw.json b/apps/updatenotification/l10n/sw.json
new file mode 100644
index 00000000000..30ef0a91280
--- /dev/null
+++ b/apps/updatenotification/l10n/sw.json
@@ -0,0 +1,59 @@
+{ "translations": {
+ "Channel updated" : "Kituo kimesasishwa",
+ "Web updater is disabled" : "Kisasisho cha wavuti kimezimwa",
+ "App updated" : "Programu imesasishwa",
+ "See what's new" : "Tazama kilicho kipya",
+ "{app} updated to version {version}" : "{app}imesasishwa hadi toleo {version}",
+ "Update notifications" : "Sasisha arifa",
+ "The update server could not be reached since %d days to check for new updates." : "Seva ya sasisho haikuweza kufikiwa tangu siku %d ili kuangalia masasisho mapya.",
+ "Please check the Nextcloud and server log files for errors." : "Tafadhali angalia faili za Nextcloud na kumbukumbu za seva kwa hitilafu.",
+ "Update to {serverAndVersion} is available." : "Sasisha kwa {serverAndVersion}inapatikana. ",
+ "Update for {app} to version %s is available." : "Sasisha kwa{app} hadi toleo %s linapatikana.",
+ "Update notification" : "Sasisha arifa",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Inaonyesha arifa za masasisho ya Nextcloud, masasisho ya programu na hutoa SSO kwa kiboreshaji.",
+ "Give feedback" : "Toa mrejesho",
+ "Get started" : "Anza",
+ "No changelog available" : "Hakuna logi ya mabadiliko inayopatikana",
+ "What's new in {app} {version}" : "Nini kipya katika {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Toleo jipya linapatikana: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Kumbuka kuwa baada ya toleo jipya sasisho huonekana tu baada ya toleo dogo la kwanza au baadaye. Tunasambaza matoleo mapya yaliyoenea kwa muda na wakati mwingine kuruka toleo matatizo yanapopatikana. Pata maelezo zaidi kuhusu masasisho na vituo vya uchapishaji kwenye {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Iliwekwa mnamo {lastCheckedDate} - Fungua orodha ya mabadiliko",
+ "Checking apps for compatible versions" : "Inakagua programu kwa matoleo yanayolingana",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Tafadhali hakikisha kuwa config.php yako haiweki <samp>appstoreenabled</samp>kuwa sivyo.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Haikuweza kuunganisha kwenye Duka la Programu au hakuna masasisho yoyote yaliyorejeshwa. Tafuta mwenyewe masasisho au uhakikishe kuwa seva yako ina ufikiaji wa mtandao na inaweza kuunganisha kwenye App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Zote</strong> programu zina toleo linalooana kwa toleo hili la Nextcloud linalopatikana.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> app has no compatible version for this Nextcloud version available.","<strong>%n</strong> programu hazina toleo linalooana la toleo hili la Nextcloud linalopatikana."],
+ "Enterprise" : "Biashara",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Kwa matumizi ya biashara. Hutoa kiwango cha hivi punde zaidi cha kiraka, lakini haitasasishwa hadi toleo kuu linalofuata mara moja. Sasisho hilo hufanyika mara tu Nextcloud GmbH imefanya ugumu zaidi na majaribio kwa uwekaji wa kiasi kikubwa na muhimu wa dhamira. Kituo hiki kinapatikana kwa wateja pekee na hutoa kifurushi cha Nextcloud Enterprise.",
+ "Stable" : "Thabiti",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Toleo thabiti la hivi karibuni. Inafaa kwa matumizi ya kawaida na itasasishwa hadi toleo kuu la hivi punde.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Toleo la awali kwa ajili ya kujaribu vipengele vipya pekee, si kwa mazingira ya uzalishaji.",
+ "Update" : "Sasisha",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Toleo unaloendesha halihudumiwi tena. Tafadhali hakikisha kuwa umesasisha hadi toleo linalotumika haraka iwezekanavyo.",
+ "Apps missing compatible version" : "Programu hazina toleo linaloendana",
+ "View in store" : "Tazama kwenye eneo la kuhifadhi",
+ "Apps with compatible version" : "Programu zilizo na toleo linaloendana",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Tafadhali kumbuka kuwa sasisho la wavuti halipendekezwi kwa zaidi ya akaunti 100! Tafadhali tumia kiboresha mstari wa amri badala yake!",
+ "Open updater" : "Fungua msasishaji",
+ "Download now" : "Pakua sasa",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Kisasisho cha wavuti kimezimwa. Tafadhali tumia kisasisho cha mstari wa amri au utaratibu unaofaa wa kusasisha mbinu yako ya usakinishaji (k.m. Docker pull) kusasisha.",
+ "What's new?" : "Nini kipya?",
+ "View changelog" : "Tazama logi ya mabadiliko",
+ "The update check is not yet finished. Please refresh the page." : "Ukaguzi wa sasisho bado haujakamilika. Tafadhali onyesha upya ukurasa.",
+ "Your version is up to date." : "Toleo lako limesasishwa.",
+ "A non-default update server is in use to be checked for updates:" : "Seva isiyo ya chaguo-msingi ya sasisho inatumika kukaguliwa kwa masasisho:",
+ "Update channel" : "Sasisha kituo",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Kubadilisha kituo cha sasisho pia huathiri ukurasa wa usimamizi wa programu. K.m. baada ya kubadili hadi kituo cha beta, masasisho ya programu ya beta yatatolewa kwako katika ukurasa wa usimamizi wa programu.",
+ "Current update channel:" : "Kituo cha sasa cha masasisho:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "Unaweza kusasisha hadi toleo jipya kila wakati. Lakini huwezi kamwe kushusha kiwango hadi toleo thabiti zaidi.",
+ "Notify members of the following groups about available updates:" : "Waarifu washiriki wa vikundi vifuatavyo kuhusu masasisho yanayopatikana:",
+ "No groups" : "Hakuna makundi",
+ "Only notifications for app updates are available." : "Arifa za masasisho ya programu pekee ndizo zinazopatikana.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Kituo cha sasisho kilichochaguliwa hufanya arifa maalum za seva kuwa za kizamani.",
+ "The selected update channel does not support updates of the server." : "Kituo cha sasisho kilichochaguliwa hakiauni masasisho ya seva.",
+ "Changelog for app {app}" : "Changelog kwa programu {app}",
+ "What's new in {app} version {version}" : "Kipya ni nini katika {app} toleo {version}",
+ "{version} is available. Get more information on how to update." : "{version} inapatikana. Pata maelezo zaidi kuhusu jinsi ya kusasisha."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/th_TH.js b/apps/updatenotification/l10n/th_TH.js
deleted file mode 100644
index 25265693d52..00000000000
--- a/apps/updatenotification/l10n/th_TH.js
+++ /dev/null
@@ -1,14 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "มีรุ่นใหม่ {version} สามารถใช้ได้ รับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการอัพเดท",
- "Updated channel" : "ปรับปรุงรูปแบบการอัพเดทเรียบร้อยแล้ว",
- "Updater" : "อัพเดท",
- "A new version is available: %s" : "มีรุ่นใหม่ที่สามารถใช่ได้: %s",
- "Open updater" : "เปิดตัวอัพเดท",
- "Your version is up to date." : "<strong>รุ่นของคุณใหม่ล่าสุดแล้ว</strong>",
- "Checked on %s" : "ตรวจสอบเมื่อ %s แล้ว",
- "Update channel:" : "รูปแบบการอัพเดท:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "คุณสามารถอัพเดทเป็นรุ่นที่ใหม่กว่าหรือใช้ตัวเบต้า แต่คุณไม่สามารถกลับไปใช้รุ่นที่เก่ากว่าเนื่องจากอาจมีปัญหาเรื่องเสถียรภาพ"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/th_TH.json b/apps/updatenotification/l10n/th_TH.json
deleted file mode 100644
index c94c88f2413..00000000000
--- a/apps/updatenotification/l10n/th_TH.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "มีรุ่นใหม่ {version} สามารถใช้ได้ รับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการอัพเดท",
- "Updated channel" : "ปรับปรุงรูปแบบการอัพเดทเรียบร้อยแล้ว",
- "Updater" : "อัพเดท",
- "A new version is available: %s" : "มีรุ่นใหม่ที่สามารถใช่ได้: %s",
- "Open updater" : "เปิดตัวอัพเดท",
- "Your version is up to date." : "<strong>รุ่นของคุณใหม่ล่าสุดแล้ว</strong>",
- "Checked on %s" : "ตรวจสอบเมื่อ %s แล้ว",
- "Update channel:" : "รูปแบบการอัพเดท:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "คุณสามารถอัพเดทเป็นรุ่นที่ใหม่กว่าหรือใช้ตัวเบต้า แต่คุณไม่สามารถกลับไปใช้รุ่นที่เก่ากว่าเนื่องจากอาจมีปัญหาเรื่องเสถียรภาพ"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/tr.js b/apps/updatenotification/l10n/tr.js
index ed3a9682bff..ebb3dc4d84b 100644
--- a/apps/updatenotification/l10n/tr.js
+++ b/apps/updatenotification/l10n/tr.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} sürümü yayınlanmış. Güncelleme hakkında ayrıntılı bilgi alın.",
"Channel updated" : "Kanal güncellendi",
+ "Web updater is disabled" : "Güncelleyici kapalı",
+ "App updated" : "Uygulama güncellendi",
+ "See what's new" : "Yeniliklere bakın",
+ "{app} updated to version {version}" : "{app}, {version} sürümüne güncellendi",
"Update notifications" : "Güncelleme bildirimleri",
"The update server could not be reached since %d days to check for new updates." : "%d gündür güncellemeleri denetlemek için güncelleme sunucusuna bağlanılamadı.",
- "Please check the Nextcloud and server log files for errors." : "Lütfen sorunu bulmak için Nextcloud ve sunucu günlük dosyalarına bakın.",
- "Update to %1$s is available." : "%1$s güncellemesi yayınlanmış.",
- "Update for %1$s to version %2$s is available." : "%1$s sürümünden %2$s sürümüne güncelleme yayınlanmış.",
+ "Please check the Nextcloud and server log files for errors." : "Lütfen sorunu bulmak için Nextcloud ve sunucu günlük dosyalarına bakın.",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} güncellemesi yayınlanmış.",
"Update for {app} to version %s is available." : "{app} uygulaması için %s sürümü güncellemesi yayınlanmış.",
"Update notification" : "Güncelleme bildirimi",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloud güncelleme bildirimlerini görüntüler ve güncelleyici için Tek Oturum Açma (SSO) bilgilerini sağlar.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Nextcloud ve uygulama güncelleme bildirimlerini görüntüler ve güncelleyici için Tek Oturum Açma (SSO) bilgilerini sağlar.",
+ "Give feedback" : "Geri bildirimde bulunun",
+ "Get started" : "Başlayalım",
+ "No changelog available" : "Kullanılabilecek bir değişiklik günlüğü yok",
+ "What's new in {app} {version}" : "{app} {version} sürümündeki yenilikler",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Yeni bir sürüm yayınlanmış: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Yeni bir sürümden sonra güncellemenin yalnızca ilk yeni küçük sürüm ya da daha sonraki sürümler yayınlandığında görüntüleneceğini unutmayın. Yeni sürümleri zamanla dağıtıyoruz ve bazen sorunlarla karşılaştığımızda bir sürümü atlayabiliyoruz. Güncellemeler ve yayın kanalları hakkında ayrıntılı bilgi almak için {link} adresine bakabilirsiniz.",
+ "Checked on {lastCheckedDate} - Open changelog" : "Son denetim: {lastCheckedDate} - Değişiklik günlüğünü aç",
+ "Checking apps for compatible versions" : "Uygulamalar uyumlu sürümler için denetleniyor",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Lütfen config.php dosyasındaki <samp>appstoreenabled</samp> seçeneğinin false olarak ayarlanmadığından emin olun.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Uygulama mağazası ile bağlantı kurulamadı ya da uygulama mağazasında herhangi bir güncelleme yok. Güncellemeleri el ile arayın ya da sunucunuzun İnternet ve uygulama mağazası ile bağlantı kurabildiğinden emin olun.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Tüm</strong> uygulamaların bu Nextcloud sürümü ile uyumlu bir sürümü var.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> uygulamanın bu Nextcloud sürümü ile uyumlu bir sürümü var.","<strong>%n</strong> uygulamanın bu Nextcloud sürümü ile uyumlu bir sürümü var."],
+ "Enterprise" : "Kurumsal",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Kurumsal kullanım için her zaman en son yayınlanmış yama düzeyi sunulur ancak sonraki ana sürüme hemen geçilmez. Bu güncellemeye Nextcloud GmbH tarafından büyük ölçekli ve görev kritik dağıtımlar için ek düzenlemeler ve sınamalar yapıldıktan sonra geçilir. Bu kanalı yalnızca müşteriler kullanabilir ve Nextcloud Enterprise paketi sunulur.",
+ "Stable" : "Kararlı",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Son kararlı sürüm. Normal kullanıma uygundur ve her zaman son büyük sürümü kullanır.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Yeni özellikleri denemek için kullanılabilecek yayın öncesi sürümü. Üretim ortamları için önerilmez.",
+ "Update" : "Güncelle",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Kullanmakta olduğunuz sürüm artık desteklenmiyor. Lütfen en kısa sürede desteklenen bir sürüme güncellemeyi ihmal etmeyin.",
- "Apps missing updates" : "Güncellemesi eksik uygulamalar",
+ "Apps missing compatible version" : "Uyumlu sürümü olmayan uygulamalar",
"View in store" : "Mağazada görüntüle",
- "Apps with available updates" : "Güncellenebilecek uygulamalar",
+ "Apps with compatible version" : "Uyumlu sürümü olan uygulamalar",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "100 hesap üzerinde site arayüzündeki güncelleyicinin kullanılmasının önerilmediğini unutmayın! Lütfen bunun yerine komut satırı güncelleyicisini kullanın!",
"Open updater" : "Güncelleyici aç",
"Download now" : "İndir",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi kapalı. Güncelleme için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.",
"What's new?" : "Yenilikler neler?",
+ "View changelog" : "Değişiklik günlüğünü görüntüle",
"The update check is not yet finished. Please refresh the page." : "Güncelleme denetimi henüz tamamlanmadı. Lütfen sayfayı yenileyin.",
"Your version is up to date." : "Sürümünüz güncel.",
"A non-default update server is in use to be checked for updates:" : "Güncelleme denetimi için varsayılan sunucudan başka bir sunucu kullanılıyor:",
- "Update channel:" : "Güncelleme kanalı:",
+ "Update channel" : "Güncelleme kanalı",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Güncelleme kanalını değiştirmek uygulama yönetimi sayfasını da etkiler. Örneğin. beta kanalına geçtikten sonra, uygulama yönetimi sayfasında beta uygulama güncellemeleri sunulur.",
+ "Current update channel:" : "Geçerli güncelleme kanalı:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Her zaman bir üst sürüme güncelleyebilirsiniz ancak asla daha kararlı bir eski sürüme dönemezsiniz.",
"Notify members of the following groups about available updates:" : "Yayınlanan güncellemeler şu grupların üyelerine bildirilsin:",
- "Only notification for app updates are available." : "Yalnız uygulama güncellemeleri kullanılabilir.",
+ "No groups" : "Bir grup yok",
+ "Only notifications for app updates are available." : "Yalnızca uygulama güncelleme bildirimleri kullanılabilir.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Seçilmiş güncelleme kanalı kullanımdan kalkmış sunucu bildirimleri için kullanılıyor.",
"The selected update channel does not support updates of the server." : "Seçilmiş güncelleme kanalı sunucunun güncellemelerini desteklemiyor.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Yeni bir sürüm yayınlanmış: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Yeni bir sürümden sonra güncellemenin yalnız ilk yeni küçük sürüm ya da daha sonraki sürümler yayınlandığında görüntüleneceğini unutmayın. Yeni sürümleri kullanıcılarımıza zamanla dağıtıyoruz ve bazen sorunlarla karşılaştığımızda bir sürümü atlayabiliyoruz. Güncellemeler ve yayın kanalları hakkında ayrıntılı bilgi almak için {link} adresine bakabilirsiniz.",
- "Checked on {lastCheckedDate}" : "Son denetim: {lastCheckedDate}",
- "Checking apps for compatible updates" : "Uyumlu güncellemeler için uygulamalar denetleniyor",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Lütfen config.php dosyasındaki <samp>appstoreenabled</samp> seçeneğinin false olarak ayarlanmadığından emin olun.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Uygulama mağazası ile bağlantı kurulamadı ya da uygulama mağazasında herhangi bir güncelleme yok. Güncellemeleri el ile arayın ya da sunucunuzun İnternet ve uygulama mağazası ile bağlantı kurabildiğinden emin olun.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Tüm</strong> uygulamaların bu sürüm için kullanılabilecek bir güncellemesi var",
- "View changelog" : "Değişiklik günlüğünü görüntüle",
- "Enterprise" : "Kurumsal",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Kurumsal kullanım için her zaman en son yayınlanmış yama düzeyi sunulur ancak sonraki ana sürüme hemen geçilmez. Bu güncellemeye Nextcloud GmbH tarafından büyük ölçekli ve görev kritik dağıtımlar için ek düzenlemeler ve sınamalar yapıldıktan sonra geçilir. Bu kanalı yalnız müşteriler kullanabilir ve Nextcloud Enterprise paketi sunulur.",
- "Stable" : "Kararlı",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Son kararlı sürüm. Normal kullanıma uygundur ve her zaman son büyük sürümü kullanır.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Yeni özellikleri denemek için kullanılabilecek yayın öncesi sürümü. Üretim ortamları için önerilmez.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> uygulamanın bu sürüm için kullanılabilecek bir güncellemesi yok","<strong>%n</strong> uygulamanın bu sürüm için kullanılabilecek bir güncellemesi yok"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Yeni bir sürümün yayınlanmasından sonra burada görüntülenmesinin biraz zaman alabileceğini unutmayın. Yeni sürümleri kullanıcılarımıza zamanla dağıtıyoruz ve bazen sorunlarla karşılaştığımızda bir sürümü atlayabiliyoruz."
+ "Changelog for app {app}" : "{app} değişiklik günlüğü",
+ "What's new in {app} version {version}" : "{app} {version} sürümündeki yenilikler",
+ "{version} is available. Get more information on how to update." : "{version} sürümü yayınlanmış. Güncelleme hakkında ayrıntılı bilgi alın."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/updatenotification/l10n/tr.json b/apps/updatenotification/l10n/tr.json
index 545970baa3c..da5e33a4c01 100644
--- a/apps/updatenotification/l10n/tr.json
+++ b/apps/updatenotification/l10n/tr.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} sürümü yayınlanmış. Güncelleme hakkında ayrıntılı bilgi alın.",
"Channel updated" : "Kanal güncellendi",
+ "Web updater is disabled" : "Güncelleyici kapalı",
+ "App updated" : "Uygulama güncellendi",
+ "See what's new" : "Yeniliklere bakın",
+ "{app} updated to version {version}" : "{app}, {version} sürümüne güncellendi",
"Update notifications" : "Güncelleme bildirimleri",
"The update server could not be reached since %d days to check for new updates." : "%d gündür güncellemeleri denetlemek için güncelleme sunucusuna bağlanılamadı.",
- "Please check the Nextcloud and server log files for errors." : "Lütfen sorunu bulmak için Nextcloud ve sunucu günlük dosyalarına bakın.",
- "Update to %1$s is available." : "%1$s güncellemesi yayınlanmış.",
- "Update for %1$s to version %2$s is available." : "%1$s sürümünden %2$s sürümüne güncelleme yayınlanmış.",
+ "Please check the Nextcloud and server log files for errors." : "Lütfen sorunu bulmak için Nextcloud ve sunucu günlük dosyalarına bakın.",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} güncellemesi yayınlanmış.",
"Update for {app} to version %s is available." : "{app} uygulaması için %s sürümü güncellemesi yayınlanmış.",
"Update notification" : "Güncelleme bildirimi",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "Nextcloud güncelleme bildirimlerini görüntüler ve güncelleyici için Tek Oturum Açma (SSO) bilgilerini sağlar.",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Nextcloud ve uygulama güncelleme bildirimlerini görüntüler ve güncelleyici için Tek Oturum Açma (SSO) bilgilerini sağlar.",
+ "Give feedback" : "Geri bildirimde bulunun",
+ "Get started" : "Başlayalım",
+ "No changelog available" : "Kullanılabilecek bir değişiklik günlüğü yok",
+ "What's new in {app} {version}" : "{app} {version} sürümündeki yenilikler",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Yeni bir sürüm yayınlanmış: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Yeni bir sürümden sonra güncellemenin yalnızca ilk yeni küçük sürüm ya da daha sonraki sürümler yayınlandığında görüntüleneceğini unutmayın. Yeni sürümleri zamanla dağıtıyoruz ve bazen sorunlarla karşılaştığımızda bir sürümü atlayabiliyoruz. Güncellemeler ve yayın kanalları hakkında ayrıntılı bilgi almak için {link} adresine bakabilirsiniz.",
+ "Checked on {lastCheckedDate} - Open changelog" : "Son denetim: {lastCheckedDate} - Değişiklik günlüğünü aç",
+ "Checking apps for compatible versions" : "Uygulamalar uyumlu sürümler için denetleniyor",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Lütfen config.php dosyasındaki <samp>appstoreenabled</samp> seçeneğinin false olarak ayarlanmadığından emin olun.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Uygulama mağazası ile bağlantı kurulamadı ya da uygulama mağazasında herhangi bir güncelleme yok. Güncellemeleri el ile arayın ya da sunucunuzun İnternet ve uygulama mağazası ile bağlantı kurabildiğinden emin olun.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Tüm</strong> uygulamaların bu Nextcloud sürümü ile uyumlu bir sürümü var.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> uygulamanın bu Nextcloud sürümü ile uyumlu bir sürümü var.","<strong>%n</strong> uygulamanın bu Nextcloud sürümü ile uyumlu bir sürümü var."],
+ "Enterprise" : "Kurumsal",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Kurumsal kullanım için her zaman en son yayınlanmış yama düzeyi sunulur ancak sonraki ana sürüme hemen geçilmez. Bu güncellemeye Nextcloud GmbH tarafından büyük ölçekli ve görev kritik dağıtımlar için ek düzenlemeler ve sınamalar yapıldıktan sonra geçilir. Bu kanalı yalnızca müşteriler kullanabilir ve Nextcloud Enterprise paketi sunulur.",
+ "Stable" : "Kararlı",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Son kararlı sürüm. Normal kullanıma uygundur ve her zaman son büyük sürümü kullanır.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "Yeni özellikleri denemek için kullanılabilecek yayın öncesi sürümü. Üretim ortamları için önerilmez.",
+ "Update" : "Güncelle",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Kullanmakta olduğunuz sürüm artık desteklenmiyor. Lütfen en kısa sürede desteklenen bir sürüme güncellemeyi ihmal etmeyin.",
- "Apps missing updates" : "Güncellemesi eksik uygulamalar",
+ "Apps missing compatible version" : "Uyumlu sürümü olmayan uygulamalar",
"View in store" : "Mağazada görüntüle",
- "Apps with available updates" : "Güncellenebilecek uygulamalar",
+ "Apps with compatible version" : "Uyumlu sürümü olan uygulamalar",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "100 hesap üzerinde site arayüzündeki güncelleyicinin kullanılmasının önerilmediğini unutmayın! Lütfen bunun yerine komut satırı güncelleyicisini kullanın!",
"Open updater" : "Güncelleyici aç",
"Download now" : "İndir",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "İnternet güncelleyicisi kapalı. Güncelleme için lütfen komut satırı güncelleyicisini ya da kurulum yönteminize uygun güncelleme yöntemini (Docker pull gibi) kullanın.",
"What's new?" : "Yenilikler neler?",
+ "View changelog" : "Değişiklik günlüğünü görüntüle",
"The update check is not yet finished. Please refresh the page." : "Güncelleme denetimi henüz tamamlanmadı. Lütfen sayfayı yenileyin.",
"Your version is up to date." : "Sürümünüz güncel.",
"A non-default update server is in use to be checked for updates:" : "Güncelleme denetimi için varsayılan sunucudan başka bir sunucu kullanılıyor:",
- "Update channel:" : "Güncelleme kanalı:",
+ "Update channel" : "Güncelleme kanalı",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Güncelleme kanalını değiştirmek uygulama yönetimi sayfasını da etkiler. Örneğin. beta kanalına geçtikten sonra, uygulama yönetimi sayfasında beta uygulama güncellemeleri sunulur.",
+ "Current update channel:" : "Geçerli güncelleme kanalı:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Her zaman bir üst sürüme güncelleyebilirsiniz ancak asla daha kararlı bir eski sürüme dönemezsiniz.",
"Notify members of the following groups about available updates:" : "Yayınlanan güncellemeler şu grupların üyelerine bildirilsin:",
- "Only notification for app updates are available." : "Yalnız uygulama güncellemeleri kullanılabilir.",
+ "No groups" : "Bir grup yok",
+ "Only notifications for app updates are available." : "Yalnızca uygulama güncelleme bildirimleri kullanılabilir.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Seçilmiş güncelleme kanalı kullanımdan kalkmış sunucu bildirimleri için kullanılıyor.",
"The selected update channel does not support updates of the server." : "Seçilmiş güncelleme kanalı sunucunun güncellemelerini desteklemiyor.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Yeni bir sürüm yayınlanmış: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Yeni bir sürümden sonra güncellemenin yalnız ilk yeni küçük sürüm ya da daha sonraki sürümler yayınlandığında görüntüleneceğini unutmayın. Yeni sürümleri kullanıcılarımıza zamanla dağıtıyoruz ve bazen sorunlarla karşılaştığımızda bir sürümü atlayabiliyoruz. Güncellemeler ve yayın kanalları hakkında ayrıntılı bilgi almak için {link} adresine bakabilirsiniz.",
- "Checked on {lastCheckedDate}" : "Son denetim: {lastCheckedDate}",
- "Checking apps for compatible updates" : "Uyumlu güncellemeler için uygulamalar denetleniyor",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Lütfen config.php dosyasındaki <samp>appstoreenabled</samp> seçeneğinin false olarak ayarlanmadığından emin olun.",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "Uygulama mağazası ile bağlantı kurulamadı ya da uygulama mağazasında herhangi bir güncelleme yok. Güncellemeleri el ile arayın ya da sunucunuzun İnternet ve uygulama mağazası ile bağlantı kurabildiğinden emin olun.",
- "<strong>All</strong> apps have an update for this version available" : "<strong>Tüm</strong> uygulamaların bu sürüm için kullanılabilecek bir güncellemesi var",
- "View changelog" : "Değişiklik günlüğünü görüntüle",
- "Enterprise" : "Kurumsal",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Kurumsal kullanım için her zaman en son yayınlanmış yama düzeyi sunulur ancak sonraki ana sürüme hemen geçilmez. Bu güncellemeye Nextcloud GmbH tarafından büyük ölçekli ve görev kritik dağıtımlar için ek düzenlemeler ve sınamalar yapıldıktan sonra geçilir. Bu kanalı yalnız müşteriler kullanabilir ve Nextcloud Enterprise paketi sunulur.",
- "Stable" : "Kararlı",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Son kararlı sürüm. Normal kullanıma uygundur ve her zaman son büyük sürümü kullanır.",
- "Beta" : "Beta",
- "A pre-release version only for testing new features, not for production environments." : "Yeni özellikleri denemek için kullanılabilecek yayın öncesi sürümü. Üretim ortamları için önerilmez.",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> uygulamanın bu sürüm için kullanılabilecek bir güncellemesi yok","<strong>%n</strong> uygulamanın bu sürüm için kullanılabilecek bir güncellemesi yok"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Yeni bir sürümün yayınlanmasından sonra burada görüntülenmesinin biraz zaman alabileceğini unutmayın. Yeni sürümleri kullanıcılarımıza zamanla dağıtıyoruz ve bazen sorunlarla karşılaştığımızda bir sürümü atlayabiliyoruz."
+ "Changelog for app {app}" : "{app} değişiklik günlüğü",
+ "What's new in {app} version {version}" : "{app} {version} sürümündeki yenilikler",
+ "{version} is available. Get more information on how to update." : "{version} sürümü yayınlanmış. Güncelleme hakkında ayrıntılı bilgi alın."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ug.js b/apps/updatenotification/l10n/ug.js
new file mode 100644
index 00000000000..6df75cf64c5
--- /dev/null
+++ b/apps/updatenotification/l10n/ug.js
@@ -0,0 +1,60 @@
+OC.L10N.register(
+ "updatenotification",
+ {
+ "Channel updated" : "قانال يېڭىلاندى",
+ "Web updater is disabled" : "تور يېڭىلاش ئىقتىدارى چەكلەنگەن",
+ "App updated" : "ئەپ يېڭىلاندى",
+ "See what's new" : "يېڭى نەرسىلەرنى كۆرۈڭ",
+ "{app} updated to version {version}" : "{app} نەشرىگە يېڭىلاندى {version}",
+ "Update notifications" : "ئۇقتۇرۇشنى يېڭىلاش",
+ "The update server could not be reached since %d days to check for new updates." : "يېڭىلاش مۇلازىمىتىرى% d كۈندىن باشلاپ يېڭى يېڭىلانمىلارنى تەكشۈرۈشكە ئېرىشەلمىدى.",
+ "Please check the Nextcloud and server log files for errors." : "Nextcloud ۋە مۇلازىمېتىر خاتىرى ھۆججىتىنىڭ خاتالىقلىرىنى تەكشۈرۈپ بېقىڭ.",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} to غا يېڭىلاشقا بولىدۇ.",
+ "Update for {app} to version %s is available." : "{app} نى% s نەشرىگە يېڭىلاشقا بولىدۇ.",
+ "Update notification" : "ئۇقتۇرۇشنى يېڭىلاش",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Nextcloud نىڭ يېڭىلاش ئۇقتۇرۇشى ، ئەپ يېڭىلانمىلىرىنى كۆرسىتىدۇ ۋە يېڭىلاش ئۈچۈن SSO تەمىنلەيدۇ.",
+ "Give feedback" : "پىكىر بېرىڭ",
+ "Get started" : "باشلاڭ",
+ "No changelog available" : "ئۆزگەرتكىلى بولمايدۇ",
+ "What's new in {app} {version}" : "{app} {version} يېڭىلىق نېمە",
+ "A new version is available: <strong>{newVersionString}</strong>" : "يېڭى نەشرى بار: <strong> {newVersionString} </strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "شۇنىڭغا دىققەت قىلىڭكى ، يېڭى ئېلان قىلىنغاندىن كېيىن يېڭىلاش پەقەت تۇنجى قېتىم قويۇپ بېرىلگەندىن كېيىن ياكى كېيىن كۆرۈنىدۇ. ۋاقىتنىڭ ئۆتۈشىگە ئەگىشىپ تارقالغان يېڭى نەشرىنى چىقىرىمىز ، بەزىدە مەسىلە بايقالغاندا بىر نەشرىنى ئاتلاپ ئۆتىمىز. يېڭىلاش ۋە قاناللارنى {link} دىن كۆرۈڭ",
+ "Checked on {lastCheckedDate} - Open changelog" : "تەكشۈرۈلگەن {lastCheckedDate} - ئوچۇق ئۆزگەرتىش",
+ "Checking apps for compatible versions" : "ماس كېلىدىغان نەشرىدىكى ئەپلەرنى تەكشۈرۈش",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Config.php نىڭ <samp> appstoreenabled </samp> نى يالغان قىلىپ قويمىغانلىقىغا كاپالەتلىك قىلىڭ.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "ئەپ دۇكىنىغا ئۇلىنالمىدى ياكى ھېچقانداق يېڭىلانما قايتۇرۇلمىدى. يېڭىلانمىلارنى قولدا ئىزدەڭ ياكى مۇلازىمېتىرىڭىزنىڭ تورغا چىقالايدىغانلىقىنى ۋە App دۇكىنىغا ئۇلىنالايدىغانلىقىنى جەزملەشتۈرۈڭ.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong> بارلىق </ strong> ئەپلىرىنىڭ بۇ Nextcloud نەشرىگە ماس كېلىدىغان نۇسخىسى بار.",
+ "Enterprise" : "كارخانا",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "كارخانا ئىشلىتىش ئۈچۈن. ھەمىشە ئەڭ يېڭى ياماق سەۋىيىسى بىلەن تەمىنلەيدۇ ، ئەمما كېيىنكى ئاساسلىق تارقىتىلىشقا دەرھال يېڭىلانمايدۇ. Nextcloud GmbH چوڭ كۆلەملىك ۋە ۋەزىپىلەرنى ئورۇنداش ئۈچۈن قوشۇمچە قاتتىقلاشتۇرۇش ۋە سىناق ئېلىپ بارغاندىن كېيىن ، بۇ يېڭىلاش يۈز بېرىدۇ. بۇ قانال پەقەت خېرىدارلارغىلا تەمىنلەنگەن بولۇپ ، Nextcloud كارخانا بولىقى بىلەن تەمىنلەيدۇ.",
+ "Stable" : "مۇقىم",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "ئەڭ يېڭى مۇقىم نەشرى. ئۇ دائىم ئىشلىتىشكە ماس كېلىدۇ ھەمدە ھەمىشە ئەڭ يېڭى ئاساسلىق نەشرىگە يېڭىلىنىدۇ.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "ئالدىن تارقىتىلغان نۇسخىسى پەقەت يېڭى ئىقتىدارلارنى سىناش ئۈچۈن ، ئىشلەپچىقىرىش مۇھىتى ئۈچۈن ئەمەس.",
+ "Update" : "يېڭىلا",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "سىز ئىجرا قىلىۋاتقان نەشرى ئەمدى ساقلاپ قېلىنمايدۇ. قوللايدىغان نەشرىگە بالدۇرراق يېڭىلاشقا كاپالەتلىك قىلىڭ.",
+ "Apps missing compatible version" : "ماس كېلىدىغان نەشرى يوق",
+ "View in store" : "دۇكاندا كۆرۈش",
+ "Apps with compatible version" : "ماس نەشرى بار ئەپلەر",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "شۇنىڭغا دىققەت قىلىڭكى ، 100 دىن ئارتۇق ھېسابات بىلەن تور يېڭىلاش تەۋسىيە قىلىنمايدۇ! ئۇنىڭ ئورنىغا بۇيرۇق قۇرىنى يېڭىلاشنى ئىشلىتىڭ!",
+ "Open updater" : "يېڭىلاشنى ئېچىڭ",
+ "Download now" : "ھازىر چۈشۈرۈڭ",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "تور يېڭىلاش ئىقتىدارى چەكلەنگەن. يېڭىلاش ئۈچۈن بۇيرۇق قۇرىنى يېڭىلاش ياكى قاچىلاش ئۇسۇلىڭىزغا ماس كېلىدىغان يېڭىلاش مېخانىزمىنى ئىشلىتىڭ.",
+ "What's new?" : "نېمە يېڭىلىق؟",
+ "View changelog" : "Changelog نى كۆرۈڭ",
+ "The update check is not yet finished. Please refresh the page." : "يېڭىلاش تەكشۈرۈشى تېخى تاماملانمىدى. بەتنى يېڭىلاڭ.",
+ "Your version is up to date." : "نەشرىڭىز يېڭىلاندى.",
+ "A non-default update server is in use to be checked for updates:" : "يېڭىلانمىلارنى تەكشۈرۈش ئۈچۈن سۈكۈتتىكى يېڭىلاش مۇلازىمىتىرى ئىشلىتىلىۋاتىدۇ:",
+ "Update channel" : "قانالنى يېڭىلاش",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "يېڭىلاش قانىلىنى ئۆزگەرتىش ئەپ باشقۇرۇش بېتىگىمۇ تەسىر كۆرسىتىدۇ. مەسىلەن: beta قانىلىغا ئۆتكەندىن كېيىن ، ئەپ باشقۇرۇش بېتىدە beta ئەپ يېڭىلانمىلىرى سىزگە تەمىنلىنىدۇ.",
+ "Current update channel:" : "نۆۋەتتىكى يېڭىلاش قانىلى:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "سىز ھەمىشە يېڭى نەشرىگە يېڭىلىيالايسىز. ئەمما سىز تېخىمۇ مۇقىم نەشرىگە ھەرگىز چۈشۈرەلمەيسىز.",
+ "Notify members of the following groups about available updates:" : "تۆۋەندىكى گۇرۇپپىلارنىڭ ئەزالىرىغا بار بولغان يېڭىلانمىلارنى ئۇقتۇرۇڭ:",
+ "No groups" : "گۇرۇپپا يوق",
+ "Only notifications for app updates are available." : "پەقەت ئەپ يېڭىلاش ھەققىدىكى ئۇقتۇرۇشلارلا بار.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "تاللانغان يېڭىلاش قانىلى مۇلازىمېتىرنىڭ ۋاقتى ئۆتكەن.",
+ "The selected update channel does not support updates of the server." : "تاللانغان يېڭىلاش قانىلى مۇلازىمېتىرنىڭ يېڭىلىنىشىنى قوللىمايدۇ.",
+ "Changelog for app {app}" : "App {app} for Changelog",
+ "What's new in {app} version {version}" : "{app} نەشرى {version} يېڭىلىق نېمە",
+ "{version} is available. Get more information on how to update." : "{version} بار. قانداق يېڭىلاش توغرىسىدا تېخىمۇ كۆپ ئۇچۇرلارغا ئېرىشىڭ."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/ug.json b/apps/updatenotification/l10n/ug.json
new file mode 100644
index 00000000000..dd2644bc4fc
--- /dev/null
+++ b/apps/updatenotification/l10n/ug.json
@@ -0,0 +1,58 @@
+{ "translations": {
+ "Channel updated" : "قانال يېڭىلاندى",
+ "Web updater is disabled" : "تور يېڭىلاش ئىقتىدارى چەكلەنگەن",
+ "App updated" : "ئەپ يېڭىلاندى",
+ "See what's new" : "يېڭى نەرسىلەرنى كۆرۈڭ",
+ "{app} updated to version {version}" : "{app} نەشرىگە يېڭىلاندى {version}",
+ "Update notifications" : "ئۇقتۇرۇشنى يېڭىلاش",
+ "The update server could not be reached since %d days to check for new updates." : "يېڭىلاش مۇلازىمىتىرى% d كۈندىن باشلاپ يېڭى يېڭىلانمىلارنى تەكشۈرۈشكە ئېرىشەلمىدى.",
+ "Please check the Nextcloud and server log files for errors." : "Nextcloud ۋە مۇلازىمېتىر خاتىرى ھۆججىتىنىڭ خاتالىقلىرىنى تەكشۈرۈپ بېقىڭ.",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} to غا يېڭىلاشقا بولىدۇ.",
+ "Update for {app} to version %s is available." : "{app} نى% s نەشرىگە يېڭىلاشقا بولىدۇ.",
+ "Update notification" : "ئۇقتۇرۇشنى يېڭىلاش",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Nextcloud نىڭ يېڭىلاش ئۇقتۇرۇشى ، ئەپ يېڭىلانمىلىرىنى كۆرسىتىدۇ ۋە يېڭىلاش ئۈچۈن SSO تەمىنلەيدۇ.",
+ "Give feedback" : "پىكىر بېرىڭ",
+ "Get started" : "باشلاڭ",
+ "No changelog available" : "ئۆزگەرتكىلى بولمايدۇ",
+ "What's new in {app} {version}" : "{app} {version} يېڭىلىق نېمە",
+ "A new version is available: <strong>{newVersionString}</strong>" : "يېڭى نەشرى بار: <strong> {newVersionString} </strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "شۇنىڭغا دىققەت قىلىڭكى ، يېڭى ئېلان قىلىنغاندىن كېيىن يېڭىلاش پەقەت تۇنجى قېتىم قويۇپ بېرىلگەندىن كېيىن ياكى كېيىن كۆرۈنىدۇ. ۋاقىتنىڭ ئۆتۈشىگە ئەگىشىپ تارقالغان يېڭى نەشرىنى چىقىرىمىز ، بەزىدە مەسىلە بايقالغاندا بىر نەشرىنى ئاتلاپ ئۆتىمىز. يېڭىلاش ۋە قاناللارنى {link} دىن كۆرۈڭ",
+ "Checked on {lastCheckedDate} - Open changelog" : "تەكشۈرۈلگەن {lastCheckedDate} - ئوچۇق ئۆزگەرتىش",
+ "Checking apps for compatible versions" : "ماس كېلىدىغان نەشرىدىكى ئەپلەرنى تەكشۈرۈش",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Config.php نىڭ <samp> appstoreenabled </samp> نى يالغان قىلىپ قويمىغانلىقىغا كاپالەتلىك قىلىڭ.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "ئەپ دۇكىنىغا ئۇلىنالمىدى ياكى ھېچقانداق يېڭىلانما قايتۇرۇلمىدى. يېڭىلانمىلارنى قولدا ئىزدەڭ ياكى مۇلازىمېتىرىڭىزنىڭ تورغا چىقالايدىغانلىقىنى ۋە App دۇكىنىغا ئۇلىنالايدىغانلىقىنى جەزملەشتۈرۈڭ.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong> بارلىق </ strong> ئەپلىرىنىڭ بۇ Nextcloud نەشرىگە ماس كېلىدىغان نۇسخىسى بار.",
+ "Enterprise" : "كارخانا",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "كارخانا ئىشلىتىش ئۈچۈن. ھەمىشە ئەڭ يېڭى ياماق سەۋىيىسى بىلەن تەمىنلەيدۇ ، ئەمما كېيىنكى ئاساسلىق تارقىتىلىشقا دەرھال يېڭىلانمايدۇ. Nextcloud GmbH چوڭ كۆلەملىك ۋە ۋەزىپىلەرنى ئورۇنداش ئۈچۈن قوشۇمچە قاتتىقلاشتۇرۇش ۋە سىناق ئېلىپ بارغاندىن كېيىن ، بۇ يېڭىلاش يۈز بېرىدۇ. بۇ قانال پەقەت خېرىدارلارغىلا تەمىنلەنگەن بولۇپ ، Nextcloud كارخانا بولىقى بىلەن تەمىنلەيدۇ.",
+ "Stable" : "مۇقىم",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "ئەڭ يېڭى مۇقىم نەشرى. ئۇ دائىم ئىشلىتىشكە ماس كېلىدۇ ھەمدە ھەمىشە ئەڭ يېڭى ئاساسلىق نەشرىگە يېڭىلىنىدۇ.",
+ "Beta" : "Beta",
+ "A pre-release version only for testing new features, not for production environments." : "ئالدىن تارقىتىلغان نۇسخىسى پەقەت يېڭى ئىقتىدارلارنى سىناش ئۈچۈن ، ئىشلەپچىقىرىش مۇھىتى ئۈچۈن ئەمەس.",
+ "Update" : "يېڭىلا",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "سىز ئىجرا قىلىۋاتقان نەشرى ئەمدى ساقلاپ قېلىنمايدۇ. قوللايدىغان نەشرىگە بالدۇرراق يېڭىلاشقا كاپالەتلىك قىلىڭ.",
+ "Apps missing compatible version" : "ماس كېلىدىغان نەشرى يوق",
+ "View in store" : "دۇكاندا كۆرۈش",
+ "Apps with compatible version" : "ماس نەشرى بار ئەپلەر",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "شۇنىڭغا دىققەت قىلىڭكى ، 100 دىن ئارتۇق ھېسابات بىلەن تور يېڭىلاش تەۋسىيە قىلىنمايدۇ! ئۇنىڭ ئورنىغا بۇيرۇق قۇرىنى يېڭىلاشنى ئىشلىتىڭ!",
+ "Open updater" : "يېڭىلاشنى ئېچىڭ",
+ "Download now" : "ھازىر چۈشۈرۈڭ",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "تور يېڭىلاش ئىقتىدارى چەكلەنگەن. يېڭىلاش ئۈچۈن بۇيرۇق قۇرىنى يېڭىلاش ياكى قاچىلاش ئۇسۇلىڭىزغا ماس كېلىدىغان يېڭىلاش مېخانىزمىنى ئىشلىتىڭ.",
+ "What's new?" : "نېمە يېڭىلىق؟",
+ "View changelog" : "Changelog نى كۆرۈڭ",
+ "The update check is not yet finished. Please refresh the page." : "يېڭىلاش تەكشۈرۈشى تېخى تاماملانمىدى. بەتنى يېڭىلاڭ.",
+ "Your version is up to date." : "نەشرىڭىز يېڭىلاندى.",
+ "A non-default update server is in use to be checked for updates:" : "يېڭىلانمىلارنى تەكشۈرۈش ئۈچۈن سۈكۈتتىكى يېڭىلاش مۇلازىمىتىرى ئىشلىتىلىۋاتىدۇ:",
+ "Update channel" : "قانالنى يېڭىلاش",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "يېڭىلاش قانىلىنى ئۆزگەرتىش ئەپ باشقۇرۇش بېتىگىمۇ تەسىر كۆرسىتىدۇ. مەسىلەن: beta قانىلىغا ئۆتكەندىن كېيىن ، ئەپ باشقۇرۇش بېتىدە beta ئەپ يېڭىلانمىلىرى سىزگە تەمىنلىنىدۇ.",
+ "Current update channel:" : "نۆۋەتتىكى يېڭىلاش قانىلى:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "سىز ھەمىشە يېڭى نەشرىگە يېڭىلىيالايسىز. ئەمما سىز تېخىمۇ مۇقىم نەشرىگە ھەرگىز چۈشۈرەلمەيسىز.",
+ "Notify members of the following groups about available updates:" : "تۆۋەندىكى گۇرۇپپىلارنىڭ ئەزالىرىغا بار بولغان يېڭىلانمىلارنى ئۇقتۇرۇڭ:",
+ "No groups" : "گۇرۇپپا يوق",
+ "Only notifications for app updates are available." : "پەقەت ئەپ يېڭىلاش ھەققىدىكى ئۇقتۇرۇشلارلا بار.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "تاللانغان يېڭىلاش قانىلى مۇلازىمېتىرنىڭ ۋاقتى ئۆتكەن.",
+ "The selected update channel does not support updates of the server." : "تاللانغان يېڭىلاش قانىلى مۇلازىمېتىرنىڭ يېڭىلىنىشىنى قوللىمايدۇ.",
+ "Changelog for app {app}" : "App {app} for Changelog",
+ "What's new in {app} version {version}" : "{app} نەشرى {version} يېڭىلىق نېمە",
+ "{version} is available. Get more information on how to update." : "{version} بار. قانداق يېڭىلاش توغرىسىدا تېخىمۇ كۆپ ئۇچۇرلارغا ئېرىشىڭ."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/uk.js b/apps/updatenotification/l10n/uk.js
index f8fe458dbed..7fc453e47b6 100644
--- a/apps/updatenotification/l10n/uk.js
+++ b/apps/updatenotification/l10n/uk.js
@@ -1,36 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Доступна {version}. Отримати докладну інформацію про те, як оновити версію.",
"Channel updated" : "Канал оновлено",
+ "Web updater is disabled" : "Оновлення через веб вимкнено",
+ "App updated" : "Оновлено застосунок",
+ "See what's new" : "Що нового",
+ "{app} updated to version {version}" : "{app} оновлено до версії {version}",
"Update notifications" : "Сповіщення про оновлення",
"The update server could not be reached since %d days to check for new updates." : "Неможливо отримати доступ до сервера оновлень протягом останніх %d днів для перевірки на наявність нових версій.",
"Please check the Nextcloud and server log files for errors." : "Перегляньте журнал помилок Nextcloud та сервера на наявність інформації про помилки.",
- "Update to %1$s is available." : "Доступне оновлення до %1$s.",
- "Update for %1$s to version %2$s is available." : "Доступне оновлення для %1$s до версії %2$s.",
+ "Update to {serverAndVersion} is available." : "Доступне оновлення до {serverAndVersion}.",
"Update for {app} to version %s is available." : "Доступна версія {app} %s.",
"Update notification" : "Сповіщення про оновлення",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Показує сповіщення про доступні оновлення системи Nextcloud, застосунків, а також надає можливість єдиного входу для фунціоналу оновлення.",
+ "Give feedback" : "Надати зворотній зв'язок",
+ "Get started" : "Розпочнімо",
+ "No changelog available" : "Відсутній журнал змін",
+ "What's new in {app} {version}" : "Що нового у {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Доступна нова версія: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Зауважте, що після нового випуску оновлення показує тільки першу молодшу збірку або останню. Нові версії надходять з часом і можуть пропускати версії, які містять інциденти. Дізнайтеся більше про оновлення та канали випуску за посиланням {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Остання перевірка: {lastCheckedDate}. Відкрити журнал змін",
+ "Checking apps for compatible versions" : "Перевірка застосунків на наявність сумісних версій",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Будь ласка, переконайтеся, що ваш config.php не встановлює для <samp>appstoreenabled</samp> значення false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Неможливо з'єднатися із App Store або оновлення не надійшли взагалі. Шукайте оновлення вручну або переконайтеся, що ваш сервер має доступ до Інтернету та може з'єднатися із App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Усі</strong> застосунки мають сумісну версію з цим випуском Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> застосункок не сумісний з цією версією Nextcloud.","<strong>%n</strong> застосунки не сумісні з цією версією Nextcloud.","<strong>%n</strong> застосунків не сумісні з цією версією Nextcloud.","<strong>%n</strong> застосунків не сумісні з цією версією Nextcloud."],
+ "Enterprise" : "Для бізнесу",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Для корпоративного використання. Завжди надає останній рівень виправлення, але не оновлюється до наступного основного випуску негайно. Це оновлення відбувається після того, як Nextcloud GmbH виконає додаткову надійність і тестування для широкомасштабних і критично важливих розгортань. Цей канал доступний лише для клієнтів і надає пакет Nextcloud Enterprise.",
+ "Stable" : "Стабільний",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Остання стабільна версія. Він підходить для регулярного використання та завжди оновлюється до останньої основної версії.",
+ "Beta" : "Бета",
+ "A pre-release version only for testing new features, not for production environments." : "Попередня версія лише для тестування нових функцій, а не для робочих середовищ.",
+ "Update" : "Оновлення",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Ваша версія більше не підтримується. Будь ласка, оновіться якнайшвидше до версії, на яку поширюється підтримка.",
- "Apps missing updates" : "Відсутні оновлення для застосунків",
+ "Apps missing compatible version" : "Застосунки, не сумісні із пропонованою версією",
"View in store" : "Переглянути у крамниці застосунків",
- "Apps with available updates" : "Застосунки з доступними оновленнями",
- "Open updater" : "Запустити оновлення",
+ "Apps with compatible version" : "Застосунки, сумісні із пропонованою версією",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Зауважте, що оновлення через веб не рекомендується для систем з понад 100 обліковими записами! Натомість рекомендується використовувати оновлення з командного рядка.",
+ "Open updater" : "Оновити",
"Download now" : "Звантажити зараз",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Веб-оновлення вимкнено. Для оновлення, будь ласка, скористайтеся засобом оновлення з командного рядка або відповідним до вашого методу встановлення механізмом оновлення (наприклад, Docker pull).",
"What's new?" : "Що нового?",
+ "View changelog" : "Переглянути журнал змін",
"The update check is not yet finished. Please refresh the page." : "Перевірку на нові версії не завершено. Будь ласка, перезавантажте сторінку.",
"Your version is up to date." : "У вас актуальна версія",
"A non-default update server is in use to be checked for updates:" : "Використовується нетиповий сервер оновлення для перевірки на оновлення:",
- "Update channel:" : "Канал оновлення:",
+ "Update channel" : "Канал оновлень",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Зміна каналу оновлень також вплине на сторінку керування застосунками. Так, після перемикання на канал \"бета\", вам пропонуватимуться до встановлення оновлення застосунків бета-версій на сторінці керування застосунками.",
+ "Current update channel:" : "Поточний канал оновлень:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Ви завжди зможете перейти на нову версію, проте не можна буде повернутися на стабільну версію.",
- "Notify members of the following groups about available updates:" : "Повідомляти учасників таких груп про наявні оновлення:",
- "Only notification for app updates are available." : "Доступні лише сповіщення про оновлення для застосунків.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Доступна нова версія: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Перевірень {lastCheckedDate}",
- "Checking apps for compatible updates" : "Перевірка застосунків на сумісні оновлення",
- "View changelog" : "Переглянути журнал змін",
- "Enterprise" : "Для бізнесу",
- "Stable" : "Стабільна",
- "Beta" : "Бета",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Зауважте, що після виходу нової збірки може минути певний час, до того як вона буде доступна тут. Ми випускаємо нові версії, які з часом надходять користувачам для оновлення, іноді можемо пропускати версії, які містять помилки."
+ "Notify members of the following groups about available updates:" : "Повідомляти учасників таких груп про доступні оновлення:",
+ "No groups" : "Без груп",
+ "Only notifications for app updates are available." : "Доступні лише сповіщення про оновлення застосунків.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Вибраний канал оновлення робить спеціальні сповіщення для сервера застарілими.",
+ "The selected update channel does not support updates of the server." : "Вибраний канал оновлення не підтримує оновлення сервера.",
+ "Changelog for app {app}" : "Журнал змін для застосунку {app}",
+ "What's new in {app} version {version}" : "Що нового у {app} версії {version}",
+ "{version} is available. Get more information on how to update." : "Доступна {version}. Отримати докладну інформацію про те, як оновити версію."
},
"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);");
diff --git a/apps/updatenotification/l10n/uk.json b/apps/updatenotification/l10n/uk.json
index 2c59ffc25d6..5ffc0c7102c 100644
--- a/apps/updatenotification/l10n/uk.json
+++ b/apps/updatenotification/l10n/uk.json
@@ -1,34 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Доступна {version}. Отримати докладну інформацію про те, як оновити версію.",
"Channel updated" : "Канал оновлено",
+ "Web updater is disabled" : "Оновлення через веб вимкнено",
+ "App updated" : "Оновлено застосунок",
+ "See what's new" : "Що нового",
+ "{app} updated to version {version}" : "{app} оновлено до версії {version}",
"Update notifications" : "Сповіщення про оновлення",
"The update server could not be reached since %d days to check for new updates." : "Неможливо отримати доступ до сервера оновлень протягом останніх %d днів для перевірки на наявність нових версій.",
"Please check the Nextcloud and server log files for errors." : "Перегляньте журнал помилок Nextcloud та сервера на наявність інформації про помилки.",
- "Update to %1$s is available." : "Доступне оновлення до %1$s.",
- "Update for %1$s to version %2$s is available." : "Доступне оновлення для %1$s до версії %2$s.",
+ "Update to {serverAndVersion} is available." : "Доступне оновлення до {serverAndVersion}.",
"Update for {app} to version %s is available." : "Доступна версія {app} %s.",
"Update notification" : "Сповіщення про оновлення",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "Показує сповіщення про доступні оновлення системи Nextcloud, застосунків, а також надає можливість єдиного входу для фунціоналу оновлення.",
+ "Give feedback" : "Надати зворотній зв'язок",
+ "Get started" : "Розпочнімо",
+ "No changelog available" : "Відсутній журнал змін",
+ "What's new in {app} {version}" : "Що нового у {app} {version}",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Доступна нова версія: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "Зауважте, що після нового випуску оновлення показує тільки першу молодшу збірку або останню. Нові версії надходять з часом і можуть пропускати версії, які містять інциденти. Дізнайтеся більше про оновлення та канали випуску за посиланням {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "Остання перевірка: {lastCheckedDate}. Відкрити журнал змін",
+ "Checking apps for compatible versions" : "Перевірка застосунків на наявність сумісних версій",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Будь ласка, переконайтеся, що ваш config.php не встановлює для <samp>appstoreenabled</samp> значення false.",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "Неможливо з'єднатися із App Store або оновлення не надійшли взагалі. Шукайте оновлення вручну або переконайтеся, що ваш сервер має доступ до Інтернету та може з'єднатися із App Store.",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>Усі</strong> застосунки мають сумісну версію з цим випуском Nextcloud.",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> застосункок не сумісний з цією версією Nextcloud.","<strong>%n</strong> застосунки не сумісні з цією версією Nextcloud.","<strong>%n</strong> застосунків не сумісні з цією версією Nextcloud.","<strong>%n</strong> застосунків не сумісні з цією версією Nextcloud."],
+ "Enterprise" : "Для бізнесу",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "Для корпоративного використання. Завжди надає останній рівень виправлення, але не оновлюється до наступного основного випуску негайно. Це оновлення відбувається після того, як Nextcloud GmbH виконає додаткову надійність і тестування для широкомасштабних і критично важливих розгортань. Цей канал доступний лише для клієнтів і надає пакет Nextcloud Enterprise.",
+ "Stable" : "Стабільний",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "Остання стабільна версія. Він підходить для регулярного використання та завжди оновлюється до останньої основної версії.",
+ "Beta" : "Бета",
+ "A pre-release version only for testing new features, not for production environments." : "Попередня версія лише для тестування нових функцій, а не для робочих середовищ.",
+ "Update" : "Оновлення",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "Ваша версія більше не підтримується. Будь ласка, оновіться якнайшвидше до версії, на яку поширюється підтримка.",
- "Apps missing updates" : "Відсутні оновлення для застосунків",
+ "Apps missing compatible version" : "Застосунки, не сумісні із пропонованою версією",
"View in store" : "Переглянути у крамниці застосунків",
- "Apps with available updates" : "Застосунки з доступними оновленнями",
- "Open updater" : "Запустити оновлення",
+ "Apps with compatible version" : "Застосунки, сумісні із пропонованою версією",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "Зауважте, що оновлення через веб не рекомендується для систем з понад 100 обліковими записами! Натомість рекомендується використовувати оновлення з командного рядка.",
+ "Open updater" : "Оновити",
"Download now" : "Звантажити зараз",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "Веб-оновлення вимкнено. Для оновлення, будь ласка, скористайтеся засобом оновлення з командного рядка або відповідним до вашого методу встановлення механізмом оновлення (наприклад, Docker pull).",
"What's new?" : "Що нового?",
+ "View changelog" : "Переглянути журнал змін",
"The update check is not yet finished. Please refresh the page." : "Перевірку на нові версії не завершено. Будь ласка, перезавантажте сторінку.",
"Your version is up to date." : "У вас актуальна версія",
"A non-default update server is in use to be checked for updates:" : "Використовується нетиповий сервер оновлення для перевірки на оновлення:",
- "Update channel:" : "Канал оновлення:",
+ "Update channel" : "Канал оновлень",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Зміна каналу оновлень також вплине на сторінку керування застосунками. Так, після перемикання на канал \"бета\", вам пропонуватимуться до встановлення оновлення застосунків бета-версій на сторінці керування застосунками.",
+ "Current update channel:" : "Поточний канал оновлень:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Ви завжди зможете перейти на нову версію, проте не можна буде повернутися на стабільну версію.",
- "Notify members of the following groups about available updates:" : "Повідомляти учасників таких груп про наявні оновлення:",
- "Only notification for app updates are available." : "Доступні лише сповіщення про оновлення для застосунків.",
- "A new version is available: <strong>{newVersionString}</strong>" : "Доступна нова версія: <strong>{newVersionString}</strong>",
- "Checked on {lastCheckedDate}" : "Перевірень {lastCheckedDate}",
- "Checking apps for compatible updates" : "Перевірка застосунків на сумісні оновлення",
- "View changelog" : "Переглянути журнал змін",
- "Enterprise" : "Для бізнесу",
- "Stable" : "Стабільна",
- "Beta" : "Бета",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Зауважте, що після виходу нової збірки може минути певний час, до того як вона буде доступна тут. Ми випускаємо нові версії, які з часом надходять користувачам для оновлення, іноді можемо пропускати версії, які містять помилки."
+ "Notify members of the following groups about available updates:" : "Повідомляти учасників таких груп про доступні оновлення:",
+ "No groups" : "Без груп",
+ "Only notifications for app updates are available." : "Доступні лише сповіщення про оновлення застосунків.",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "Вибраний канал оновлення робить спеціальні сповіщення для сервера застарілими.",
+ "The selected update channel does not support updates of the server." : "Вибраний канал оновлення не підтримує оновлення сервера.",
+ "Changelog for app {app}" : "Журнал змін для застосунку {app}",
+ "What's new in {app} version {version}" : "Що нового у {app} версії {version}",
+ "{version} is available. Get more information on how to update." : "Доступна {version}. Отримати докладну інформацію про те, як оновити версію."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/vi.js b/apps/updatenotification/l10n/vi.js
deleted file mode 100644
index 3819e2f27e5..00000000000
--- a/apps/updatenotification/l10n/vi.js
+++ /dev/null
@@ -1,20 +0,0 @@
-OC.L10N.register(
- "updatenotification",
- {
- "{version} is available. Get more information on how to update." : "{version} có sẵn. Tìm hiểu thêm thông tin về cách cập nhật.",
- "Your version is up to date." : "Phiên bản của bạn được cập nhật.",
- "Update channel:" : "Cập nhật kênh:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Bạn luôn có thể cập nhật lên phiên bản / kênh thử nghiệm mới hơn. Nhưng bạn không bao giờ có thể downgrade vào một kênh ổn định hơn.",
- "Notify members of the following groups about available updates:" : "Thông báo cho các thành viên của các nhóm sau đây về các cập nhật có sẵn:",
- "Could not start updater, please try the manual update" : "Không thể bắt đầu cập nhật, vui lòng thử cập nhật thủ công",
- "Update notifications" : "Cập nhật thông báo",
- "Channel updated" : "Đã cập nhật kênh",
- "Update to %1$s is available." : "Cập nhật lên %1$s có sẵn.",
- "Update for %1$s to version %2$s is available." : "Cập nhật %1$s lên phiên bản %2$s có sẵn.",
- "Update for {app} to version %s is available." : "Cập nhật {app} lên phiên bản %s có sẵn.",
- "A new version is available: %s" : "Đã có phiên bản mới: %s",
- "Open updater" : "Mở trình cập nhật",
- "Download now" : "Tải ngay",
- "Checked on %s" : "Đã kiểm tra lúc %s"
-},
-"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/vi.json b/apps/updatenotification/l10n/vi.json
deleted file mode 100644
index 97cb8ee34a6..00000000000
--- a/apps/updatenotification/l10n/vi.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} có sẵn. Tìm hiểu thêm thông tin về cách cập nhật.",
- "Your version is up to date." : "Phiên bản của bạn được cập nhật.",
- "Update channel:" : "Cập nhật kênh:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Bạn luôn có thể cập nhật lên phiên bản / kênh thử nghiệm mới hơn. Nhưng bạn không bao giờ có thể downgrade vào một kênh ổn định hơn.",
- "Notify members of the following groups about available updates:" : "Thông báo cho các thành viên của các nhóm sau đây về các cập nhật có sẵn:",
- "Could not start updater, please try the manual update" : "Không thể bắt đầu cập nhật, vui lòng thử cập nhật thủ công",
- "Update notifications" : "Cập nhật thông báo",
- "Channel updated" : "Đã cập nhật kênh",
- "Update to %1$s is available." : "Cập nhật lên %1$s có sẵn.",
- "Update for %1$s to version %2$s is available." : "Cập nhật %1$s lên phiên bản %2$s có sẵn.",
- "Update for {app} to version %s is available." : "Cập nhật {app} lên phiên bản %s có sẵn.",
- "A new version is available: %s" : "Đã có phiên bản mới: %s",
- "Open updater" : "Mở trình cập nhật",
- "Download now" : "Tải ngay",
- "Checked on %s" : "Đã kiểm tra lúc %s"
-},"pluralForm" :"nplurals=1; plural=0;"
-} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/zh_CN.js b/apps/updatenotification/l10n/zh_CN.js
index bcf4808ed0c..e87a5081004 100644
--- a/apps/updatenotification/l10n/zh_CN.js
+++ b/apps/updatenotification/l10n/zh_CN.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "新版本 {version} 已可以使用。获取更多升级相关信息。",
"Channel updated" : "更新通道",
+ "Web updater is disabled" : "已禁用 web 更新器",
+ "App updated" : "应用已更新",
+ "See what's new" : "查看最新内容",
+ "{app} updated to version {version}" : "{app} 已更新到版本 {version}",
"Update notifications" : "升级通知",
"The update server could not be reached since %d days to check for new updates." : "更新服务器自 %d 天前起无法访问以检查更新。",
"Please check the Nextcloud and server log files for errors." : "请检查 Nextcloud 和服务器的日志中的错误。",
- "Update to %1$s is available." : " 可以更新到 %1$s 。",
- "Update for %1$s to version %2$s is available." : "可以从 %1$s 版本更新到 %2$s 版本。",
+ "Update to {serverAndVersion} is available." : "可以更新到 {serverAndVersion} 。",
"Update for {app} to version %s is available." : "可以将您的 {app} 更新到版本 %s 。",
"Update notification" : "更新通知",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "显示 Nextcloud 的更新提示,并提供更新器的认证页面。",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "显示 Nextcloud 和应用的更新通知,并为更新程序提供 SSO。",
+ "Give feedback" : "提供反馈",
+ "Get started" : "开始",
+ "No changelog available" : "没有可用的更新日志",
+ "What's new in {app} {version}" : "{app} {version} 的新增功能",
+ "A new version is available: <strong>{newVersionString}</strong>" : "有可用的新版本: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "请注意,在新版本之后,更新仅显示在第一个次要版本或更高版本之后。我们会随着时间的推移推出新版本,有时会在发现问题时跳过某个版本。了解有关于更新和发布渠道的更多信息,请访问 {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "检查于 {lastCheckedDate} — 打开更新日志",
+ "Checking apps for compatible versions" : "正在检查应用程序的兼容版本",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "请确认 config.php 没有设置<samp>appstoreenabled </samp> 为 false。",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "无法连接到应用商店或没有返回任何更新。手动搜索更新,或者确保你的服务器可以上网且可以连接到应用商店。",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>所有</strong>应用都有与这个 Nextcloud 版本兼容的版本可用",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong>个应用没有与这个 Nextcloud 版本兼容的版本可用"],
+ "Enterprise" : "企业级",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "供企业使用。总是提供最新的补丁级别,但不会马上升级到下一个大版本。当Nextcloud GmbH为大规模和关键任务部署完成额外的加固和测试后,升级才会进行。此频道只对客户可用,提供Nextcloud企业级软件包。",
+ "Stable" : "稳定版",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新稳定版本。适合日常使用并总是更新至最新主版本。",
+ "Beta" : "Beta 测试版",
+ "A pre-release version only for testing new features, not for production environments." : "预发布版本仅作测试新功能用,不可用于生产环境。",
+ "Update" : "更新",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您运行的版本已经不再被维护了。请尽快更新到一个受支持的版本。",
- "Apps missing updates" : "缺少更新的应用",
+ "Apps missing compatible version" : "缺少兼容版本的应用",
"View in store" : "在商店中查看",
- "Apps with available updates" : "有可用更新的应用",
- "Open updater" : "打开更新器",
+ "Apps with compatible version" : "有兼容版本的应用",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "请注意,不建议使用超过 100 个账号的网页更新程序!请改用命令行更新程序!",
+ "Open updater" : "打开更新程序",
"Download now" : "开始下载",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "网页更新程序已禁用。请使用命令行更新器或者其他更新机制(例如 Docker 拉取)进行更新。",
"What's new?" : "有哪些更新?",
+ "View changelog" : "查看更新记录",
"The update check is not yet finished. Please refresh the page." : "更新检查未完成。请刷新页面。",
"Your version is up to date." : "您的版本已是最新。",
"A non-default update server is in use to be checked for updates:" : "检查更新使用了一个非默认的服务器:",
- "Update channel:" : "更新通道:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "您永远可以升级到更新的版本。但不能降级到更稳定的低版本。",
+ "Update channel" : "更新通道",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "更改更新通道会同样影响应用管理页面。比如在切换到测试通道后,在应用管理页面中也会提供测试版的应用更新。",
+ "Current update channel:" : "当前的更新通道:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "您可以升级到新版本,但不能降级到更稳定的旧版本。",
"Notify members of the following groups about available updates:" : "提醒以下组群的用户关于可用的更新:",
- "Only notification for app updates are available." : "仅提醒应用更新就绪。",
+ "No groups" : "无群组",
+ "Only notifications for app updates are available." : "只有应用更新的通知可用",
"The selected update channel makes dedicated notifications for the server obsolete." : "被选中的升级通道将会通知未更新的服务器。",
"The selected update channel does not support updates of the server." : "选中的更新通道不支持服务器升级。",
- "A new version is available: <strong>{newVersionString}</strong>" : "有可用的新版本: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "注意,在新版本发布之后,更新只在第一个次要版本或更高版本之后出现。随着时间的推移,我们会向用户推出新的版本,有时会在发现问题时跳过某个版本。要了解关于更新和发布通道的更多信息,点击 {link}。",
- "Checked on {lastCheckedDate}" : "检查时间 {lastCheckedDate}",
- "Checking apps for compatible updates" : "检查应用以匹配更新",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "请确认 config.php 没有设置<samp>appstoreenabled </samp> 为 false。",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "无法连接到应用商店,或者应用商店返回无可用更新。请手动搜索更新,或者是确认您的服务器能访问互联网,并能连接到应用商店。",
- "<strong>All</strong> apps have an update for this version available" : "<strong>所有</strong> 应用有适用于这个版本的更新",
- "View changelog" : "查看更新记录",
- "Enterprise" : "企业级",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "供企业使用。总是提供最新的补丁级别,但不会马上升级到下一个大版本。当Nextcloud GmbH为大规模和关键任务部署完成额外的加固和测试后,升级才会进行。此频道只对客户可用,提供Nextcloud企业级软件包。",
- "Stable" : "稳定版",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新稳定版本。适合日常使用并总是更新至最新主版本。",
- "Beta" : "Beta测试版",
- "A pre-release version only for testing new features, not for production environments." : "预发布版本仅作测试新功能用,不可用于生产环境。",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong>应用没有适用这个版本的更新"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "请注意,在新版本发布后,它可能需要一段时间才能显示在这里。新版本发布后,随着时间的推移,当用户发现问题时我们可能会跳过一个版本。"
+ "Changelog for app {app}" : "应用 {app} 的更新日志",
+ "What's new in {app} version {version}" : "{app} 版本 {version} 的新增功能",
+ "{version} is available. Get more information on how to update." : "新版本 {version} 已可以使用。获取更多升级相关信息。"
},
"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/zh_CN.json b/apps/updatenotification/l10n/zh_CN.json
index c5efac4af20..4d0c6a66ffd 100644
--- a/apps/updatenotification/l10n/zh_CN.json
+++ b/apps/updatenotification/l10n/zh_CN.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "新版本 {version} 已可以使用。获取更多升级相关信息。",
"Channel updated" : "更新通道",
+ "Web updater is disabled" : "已禁用 web 更新器",
+ "App updated" : "应用已更新",
+ "See what's new" : "查看最新内容",
+ "{app} updated to version {version}" : "{app} 已更新到版本 {version}",
"Update notifications" : "升级通知",
"The update server could not be reached since %d days to check for new updates." : "更新服务器自 %d 天前起无法访问以检查更新。",
"Please check the Nextcloud and server log files for errors." : "请检查 Nextcloud 和服务器的日志中的错误。",
- "Update to %1$s is available." : " 可以更新到 %1$s 。",
- "Update for %1$s to version %2$s is available." : "可以从 %1$s 版本更新到 %2$s 版本。",
+ "Update to {serverAndVersion} is available." : "可以更新到 {serverAndVersion} 。",
"Update for {app} to version %s is available." : "可以将您的 {app} 更新到版本 %s 。",
"Update notification" : "更新通知",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "显示 Nextcloud 的更新提示,并提供更新器的认证页面。",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "显示 Nextcloud 和应用的更新通知,并为更新程序提供 SSO。",
+ "Give feedback" : "提供反馈",
+ "Get started" : "开始",
+ "No changelog available" : "没有可用的更新日志",
+ "What's new in {app} {version}" : "{app} {version} 的新增功能",
+ "A new version is available: <strong>{newVersionString}</strong>" : "有可用的新版本: <strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "请注意,在新版本之后,更新仅显示在第一个次要版本或更高版本之后。我们会随着时间的推移推出新版本,有时会在发现问题时跳过某个版本。了解有关于更新和发布渠道的更多信息,请访问 {link}",
+ "Checked on {lastCheckedDate} - Open changelog" : "检查于 {lastCheckedDate} — 打开更新日志",
+ "Checking apps for compatible versions" : "正在检查应用程序的兼容版本",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "请确认 config.php 没有设置<samp>appstoreenabled </samp> 为 false。",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "无法连接到应用商店或没有返回任何更新。手动搜索更新,或者确保你的服务器可以上网且可以连接到应用商店。",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>所有</strong>应用都有与这个 Nextcloud 版本兼容的版本可用",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong>个应用没有与这个 Nextcloud 版本兼容的版本可用"],
+ "Enterprise" : "企业级",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "供企业使用。总是提供最新的补丁级别,但不会马上升级到下一个大版本。当Nextcloud GmbH为大规模和关键任务部署完成额外的加固和测试后,升级才会进行。此频道只对客户可用,提供Nextcloud企业级软件包。",
+ "Stable" : "稳定版",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新稳定版本。适合日常使用并总是更新至最新主版本。",
+ "Beta" : "Beta 测试版",
+ "A pre-release version only for testing new features, not for production environments." : "预发布版本仅作测试新功能用,不可用于生产环境。",
+ "Update" : "更新",
"The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您运行的版本已经不再被维护了。请尽快更新到一个受支持的版本。",
- "Apps missing updates" : "缺少更新的应用",
+ "Apps missing compatible version" : "缺少兼容版本的应用",
"View in store" : "在商店中查看",
- "Apps with available updates" : "有可用更新的应用",
- "Open updater" : "打开更新器",
+ "Apps with compatible version" : "有兼容版本的应用",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "请注意,不建议使用超过 100 个账号的网页更新程序!请改用命令行更新程序!",
+ "Open updater" : "打开更新程序",
"Download now" : "开始下载",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "网页更新程序已禁用。请使用命令行更新器或者其他更新机制(例如 Docker 拉取)进行更新。",
"What's new?" : "有哪些更新?",
+ "View changelog" : "查看更新记录",
"The update check is not yet finished. Please refresh the page." : "更新检查未完成。请刷新页面。",
"Your version is up to date." : "您的版本已是最新。",
"A non-default update server is in use to be checked for updates:" : "检查更新使用了一个非默认的服务器:",
- "Update channel:" : "更新通道:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "您永远可以升级到更新的版本。但不能降级到更稳定的低版本。",
+ "Update channel" : "更新通道",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "更改更新通道会同样影响应用管理页面。比如在切换到测试通道后,在应用管理页面中也会提供测试版的应用更新。",
+ "Current update channel:" : "当前的更新通道:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "您可以升级到新版本,但不能降级到更稳定的旧版本。",
"Notify members of the following groups about available updates:" : "提醒以下组群的用户关于可用的更新:",
- "Only notification for app updates are available." : "仅提醒应用更新就绪。",
+ "No groups" : "无群组",
+ "Only notifications for app updates are available." : "只有应用更新的通知可用",
"The selected update channel makes dedicated notifications for the server obsolete." : "被选中的升级通道将会通知未更新的服务器。",
"The selected update channel does not support updates of the server." : "选中的更新通道不支持服务器升级。",
- "A new version is available: <strong>{newVersionString}</strong>" : "有可用的新版本: <strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "注意,在新版本发布之后,更新只在第一个次要版本或更高版本之后出现。随着时间的推移,我们会向用户推出新的版本,有时会在发现问题时跳过某个版本。要了解关于更新和发布通道的更多信息,点击 {link}。",
- "Checked on {lastCheckedDate}" : "检查时间 {lastCheckedDate}",
- "Checking apps for compatible updates" : "检查应用以匹配更新",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "请确认 config.php 没有设置<samp>appstoreenabled </samp> 为 false。",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "无法连接到应用商店,或者应用商店返回无可用更新。请手动搜索更新,或者是确认您的服务器能访问互联网,并能连接到应用商店。",
- "<strong>All</strong> apps have an update for this version available" : "<strong>所有</strong> 应用有适用于这个版本的更新",
- "View changelog" : "查看更新记录",
- "Enterprise" : "企业级",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "供企业使用。总是提供最新的补丁级别,但不会马上升级到下一个大版本。当Nextcloud GmbH为大规模和关键任务部署完成额外的加固和测试后,升级才会进行。此频道只对客户可用,提供Nextcloud企业级软件包。",
- "Stable" : "稳定版",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新稳定版本。适合日常使用并总是更新至最新主版本。",
- "Beta" : "Beta测试版",
- "A pre-release version only for testing new features, not for production environments." : "预发布版本仅作测试新功能用,不可用于生产环境。",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong>应用没有适用这个版本的更新"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "请注意,在新版本发布后,它可能需要一段时间才能显示在这里。新版本发布后,随着时间的推移,当用户发现问题时我们可能会跳过一个版本。"
+ "Changelog for app {app}" : "应用 {app} 的更新日志",
+ "What's new in {app} version {version}" : "{app} 版本 {version} 的新增功能",
+ "{version} is available. Get more information on how to update." : "新版本 {version} 已可以使用。获取更多升级相关信息。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/zh_HK.js b/apps/updatenotification/l10n/zh_HK.js
index 3b443d902b2..c3f49762de2 100644
--- a/apps/updatenotification/l10n/zh_HK.js
+++ b/apps/updatenotification/l10n/zh_HK.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} 釋出了,可以更新",
"Channel updated" : "頻道已更新",
+ "Web updater is disabled" : "Web updater 已停用",
+ "App updated" : "應用程式更新了",
+ "See what's new" : "看看有什麼新的",
+ "{app} updated to version {version}" : "{app} 更新到版本 {version}",
"Update notifications" : "更新通告",
- "The update server could not be reached since %d days to check for new updates." : "更新伺服器在%d天前已經無法連線檢查更新",
- "Please check the Nextcloud and server log files for errors." : "請確認伺服器紀錄檔以檢視錯誤。",
- "Update to %1$s is available." : "更新版 %1$s 已經釋出。",
- "Update for %1$s to version %2$s is available." : "%1$s 到 %2$s 的更新已經釋出。",
- "Update for {app} to version %s is available." : "{app} 已有 %s 版本的更新。",
+ "The update server could not be reached since %d days to check for new updates." : "已經有 %d 天無法連線更新伺服器以檢查是否有新更新。",
+ "Please check the Nextcloud and server log files for errors." : "請參考 Nextcloud 和伺服器記錄檔案以獲取錯誤詳細信息。",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} 的更新版已推出。",
+ "Update for {app} to version %s is available." : "{app} 的更新版 %s 已推出。",
"Update notification" : "更新通告",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "顯示 Nextcloud 的更新通告,並為更新程式提供 SSO。",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您執行的版本已不再維護。請盡快更新到支援中的版本。",
- "Apps missing updates" : "缺少更新的應用程式",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "顯示 Nextcloud 的更新通知、應用程式更新,並為更新程式提供 SSO。",
+ "Give feedback" : "提供反饋",
+ "Get started" : "開始",
+ "No changelog available" : "沒有可用的更改日誌",
+ "What's new in {app} {version}" : "{app} {version}中有什麼新功能",
+ "A new version is available: <strong>{newVersionString}</strong>" : "有新版本可用:<strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "請注意,新版本釋出後,僅會在有第一個次要版本或更新的版本時顯示。我們會逐步推送新版本,並在發現問題時跳過特定版本。在 {link} 取得關於更新與釋出頻道的更多資訊",
+ "Checked on {lastCheckedDate} - Open changelog" : "檢查於 {lastCheckedDate} - 開啟變更紀錄",
+ "Checking apps for compatible versions" : "檢查應用程式的兼容版本",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "請確定您的 config.php 中並沒有將 <samp>appstoreenabled</samp> 的值設定為 false。",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "無法連接到 App Store 或根本沒有返回任何更新。手動搜索更新或確保您的伺服器可以訪問互聯網並且可以連接到 App Store。",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>所有</strong>應用程式都具有適用於此Nextcloud版本的兼容版本。",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["有 <strong>%n</strong> 個應用程式沒有與此 Nextcloud 版本相容的版本。"],
+ "Enterprise" : "企業",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "企業用。一律提供最新的修補程式等級,但不會立刻更新到下一個主要版本。一旦 Nextcloud GmbH 完成對大規模與關鍵任務部署的額外強化與測試,才會進行更新。此頻道僅供客戶使用,並提供 Nextcloud Enterprise 軟體包。",
+ "Stable" : "穩定",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新的穩定版本。適於一般使用,亦將一律更新到最新主要版本。",
+ "Beta" : "Beta 測試版",
+ "A pre-release version only for testing new features, not for production environments." : "預發佈版本僅用於測試新功能,不適用於生產環境。",
+ "Update" : "更新",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您使用的版本已不再維護。請盡快更新到有支援的版本。",
+ "Apps missing compatible version" : "應用程式缺少兼容版本",
"View in store" : "在商店中檢視",
- "Apps with available updates" : "有可用更新的應用程式",
+ "Apps with compatible version" : "具有兼容版本的應用程式",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "請注意,不建議使用超過 100 個帳戶的網絡更新程序! 請改用命令行更新程序!",
"Open updater" : "打開更新程式",
- "Download now" : "現在下載",
+ "Download now" : "立即下載",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "網頁更新程式已停用。請使用命令列更新程式或適合您安裝方式的適當更新機制(例如 Docker pull)進行更新。",
"What's new?" : "有什麼新鮮事?",
+ "View changelog" : "檢視版本更新紀錄",
"The update check is not yet finished. Please refresh the page." : "更新檢查未完成。請重新整理此頁面。",
"Your version is up to date." : "您的版本是最新版。",
- "A non-default update server is in use to be checked for updates:" : "沒有預設的更新伺服器以至於無法檢查更新:",
- "Update channel:" : "更新頻道:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "您始終可以更新到較新的版本。但您無法降級到較穩定的版本。",
+ "A non-default update server is in use to be checked for updates:" : "此非默認更新伺服器用於檢查更新:",
+ "Update channel" : "更新頻道",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "變更更新頻道也會影響應用程式管理頁面。例如,切換到測試版頻道後,將會在應用程式管理頁面中向您提供測試版應用程式更新。",
+ "Current update channel:" : "目前的更新頻道:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "您可以更新到新版本,但無法降級到較穩定的版本。",
"Notify members of the following groups about available updates:" : "有可用更新時通知這些以下群組的成員:",
- "Only notification for app updates are available." : "僅提供應用程式更新的通告。",
- "The selected update channel makes dedicated notifications for the server obsolete." : "選定的更新通道將會讓伺服器專用的通知過時。",
+ "No groups" : "沒有群組",
+ "Only notifications for app updates are available." : "只有應用程式更新通知可用。",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "所選的更新頻道導致伺服器的專用通知過時。",
"The selected update channel does not support updates of the server." : "選定的更新頻道不支援伺服器更新。",
- "A new version is available: <strong>{newVersionString}</strong>" : "新版本可用:<strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "請注意,新版本釋出後,僅會在有第一個次要版本或更新的版本時顯示。我們會逐步向使用者推送新版本,並在發現問題時跳過特定版本。在 {link} 取得關於更新與釋出頻道的更多資訊",
- "Checked on {lastCheckedDate}" : "檢查於 {lastCheckedDate}",
- "Checking apps for compatible updates" : "正在檢查應用程式是否相容於更新",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "請確定您的 config.php 中並沒有將 <samp>appstoreenabled</samp> 的值設定為 false。",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "無法連線至應用程式商店,或者應用程式商店回應無任何更新,請您手動搜尋更新,或者修復您伺服器的網際網路連線,讓它可以連線至應用程式商店。",
- "<strong>All</strong> apps have an update for this version available" : "<strong>所有</strong>應用程式都有此版本的更新",
- "View changelog" : "檢視版本更新紀錄",
- "Enterprise" : "企業",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "企業用。一律提供最新的修補程式等級,但不會立刻更新到下一個主要版本。一旦 Nextcloud GmbH 完成對大規模與關鍵任務部署的額外強化與測試,才會進行更新。此頻道僅供客戶使用,並提供 Nextcloud Enterprise 軟體包。",
- "Stable" : "穩定",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新的穩定版本。適於一般使用,一律更新到最新主要版本。",
- "Beta" : "Beta 測試版",
- "A pre-release version only for testing new features, not for production environments." : "釋出前版本,僅供測試新功能使用,不適用於生產環境。",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> 應用程式沒有此版本的更新"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "請注意,新版本釋出後,需要過一段時間才會在此顯示通知。隨著時間推進,我們為用戶推出了新的版本,有時候會在發現問題時跳過前一個版本更新。"
+ "Changelog for app {app}" : "應用程式 {app} 的更新日誌",
+ "What's new in {app} version {version}" : "{app}版本{version}有什麼新功能",
+ "{version} is available. Get more information on how to update." : "新版本 {version} 推出了,可以更新。"
},
"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/zh_HK.json b/apps/updatenotification/l10n/zh_HK.json
index ece5f474c80..8b3cd118ec8 100644
--- a/apps/updatenotification/l10n/zh_HK.json
+++ b/apps/updatenotification/l10n/zh_HK.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} 釋出了,可以更新",
"Channel updated" : "頻道已更新",
+ "Web updater is disabled" : "Web updater 已停用",
+ "App updated" : "應用程式更新了",
+ "See what's new" : "看看有什麼新的",
+ "{app} updated to version {version}" : "{app} 更新到版本 {version}",
"Update notifications" : "更新通告",
- "The update server could not be reached since %d days to check for new updates." : "更新伺服器在%d天前已經無法連線檢查更新",
- "Please check the Nextcloud and server log files for errors." : "請確認伺服器紀錄檔以檢視錯誤。",
- "Update to %1$s is available." : "更新版 %1$s 已經釋出。",
- "Update for %1$s to version %2$s is available." : "%1$s 到 %2$s 的更新已經釋出。",
- "Update for {app} to version %s is available." : "{app} 已有 %s 版本的更新。",
+ "The update server could not be reached since %d days to check for new updates." : "已經有 %d 天無法連線更新伺服器以檢查是否有新更新。",
+ "Please check the Nextcloud and server log files for errors." : "請參考 Nextcloud 和伺服器記錄檔案以獲取錯誤詳細信息。",
+ "Update to {serverAndVersion} is available." : "{serverAndVersion} 的更新版已推出。",
+ "Update for {app} to version %s is available." : "{app} 的更新版 %s 已推出。",
"Update notification" : "更新通告",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "顯示 Nextcloud 的更新通告,並為更新程式提供 SSO。",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您執行的版本已不再維護。請盡快更新到支援中的版本。",
- "Apps missing updates" : "缺少更新的應用程式",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "顯示 Nextcloud 的更新通知、應用程式更新,並為更新程式提供 SSO。",
+ "Give feedback" : "提供反饋",
+ "Get started" : "開始",
+ "No changelog available" : "沒有可用的更改日誌",
+ "What's new in {app} {version}" : "{app} {version}中有什麼新功能",
+ "A new version is available: <strong>{newVersionString}</strong>" : "有新版本可用:<strong>{newVersionString}</strong>",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "請注意,新版本釋出後,僅會在有第一個次要版本或更新的版本時顯示。我們會逐步推送新版本,並在發現問題時跳過特定版本。在 {link} 取得關於更新與釋出頻道的更多資訊",
+ "Checked on {lastCheckedDate} - Open changelog" : "檢查於 {lastCheckedDate} - 開啟變更紀錄",
+ "Checking apps for compatible versions" : "檢查應用程式的兼容版本",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "請確定您的 config.php 中並沒有將 <samp>appstoreenabled</samp> 的值設定為 false。",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "無法連接到 App Store 或根本沒有返回任何更新。手動搜索更新或確保您的伺服器可以訪問互聯網並且可以連接到 App Store。",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>所有</strong>應用程式都具有適用於此Nextcloud版本的兼容版本。",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["有 <strong>%n</strong> 個應用程式沒有與此 Nextcloud 版本相容的版本。"],
+ "Enterprise" : "企業",
+ "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "企業用。一律提供最新的修補程式等級,但不會立刻更新到下一個主要版本。一旦 Nextcloud GmbH 完成對大規模與關鍵任務部署的額外強化與測試,才會進行更新。此頻道僅供客戶使用,並提供 Nextcloud Enterprise 軟體包。",
+ "Stable" : "穩定",
+ "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新的穩定版本。適於一般使用,亦將一律更新到最新主要版本。",
+ "Beta" : "Beta 測試版",
+ "A pre-release version only for testing new features, not for production environments." : "預發佈版本僅用於測試新功能,不適用於生產環境。",
+ "Update" : "更新",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您使用的版本已不再維護。請盡快更新到有支援的版本。",
+ "Apps missing compatible version" : "應用程式缺少兼容版本",
"View in store" : "在商店中檢視",
- "Apps with available updates" : "有可用更新的應用程式",
+ "Apps with compatible version" : "具有兼容版本的應用程式",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "請注意,不建議使用超過 100 個帳戶的網絡更新程序! 請改用命令行更新程序!",
"Open updater" : "打開更新程式",
- "Download now" : "現在下載",
+ "Download now" : "立即下載",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "網頁更新程式已停用。請使用命令列更新程式或適合您安裝方式的適當更新機制(例如 Docker pull)進行更新。",
"What's new?" : "有什麼新鮮事?",
+ "View changelog" : "檢視版本更新紀錄",
"The update check is not yet finished. Please refresh the page." : "更新檢查未完成。請重新整理此頁面。",
"Your version is up to date." : "您的版本是最新版。",
- "A non-default update server is in use to be checked for updates:" : "沒有預設的更新伺服器以至於無法檢查更新:",
- "Update channel:" : "更新頻道:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "您始終可以更新到較新的版本。但您無法降級到較穩定的版本。",
+ "A non-default update server is in use to be checked for updates:" : "此非默認更新伺服器用於檢查更新:",
+ "Update channel" : "更新頻道",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "變更更新頻道也會影響應用程式管理頁面。例如,切換到測試版頻道後,將會在應用程式管理頁面中向您提供測試版應用程式更新。",
+ "Current update channel:" : "目前的更新頻道:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "您可以更新到新版本,但無法降級到較穩定的版本。",
"Notify members of the following groups about available updates:" : "有可用更新時通知這些以下群組的成員:",
- "Only notification for app updates are available." : "僅提供應用程式更新的通告。",
- "The selected update channel makes dedicated notifications for the server obsolete." : "選定的更新通道將會讓伺服器專用的通知過時。",
+ "No groups" : "沒有群組",
+ "Only notifications for app updates are available." : "只有應用程式更新通知可用。",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "所選的更新頻道導致伺服器的專用通知過時。",
"The selected update channel does not support updates of the server." : "選定的更新頻道不支援伺服器更新。",
- "A new version is available: <strong>{newVersionString}</strong>" : "新版本可用:<strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "請注意,新版本釋出後,僅會在有第一個次要版本或更新的版本時顯示。我們會逐步向使用者推送新版本,並在發現問題時跳過特定版本。在 {link} 取得關於更新與釋出頻道的更多資訊",
- "Checked on {lastCheckedDate}" : "檢查於 {lastCheckedDate}",
- "Checking apps for compatible updates" : "正在檢查應用程式是否相容於更新",
- "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "請確定您的 config.php 中並沒有將 <samp>appstoreenabled</samp> 的值設定為 false。",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "無法連線至應用程式商店,或者應用程式商店回應無任何更新,請您手動搜尋更新,或者修復您伺服器的網際網路連線,讓它可以連線至應用程式商店。",
- "<strong>All</strong> apps have an update for this version available" : "<strong>所有</strong>應用程式都有此版本的更新",
- "View changelog" : "檢視版本更新紀錄",
- "Enterprise" : "企業",
- "For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "企業用。一律提供最新的修補程式等級,但不會立刻更新到下一個主要版本。一旦 Nextcloud GmbH 完成對大規模與關鍵任務部署的額外強化與測試,才會進行更新。此頻道僅供客戶使用,並提供 Nextcloud Enterprise 軟體包。",
- "Stable" : "穩定",
- "The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新的穩定版本。適於一般使用,一律更新到最新主要版本。",
- "Beta" : "Beta 測試版",
- "A pre-release version only for testing new features, not for production environments." : "釋出前版本,僅供測試新功能使用,不適用於生產環境。",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> 應用程式沒有此版本的更新"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "請注意,新版本釋出後,需要過一段時間才會在此顯示通知。隨著時間推進,我們為用戶推出了新的版本,有時候會在發現問題時跳過前一個版本更新。"
+ "Changelog for app {app}" : "應用程式 {app} 的更新日誌",
+ "What's new in {app} version {version}" : "{app}版本{version}有什麼新功能",
+ "{version} is available. Get more information on how to update." : "新版本 {version} 推出了,可以更新。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/zh_TW.js b/apps/updatenotification/l10n/zh_TW.js
index 65b113d0bfb..9e1b48b0176 100644
--- a/apps/updatenotification/l10n/zh_TW.js
+++ b/apps/updatenotification/l10n/zh_TW.js
@@ -1,47 +1,61 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "{version} 釋出了,可以更新",
"Channel updated" : "頻道已更新",
+ "Web updater is disabled" : "網頁更新程式已停用",
+ "App updated" : "已更新應用程式",
+ "See what's new" : "看看有什麼新東西",
+ "{app} updated to version {version}" : "{app} 已更新至版本 {version}",
"Update notifications" : "更新通知",
- "The update server could not be reached since %d days to check for new updates." : "更新伺服器在%d天前已經無法連線檢查更新",
- "Please check the Nextcloud and server log files for errors." : "請確認伺服器紀錄檔以檢視錯誤。",
- "Update to %1$s is available." : "更新版 %1$s 已經釋出",
- "Update for %1$s to version %2$s is available." : "%1$s 到 %2$s 的更新已經釋出",
- "Update for {app} to version %s is available." : "{app} 已有 %s 版本的更新",
+ "The update server could not be reached since %d days to check for new updates." : "更新伺服器從 %d 天前就不能連線,無法檢查更新。",
+ "Please check the Nextcloud and server log files for errors." : "請檢查 Nextcloud 與伺服器紀錄檔是否有錯誤。",
+ "Update to {serverAndVersion} is available." : "已可更新至 {serverAndVersion}。",
+ "Update for {app} to version %s is available." : "{app} 已有 %s 版的更新。",
"Update notification" : "更新通知",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "顯示 Nextcloud 的更新通知,並為更新程式提供 SSO。",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您執行的版本已不再維護。請盡快更新到支援中的版本。",
- "Apps missing updates" : "缺少更新的應用程式",
- "View in store" : "在商店中檢視",
- "Apps with available updates" : "有可用更新的應用程式",
- "Open updater" : "打開更新程式",
- "Download now" : "現在下載",
- "What's new?" : "有什麼新鮮事?",
- "The update check is not yet finished. Please refresh the page." : "更新檢查未完成。請重新整理此頁面。",
- "Your version is up to date." : "您的版本是最新版。",
- "A non-default update server is in use to be checked for updates:" : "沒有預設的更新伺服器以至於無法檢查更新:",
- "Update channel:" : "更新頻道:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "您始終可以更新到較新的版本。但您無法降級到較穩定的版本。",
- "Notify members of the following groups about available updates:" : "有可用更新時通知這些群組的成員:",
- "Only notification for app updates are available." : "僅提供應用程式更新的通知",
- "The selected update channel makes dedicated notifications for the server obsolete." : "選定的更新通道將會讓伺服器專用的通知過時。",
- "The selected update channel does not support updates of the server." : "選定的更新頻道不支援伺服器更新。",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "顯示 Nextcloud 與應用程式的更新通知,並為更新程式提供 SSO。",
+ "Give feedback" : "給予回饋",
+ "Get started" : "開始",
+ "No changelog available" : "無可用的變更紀錄",
+ "What's new in {app} {version}" : "{app} {version} 中有什麼新功能",
"A new version is available: <strong>{newVersionString}</strong>" : "新版本可用:<strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "請注意,新版本釋出後,僅會在有第一個次要版本或更新的版本時顯示。我們會逐步向使用者推送新版本,並在發現問題時跳過特定版本。在 {link} 取得關於更新與釋出頻道的更多資訊",
- "Checked on {lastCheckedDate}" : "檢查於 {lastCheckedDate}",
- "Checking apps for compatible updates" : "正在檢查應用程式是否相容於更新",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "請注意,新版本釋出後,僅會在有第一個次要版本或更新的版本時顯示。我們會逐步推送新版本,並在發現問題時跳過特定版本。在 {link} 取得關於更新與釋出頻道的更多資訊",
+ "Checked on {lastCheckedDate} - Open changelog" : "檢查於 {lastCheckedDate} - 開啟變更紀錄",
+ "Checking apps for compatible versions" : "正在檢查應用程式的相容版本",
"Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "請確定您的 config.php 中並沒有將 <samp>appstoreenabled</samp> 的值設定為 false。",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "無法連線至應用程式商店,或者應用程式商店回應無任何更新,請您手動搜尋更新,或者修復您伺服器的網際網路連線,讓它可以連線至應用程式商店。",
- "<strong>All</strong> apps have an update for this version available" : "<strong>所有</strong>應用程式都有此版本的更新",
- "View changelog" : "檢視版本更新紀錄",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "無法連線至應用程式商店,或是應用程式商店回傳無任何更新。請手動搜尋更新或確定您的伺服器的網際網路連線正常,並可連線至應用程式商店。",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>所有</strong>應用程式都有可用於此 Nextcloud 版本的相容版本。",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> 個應用程式沒有與此 Nextcloud 版本相容的版本。"],
"Enterprise" : "企業",
"For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "企業用。一律提供最新的修補程式等級,但不會立刻更新到下一個主要版本。一旦 Nextcloud GmbH 完成對大規模與關鍵任務部署的額外強化與測試,才會進行更新。此頻道僅供客戶使用,並提供 Nextcloud Enterprise 軟體包。",
"Stable" : "穩定",
"The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新的穩定版本。適於一般使用,一律更新到最新主要版本。",
- "Beta" : "Beta 測試版",
- "A pre-release version only for testing new features, not for production environments." : "釋出前版本,僅供測試新功能使用,不適用於生產環境。",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> 應用程式沒有此版本的更新"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "請注意,新版本釋出後,需要過一段時間才會在此顯示通知。隨著時間推進,我們為用戶推出了新的版本,有時候會在發現問題時跳過前一個版本更新。"
+ "Beta" : "測試版",
+ "A pre-release version only for testing new features, not for production environments." : "發行前版本,僅供測試新功能使用,不適用於生產環境。",
+ "Update" : "更新",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您執行的版本已不再維護。請盡快更新到支援中的版本。",
+ "Apps missing compatible version" : "應用程式缺少相容的版本",
+ "View in store" : "在商店中檢視",
+ "Apps with compatible version" : "有相容版本的應用程式",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "請注意,不建議超過 100 個帳號的站台使用網頁更新程式!請改用命令列更新程式!",
+ "Open updater" : "開啟更新程式",
+ "Download now" : "立刻下載",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "網頁更新程式已停用。請使用命令列更新程式或適合您安裝方式的適當更新機制(例如 Docker pull)進行更新。",
+ "What's new?" : "有什麼新鮮事?",
+ "View changelog" : "檢視版本更新紀錄",
+ "The update check is not yet finished. Please refresh the page." : "更新檢查未完成。請重新整理此頁面。",
+ "Your version is up to date." : "您的版本為最新狀態。",
+ "A non-default update server is in use to be checked for updates:" : "使用非預設的更新伺服器檢查更新:",
+ "Update channel" : "更新頻道",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "更換更新頻道也會影響應用程式管理頁面。舉例來說,切換到測試版頻道後,將會在應用程式管理頁面中向您提供測試版應用程式更新。",
+ "Current update channel:" : "目前的更新頻道:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "您永遠都可以更新到較新的版本。但您無法降級到較穩定的版本。",
+ "Notify members of the following groups about available updates:" : "有可用更新時通知這些群組的成員:",
+ "No groups" : "無群組",
+ "Only notifications for app updates are available." : "僅有應用程式更新的通知可用。",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "選定的更新通道將汰換伺服器專用的通知。",
+ "The selected update channel does not support updates of the server." : "選定的更新頻道不支援伺服器更新。",
+ "Changelog for app {app}" : "應用程式 {app} 的變更紀錄",
+ "What's new in {app} version {version}" : "{app} 版本 {version} 中有什麼新功能",
+ "{version} is available. Get more information on how to update." : "{version} 發行了。取得更多關於如何更新的資訊。"
},
"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/zh_TW.json b/apps/updatenotification/l10n/zh_TW.json
index 8886d9bd8ff..0e8c9c9691d 100644
--- a/apps/updatenotification/l10n/zh_TW.json
+++ b/apps/updatenotification/l10n/zh_TW.json
@@ -1,45 +1,59 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "{version} 釋出了,可以更新",
"Channel updated" : "頻道已更新",
+ "Web updater is disabled" : "網頁更新程式已停用",
+ "App updated" : "已更新應用程式",
+ "See what's new" : "看看有什麼新東西",
+ "{app} updated to version {version}" : "{app} 已更新至版本 {version}",
"Update notifications" : "更新通知",
- "The update server could not be reached since %d days to check for new updates." : "更新伺服器在%d天前已經無法連線檢查更新",
- "Please check the Nextcloud and server log files for errors." : "請確認伺服器紀錄檔以檢視錯誤。",
- "Update to %1$s is available." : "更新版 %1$s 已經釋出",
- "Update for %1$s to version %2$s is available." : "%1$s 到 %2$s 的更新已經釋出",
- "Update for {app} to version %s is available." : "{app} 已有 %s 版本的更新",
+ "The update server could not be reached since %d days to check for new updates." : "更新伺服器從 %d 天前就不能連線,無法檢查更新。",
+ "Please check the Nextcloud and server log files for errors." : "請檢查 Nextcloud 與伺服器紀錄檔是否有錯誤。",
+ "Update to {serverAndVersion} is available." : "已可更新至 {serverAndVersion}。",
+ "Update for {app} to version %s is available." : "{app} 已有 %s 版的更新。",
"Update notification" : "更新通知",
- "Displays update notifications for Nextcloud and provides the SSO for the updater." : "顯示 Nextcloud 的更新通知,並為更新程式提供 SSO。",
- "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您執行的版本已不再維護。請盡快更新到支援中的版本。",
- "Apps missing updates" : "缺少更新的應用程式",
- "View in store" : "在商店中檢視",
- "Apps with available updates" : "有可用更新的應用程式",
- "Open updater" : "打開更新程式",
- "Download now" : "現在下載",
- "What's new?" : "有什麼新鮮事?",
- "The update check is not yet finished. Please refresh the page." : "更新檢查未完成。請重新整理此頁面。",
- "Your version is up to date." : "您的版本是最新版。",
- "A non-default update server is in use to be checked for updates:" : "沒有預設的更新伺服器以至於無法檢查更新:",
- "Update channel:" : "更新頻道:",
- "You can always update to a newer version. But you can never downgrade to a more stable version." : "您始終可以更新到較新的版本。但您無法降級到較穩定的版本。",
- "Notify members of the following groups about available updates:" : "有可用更新時通知這些群組的成員:",
- "Only notification for app updates are available." : "僅提供應用程式更新的通知",
- "The selected update channel makes dedicated notifications for the server obsolete." : "選定的更新通道將會讓伺服器專用的通知過時。",
- "The selected update channel does not support updates of the server." : "選定的更新頻道不支援伺服器更新。",
+ "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater." : "顯示 Nextcloud 與應用程式的更新通知,並為更新程式提供 SSO。",
+ "Give feedback" : "給予回饋",
+ "Get started" : "開始",
+ "No changelog available" : "無可用的變更紀錄",
+ "What's new in {app} {version}" : "{app} {version} 中有什麼新功能",
"A new version is available: <strong>{newVersionString}</strong>" : "新版本可用:<strong>{newVersionString}</strong>",
- "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "請注意,新版本釋出後,僅會在有第一個次要版本或更新的版本時顯示。我們會逐步向使用者推送新版本,並在發現問題時跳過特定版本。在 {link} 取得關於更新與釋出頻道的更多資訊",
- "Checked on {lastCheckedDate}" : "檢查於 {lastCheckedDate}",
- "Checking apps for compatible updates" : "正在檢查應用程式是否相容於更新",
+ "Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}" : "請注意,新版本釋出後,僅會在有第一個次要版本或更新的版本時顯示。我們會逐步推送新版本,並在發現問題時跳過特定版本。在 {link} 取得關於更新與釋出頻道的更多資訊",
+ "Checked on {lastCheckedDate} - Open changelog" : "檢查於 {lastCheckedDate} - 開啟變更紀錄",
+ "Checking apps for compatible versions" : "正在檢查應用程式的相容版本",
"Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "請確定您的 config.php 中並沒有將 <samp>appstoreenabled</samp> 的值設定為 false。",
- "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "無法連線至應用程式商店,或者應用程式商店回應無任何更新,請您手動搜尋更新,或者修復您伺服器的網際網路連線,讓它可以連線至應用程式商店。",
- "<strong>All</strong> apps have an update for this version available" : "<strong>所有</strong>應用程式都有此版本的更新",
- "View changelog" : "檢視版本更新紀錄",
+ "Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store." : "無法連線至應用程式商店,或是應用程式商店回傳無任何更新。請手動搜尋更新或確定您的伺服器的網際網路連線正常,並可連線至應用程式商店。",
+ "<strong>All</strong> apps have a compatible version for this Nextcloud version available." : "<strong>所有</strong>應用程式都有可用於此 Nextcloud 版本的相容版本。",
+ "_<strong>%n</strong> app has no compatible version for this Nextcloud version available._::_<strong>%n</strong> apps have no compatible version for this Nextcloud version available._" : ["<strong>%n</strong> 個應用程式沒有與此 Nextcloud 版本相容的版本。"],
"Enterprise" : "企業",
"For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package." : "企業用。一律提供最新的修補程式等級,但不會立刻更新到下一個主要版本。一旦 Nextcloud GmbH 完成對大規模與關鍵任務部署的額外強化與測試,才會進行更新。此頻道僅供客戶使用,並提供 Nextcloud Enterprise 軟體包。",
"Stable" : "穩定",
"The most recent stable version. It is suited for regular use and will always update to the latest major version." : "最新的穩定版本。適於一般使用,一律更新到最新主要版本。",
- "Beta" : "Beta 測試版",
- "A pre-release version only for testing new features, not for production environments." : "釋出前版本,僅供測試新功能使用,不適用於生產環境。",
- "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> 應用程式沒有此版本的更新"],
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "請注意,新版本釋出後,需要過一段時間才會在此顯示通知。隨著時間推進,我們為用戶推出了新的版本,有時候會在發現問題時跳過前一個版本更新。"
+ "Beta" : "測試版",
+ "A pre-release version only for testing new features, not for production environments." : "發行前版本,僅供測試新功能使用,不適用於生產環境。",
+ "Update" : "更新",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "您執行的版本已不再維護。請盡快更新到支援中的版本。",
+ "Apps missing compatible version" : "應用程式缺少相容的版本",
+ "View in store" : "在商店中檢視",
+ "Apps with compatible version" : "有相容版本的應用程式",
+ "Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!" : "請注意,不建議超過 100 個帳號的站台使用網頁更新程式!請改用命令列更新程式!",
+ "Open updater" : "開啟更新程式",
+ "Download now" : "立刻下載",
+ "Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update." : "網頁更新程式已停用。請使用命令列更新程式或適合您安裝方式的適當更新機制(例如 Docker pull)進行更新。",
+ "What's new?" : "有什麼新鮮事?",
+ "View changelog" : "檢視版本更新紀錄",
+ "The update check is not yet finished. Please refresh the page." : "更新檢查未完成。請重新整理此頁面。",
+ "Your version is up to date." : "您的版本為最新狀態。",
+ "A non-default update server is in use to be checked for updates:" : "使用非預設的更新伺服器檢查更新:",
+ "Update channel" : "更新頻道",
+ "Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "更換更新頻道也會影響應用程式管理頁面。舉例來說,切換到測試版頻道後,將會在應用程式管理頁面中向您提供測試版應用程式更新。",
+ "Current update channel:" : "目前的更新頻道:",
+ "You can always update to a newer version. But you can never downgrade to a more stable version." : "您永遠都可以更新到較新的版本。但您無法降級到較穩定的版本。",
+ "Notify members of the following groups about available updates:" : "有可用更新時通知這些群組的成員:",
+ "No groups" : "無群組",
+ "Only notifications for app updates are available." : "僅有應用程式更新的通知可用。",
+ "The selected update channel makes dedicated notifications for the server obsolete." : "選定的更新通道將汰換伺服器專用的通知。",
+ "The selected update channel does not support updates of the server." : "選定的更新頻道不支援伺服器更新。",
+ "Changelog for app {app}" : "應用程式 {app} 的變更紀錄",
+ "What's new in {app} version {version}" : "{app} 版本 {version} 中有什麼新功能",
+ "{version} is available. Get more information on how to update." : "{version} 發行了。取得更多關於如何更新的資訊。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/updatenotification/lib/AppInfo/Application.php b/apps/updatenotification/lib/AppInfo/Application.php
index 54d6444236a..2a1678da5db 100644
--- a/apps/updatenotification/lib/AppInfo/Application.php
+++ b/apps/updatenotification/lib/AppInfo/Application.php
@@ -3,91 +3,78 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2018, Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-
namespace OCA\UpdateNotification\AppInfo;
+use OCA\UpdateNotification\Listener\AppUpdateEventListener;
+use OCA\UpdateNotification\Listener\BeforeTemplateRenderedEventListener;
+use OCA\UpdateNotification\Notification\AppUpdateNotifier;
use OCA\UpdateNotification\Notification\Notifier;
use OCA\UpdateNotification\UpdateChecker;
+use OCP\App\Events\AppUpdateEvent;
use OCP\App\IAppManager;
use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
-use OCP\AppFramework\IAppContainer;
-use OCP\AppFramework\QueryException;
+use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
use OCP\IConfig;
use OCP\IGroupManager;
-use OCP\ILogger;
use OCP\IUser;
use OCP\IUserSession;
-use OCP\Notification\IManager as INotificationManager;
use OCP\Util;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\ContainerInterface;
+use Psr\Log\LoggerInterface;
class Application extends App implements IBootstrap {
+ public const APP_NAME = 'updatenotification';
+
public function __construct() {
- parent::__construct('updatenotification', []);
+ parent::__construct(self::APP_NAME, []);
}
public function register(IRegistrationContext $context): void {
+ $context->registerNotifierService(Notifier::class);
+ $context->registerNotifierService(AppUpdateNotifier::class);
+
+ $context->registerEventListener(AppUpdateEvent::class, AppUpdateEventListener::class);
+ $context->registerEventListener(BeforeTemplateRenderedEvent::class, BeforeTemplateRenderedEventListener::class);
}
public function boot(IBootContext $context): void {
$context->injectFn(function (IConfig $config,
- INotificationManager $notificationsManager,
- IUserSession $userSession,
- IAppManager $appManager,
- IGroupManager $groupManager,
- IAppContainer $appContainer,
- ILogger $logger) {
+ IUserSession $userSession,
+ IAppManager $appManager,
+ IGroupManager $groupManager,
+ ContainerInterface $container,
+ LoggerInterface $logger,
+ ): void {
if ($config->getSystemValue('updatechecker', true) !== true) {
// Updater check is disabled
return;
}
- // Always register the notifier, so background jobs (without a user) can send push notifications
- $notificationsManager->registerNotifierService(Notifier::class);
-
$user = $userSession->getUser();
if (!$user instanceof IUser) {
// Nothing to do for guests
return;
}
- if (!$appManager->isEnabledForUser('notifications') &&
- $groupManager->isAdmin($user->getUID())) {
+ if (!$appManager->isEnabledForUser('notifications')
+ && $groupManager->isAdmin($user->getUID())) {
try {
- $updateChecker = $appContainer->get(UpdateChecker::class);
- } catch (QueryException $e) {
- $logger->logException($e);
+ $updateChecker = $container->get(UpdateChecker::class);
+ } catch (ContainerExceptionInterface $e) {
+ $logger->error($e->getMessage(), ['exception' => $e]);
return;
}
if ($updateChecker->getUpdateState() !== []) {
- Util::addScript('updatenotification', 'legacy-notification');
- \OC_Hook::connect('\OCP\Config', 'js', $updateChecker, 'populateJavaScriptVariables');
+ Util::addScript(self::APP_NAME, 'update-notification-legacy');
+ $updateChecker->setInitialState();
}
}
});
diff --git a/apps/updatenotification/lib/BackgroundJob/AppUpdatedNotifications.php b/apps/updatenotification/lib/BackgroundJob/AppUpdatedNotifications.php
new file mode 100644
index 00000000000..049390546ed
--- /dev/null
+++ b/apps/updatenotification/lib/BackgroundJob/AppUpdatedNotifications.php
@@ -0,0 +1,109 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\UpdateNotification\BackgroundJob;
+
+use OCA\UpdateNotification\AppInfo\Application;
+use OCA\UpdateNotification\Manager;
+use OCP\App\IAppManager;
+use OCP\AppFramework\Services\IAppConfig;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\BackgroundJob\QueuedJob;
+use OCP\IConfig;
+use OCP\IUser;
+use OCP\IUserManager;
+use OCP\Notification\IManager;
+use OCP\Notification\INotification;
+use Psr\Log\LoggerInterface;
+
+class AppUpdatedNotifications extends QueuedJob {
+ public function __construct(
+ ITimeFactory $time,
+ private IConfig $config,
+ private IAppConfig $appConfig,
+ private IManager $notificationManager,
+ private IUserManager $userManager,
+ private IAppManager $appManager,
+ private LoggerInterface $logger,
+ private Manager $manager,
+ ) {
+ parent::__construct($time);
+ }
+
+ /**
+ * @param array{appId: string, timestamp: int} $argument
+ */
+ protected function run(mixed $argument): void {
+ $appId = $argument['appId'];
+ $timestamp = $argument['timestamp'];
+ $dateTime = $this->time->getDateTime();
+ $dateTime->setTimestamp($timestamp);
+
+ $this->logger->debug(
+ 'Running background job to create app update notifications for "' . $appId . '"',
+ [
+ 'app' => Application::APP_NAME,
+ ],
+ );
+
+ if ($this->manager->getChangelogFile($appId, 'en') === null) {
+ $this->logger->debug('Skipping app updated notification - no changelog provided');
+ return;
+ }
+
+ $this->stopPreviousNotifications($appId);
+
+ // Create new notifications
+ $notification = $this->notificationManager->createNotification();
+ $notification->setApp(Application::APP_NAME)
+ ->setDateTime($dateTime)
+ ->setSubject('app_updated', [$appId])
+ ->setObject('app_updated', $appId);
+
+ $this->notifyUsers($appId, $notification);
+ }
+
+ /**
+ * Stop all previous notifications users might not have dismissed until now
+ * @param string $appId The app to stop update notifications for
+ */
+ private function stopPreviousNotifications(string $appId): void {
+ $notification = $this->notificationManager->createNotification();
+ $notification->setApp(Application::APP_NAME)
+ ->setObject('app_updated', $appId);
+ $this->notificationManager->markProcessed($notification);
+ }
+
+ /**
+ * Notify all users for which the updated app is enabled
+ */
+ private function notifyUsers(string $appId, INotification $notification): void {
+ $guestsEnabled = $this->appConfig->getAppValueBool('app_updated.notify_guests', false) && class_exists('\OCA\Guests\UserBackend');
+
+ $isDefer = $this->notificationManager->defer();
+
+ // Notify all seen users about the app update
+ $this->userManager->callForSeenUsers(function (IUser $user) use ($guestsEnabled, $appId, $notification): void {
+ if (!$guestsEnabled && ($user->getBackendClassName() === '\OCA\Guests\UserBackend')) {
+ return;
+ }
+
+ if (!$this->appManager->isEnabledForUser($appId, $user)) {
+ return;
+ }
+
+ $notification->setUser($user->getUID());
+ $this->notificationManager->notify($notification);
+ });
+
+ // If we enabled the defer we call the flush
+ if ($isDefer) {
+ $this->notificationManager->flush();
+ }
+ }
+}
diff --git a/apps/updatenotification/lib/BackgroundJob/ResetToken.php b/apps/updatenotification/lib/BackgroundJob/ResetToken.php
new file mode 100644
index 00000000000..35543ce5247
--- /dev/null
+++ b/apps/updatenotification/lib/BackgroundJob/ResetToken.php
@@ -0,0 +1,49 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCA\UpdateNotification\BackgroundJob;
+
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\BackgroundJob\TimedJob;
+use OCP\IAppConfig;
+use OCP\IConfig;
+
+/**
+ * Deletes the updater secret after if it is older than 48h
+ */
+class ResetToken extends TimedJob {
+
+ /**
+ * @param IConfig $config
+ * @param ITimeFactory $timeFactory
+ */
+ public function __construct(
+ ITimeFactory $time,
+ private IConfig $config,
+ private IAppConfig $appConfig,
+ ) {
+ parent::__construct($time);
+ // Run all 10 minutes
+ parent::setInterval(60 * 10);
+ }
+
+ /**
+ * @param $argument
+ */
+ protected function run($argument) {
+ if ($this->config->getSystemValueBool('config_is_read_only')) {
+ return;
+ }
+
+ $secretCreated = $this->appConfig->getValueInt('core', 'updater.secret.created', $this->time->getTime());
+ // Delete old tokens after 2 days
+ if ($secretCreated >= 172800) {
+ $this->config->deleteSystemValue('updater.secret');
+ }
+ }
+}
diff --git a/apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php b/apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php
new file mode 100644
index 00000000000..8879bb0c223
--- /dev/null
+++ b/apps/updatenotification/lib/BackgroundJob/UpdateAvailableNotifications.php
@@ -0,0 +1,244 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCA\UpdateNotification\BackgroundJob;
+
+use OC\Installer;
+use OC\Updater\VersionCheck;
+use OCA\UpdateNotification\AppInfo\Application;
+use OCP\App\IAppManager;
+use OCP\AppFramework\Services\IAppConfig;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\BackgroundJob\TimedJob;
+use OCP\IConfig;
+use OCP\IGroup;
+use OCP\IGroupManager;
+use OCP\Notification\IManager;
+use OCP\ServerVersion;
+
+class UpdateAvailableNotifications extends TimedJob {
+
+ /**
+ * Numbers of failed updater connection to report error as notification.
+ * @var list<int>
+ */
+ protected const CONNECTION_NOTIFICATIONS = [3, 7, 14, 30];
+
+ /** @var ?string[] */
+ protected $users = null;
+
+ public function __construct(
+ ITimeFactory $timeFactory,
+ protected ServerVersion $serverVersion,
+ protected IConfig $config,
+ protected IAppConfig $appConfig,
+ protected IManager $notificationManager,
+ protected IGroupManager $groupManager,
+ protected IAppManager $appManager,
+ protected Installer $installer,
+ protected VersionCheck $versionCheck,
+ ) {
+ parent::__construct($timeFactory);
+ // Run once a day
+ $this->setInterval(60 * 60 * 24);
+ $this->setTimeSensitivity(self::TIME_INSENSITIVE);
+ }
+
+ protected function run($argument) {
+ // Do not check for updates if not connected to the internet
+ if (!$this->config->getSystemValueBool('has_internet_connection', true)) {
+ return;
+ }
+
+ if (\OC::$CLI && !$this->config->getSystemValueBool('debug', false)) {
+ try {
+ // Jitter the pinging of the updater server and the appstore a bit.
+ // Otherwise all Nextcloud installations are pinging the servers
+ // in one of 288
+ sleep(random_int(1, 180));
+ } catch (\Exception $e) {
+ }
+ }
+
+ $this->checkCoreUpdate();
+ $this->checkAppUpdates();
+ }
+
+ /**
+ * Check for Nextcloud server update
+ */
+ protected function checkCoreUpdate(): void {
+ if (!$this->config->getSystemValueBool('updatechecker', true)) {
+ // update checker is disabled so no core update check!
+ return;
+ }
+
+ if (\in_array($this->serverVersion->getChannel(), ['daily', 'git'], true)) {
+ // "These aren't the update channels you're looking for." - Ben Obi-Wan Kenobi
+ return;
+ }
+
+ $status = $this->versionCheck->check();
+ if ($status === false) {
+ $errors = 1 + $this->appConfig->getAppValueInt('update_check_errors', 0);
+ $this->appConfig->setAppValueInt('update_check_errors', $errors);
+
+ if (\in_array($errors, self::CONNECTION_NOTIFICATIONS, true)) {
+ $this->sendErrorNotifications($errors);
+ }
+ } elseif (\is_array($status)) {
+ $this->appConfig->setAppValueInt('update_check_errors', 0);
+ $this->clearErrorNotifications();
+
+ if (isset($status['version'])) {
+ $this->createNotifications('core', $status['version'], $status['versionstring']);
+ }
+ }
+ }
+
+ /**
+ * Send a message to the admin when the update server could not be reached
+ * @param int $numDays
+ */
+ protected function sendErrorNotifications($numDays): void {
+ $this->clearErrorNotifications();
+
+ $notification = $this->notificationManager->createNotification();
+ try {
+ $notification->setApp(Application::APP_NAME)
+ ->setDateTime(new \DateTime())
+ ->setObject(Application::APP_NAME, 'error')
+ ->setSubject('connection_error', ['days' => $numDays]);
+
+ foreach ($this->getUsersToNotify() as $uid) {
+ $notification->setUser($uid);
+ $this->notificationManager->notify($notification);
+ }
+ } catch (\InvalidArgumentException $e) {
+ return;
+ }
+ }
+
+ /**
+ * Remove error notifications again
+ */
+ protected function clearErrorNotifications(): void {
+ $notification = $this->notificationManager->createNotification();
+ try {
+ $notification->setApp(Application::APP_NAME)
+ ->setSubject('connection_error')
+ ->setObject(Application::APP_NAME, 'error');
+ } catch (\InvalidArgumentException $e) {
+ return;
+ }
+ $this->notificationManager->markProcessed($notification);
+ }
+
+ /**
+ * Check all installed apps for updates
+ */
+ protected function checkAppUpdates(): void {
+ $apps = $this->appManager->getEnabledApps();
+ foreach ($apps as $app) {
+ $update = $this->isUpdateAvailable($app);
+ if ($update !== false) {
+ $this->createNotifications($app, $update);
+ }
+ }
+ }
+
+ /**
+ * Create notifications for this app version
+ *
+ * @param string $app
+ * @param string $version
+ * @param string $visibleVersion
+ */
+ protected function createNotifications($app, $version, $visibleVersion = ''): void {
+ $lastNotification = $this->appConfig->getAppValueString($app, '');
+ if ($lastNotification === $version) {
+ // We already notified about this update
+ return;
+ }
+
+ if ($lastNotification !== '') {
+ // Delete old updates
+ $this->deleteOutdatedNotifications($app, $lastNotification);
+ }
+
+ $notification = $this->notificationManager->createNotification();
+ try {
+ $notification->setApp(Application::APP_NAME)
+ ->setDateTime(new \DateTime())
+ ->setObject($app, $version);
+
+ if ($visibleVersion !== '') {
+ $notification->setSubject('update_available', ['version' => $visibleVersion]);
+ } else {
+ $notification->setSubject('update_available');
+ }
+
+ foreach ($this->getUsersToNotify() as $uid) {
+ $notification->setUser($uid);
+ $this->notificationManager->notify($notification);
+ }
+ } catch (\InvalidArgumentException $e) {
+ return;
+ }
+
+ $this->appConfig->setAppValueString($app, $version);
+ }
+
+ /**
+ * @return string[]
+ */
+ protected function getUsersToNotify(): array {
+ if ($this->users !== null) {
+ return $this->users;
+ }
+
+ $notifyGroups = $this->appConfig->getAppValueArray('notify_groups', ['admin']);
+ $this->users = [];
+ foreach ($notifyGroups as $group) {
+ $groupToNotify = $this->groupManager->get($group);
+ if ($groupToNotify instanceof IGroup) {
+ foreach ($groupToNotify->getUsers() as $user) {
+ $this->users[] = $user->getUID();
+ }
+ }
+ }
+
+ $this->users = array_values(array_unique($this->users));
+ return $this->users;
+ }
+
+ /**
+ * Delete notifications for old updates
+ *
+ * @param string $app
+ * @param string $version
+ */
+ protected function deleteOutdatedNotifications($app, $version): void {
+ $notification = $this->notificationManager->createNotification();
+ try {
+ $notification->setApp(Application::APP_NAME)
+ ->setObject($app, $version);
+ } catch (\InvalidArgumentException) {
+ return;
+ }
+ $this->notificationManager->markProcessed($notification);
+ }
+
+ /**
+ * @param string $app
+ * @return string|false
+ */
+ protected function isUpdateAvailable($app) {
+ return $this->installer->isUpdateAvailable($app);
+ }
+}
diff --git a/apps/updatenotification/lib/Command/Check.php b/apps/updatenotification/lib/Command/Check.php
index 351350ba3ee..d93e4935012 100644
--- a/apps/updatenotification/lib/Command/Check.php
+++ b/apps/updatenotification/lib/Command/Check.php
@@ -1,28 +1,11 @@
<?php
+
+declare(strict_types=1);
+
/**
- * @copyright Copyright (c) 2018, Tobia De Koninck (tobia@ledfan.be)
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Tobia De Koninck <LEDfan@users.noreply.github.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-
namespace OCA\UpdateNotification\Command;
use OC\App\AppManager;
@@ -34,29 +17,15 @@ use Symfony\Component\Console\Output\OutputInterface;
class Check extends Command {
- /**
- * @var Installer $installer
- */
- private $installer;
-
- /**
- * @var AppManager $appManager
- */
- private $appManager;
-
- /**
- * @var UpdateChecker $updateChecker
- */
- private $updateChecker;
-
- public function __construct(AppManager $appManager, UpdateChecker $updateChecker, Installer $installer) {
+ public function __construct(
+ private AppManager $appManager,
+ private UpdateChecker $updateChecker,
+ private Installer $installer,
+ ) {
parent::__construct();
- $this->installer = $installer;
- $this->appManager = $appManager;
- $this->updateChecker = $updateChecker;
}
- protected function configure() {
+ protected function configure(): void {
$this
->setName('update:check')
->setDescription('Check for server and app updates')
@@ -69,13 +38,13 @@ class Check extends Command {
// Server
$r = $this->updateChecker->getUpdateState();
if (isset($r['updateAvailable']) && $r['updateAvailable']) {
- $output->writeln($r['updateVersionString'] . ' is available. Get more information on how to update at '. $r['updateLink'] . '.');
+ $output->writeln($r['updateVersionString'] . ' is available. Get more information on how to update at ' . $r['updateLink'] . '.');
$updatesAvailableCount += 1;
}
// Apps
- $apps = $this->appManager->getInstalledApps();
+ $apps = $this->appManager->getEnabledApps();
foreach ($apps as $app) {
$update = $this->installer->isUpdateAvailable($app);
if ($update !== false) {
diff --git a/apps/updatenotification/lib/Controller/APIController.php b/apps/updatenotification/lib/Controller/APIController.php
index e2c720cdc09..4360d814dd2 100644
--- a/apps/updatenotification/lib/Controller/APIController.php
+++ b/apps/updatenotification/lib/Controller/APIController.php
@@ -3,31 +3,14 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-
namespace OCA\UpdateNotification\Controller;
use OC\App\AppStore\Fetcher\AppFetcher;
+use OCA\UpdateNotification\Manager;
+use OCA\UpdateNotification\ResponseDefinitions;
use OCP\App\AppPathNotFoundException;
use OCP\App\IAppManager;
use OCP\AppFramework\Http;
@@ -35,40 +18,53 @@ use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCSController;
use OCP\IConfig;
use OCP\IRequest;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
+/**
+ * @psalm-import-type UpdateNotificationApp from ResponseDefinitions
+ */
class APIController extends OCSController {
- /** @var IConfig */
- protected $config;
-
- /** @var IAppManager */
- protected $appManager;
-
- /** @var AppFetcher */
- protected $appFetcher;
+ protected ?string $language = null;
/**
- * @param string $appName
- * @param IRequest $request
- * @param IConfig $config
- * @param IAppManager $appManager
- * @param AppFetcher $appFetcher
+ * List of apps that were in the appstore but are now shipped and don't have
+ * a compatible update available.
+ *
+ * @var array<string, int>
*/
- public function __construct($appName,
- IRequest $request,
- IConfig $config,
- IAppManager $appManager,
- AppFetcher $appFetcher) {
+ protected array $appsShippedInFutureVersion = [
+ 'bruteforcesettings' => 25,
+ 'suspicious_login' => 25,
+ 'twofactor_totp' => 25,
+ 'files_downloadlimit' => 29,
+ 'twofactor_nextcloud_notification' => 30,
+ 'app_api' => 30,
+ ];
+
+ public function __construct(
+ string $appName,
+ IRequest $request,
+ protected IConfig $config,
+ protected IAppManager $appManager,
+ protected AppFetcher $appFetcher,
+ protected IFactory $l10nFactory,
+ protected IUserSession $userSession,
+ protected Manager $manager,
+ ) {
parent::__construct($appName, $request);
-
- $this->config = $config;
- $this->appManager = $appManager;
- $this->appFetcher = $appFetcher;
}
/**
- * @param string $newVersion
- * @return DataResponse
+ * List available updates for apps
+ *
+ * @param string $newVersion Server version to check updates for
+ *
+ * @return DataResponse<Http::STATUS_OK, array{missing: list<UpdateNotificationApp>, available: list<UpdateNotificationApp>}, array{}>|DataResponse<Http::STATUS_NOT_FOUND, array{appstore_disabled: bool, already_on_latest?: bool}, array{}>
+ *
+ * 200: Apps returned
+ * 404: New versions not found
*/
public function getAppList(string $newVersion): DataResponse {
if (!$this->config->getSystemValue('appstoreenabled', true)) {
@@ -78,14 +74,14 @@ class APIController extends OCSController {
}
// Get list of installed custom apps
- $installedApps = $this->appManager->getInstalledApps();
+ $installedApps = $this->appManager->getEnabledApps();
$installedApps = array_filter($installedApps, function ($app) {
try {
$this->appManager->getAppPath($app);
} catch (AppPathNotFoundException $e) {
return false;
}
- return !$this->appManager->isShipped($app);
+ return !$this->appManager->isShipped($app) && !isset($this->appsShippedInFutureVersion[$app]);
});
if (empty($installedApps)) {
@@ -98,7 +94,7 @@ class APIController extends OCSController {
$this->appFetcher->setVersion($newVersion, 'future-apps.json', false);
// Apps available on the app store for that version
- $availableApps = array_map(function (array $app) {
+ $availableApps = array_map(static function (array $app): string {
return $app['id'];
}, $this->appFetcher->get());
@@ -109,6 +105,15 @@ class APIController extends OCSController {
], Http::STATUS_NOT_FOUND);
}
+ // Ignore apps that are deployed from git
+ $installedApps = array_filter($installedApps, function (string $appId) {
+ try {
+ return !file_exists($this->appManager->getAppPath($appId) . '/.git');
+ } catch (AppPathNotFoundException $e) {
+ return true;
+ }
+ });
+
$missing = array_diff($installedApps, $availableApps);
$missing = array_map([$this, 'getAppDetails'], $missing);
sort($missing);
@@ -127,13 +132,66 @@ class APIController extends OCSController {
* Get translated app name
*
* @param string $appId
- * @return string[]
+ * @return UpdateNotificationApp
*/
- protected function getAppDetails($appId): array {
- $app = $this->appManager->getAppInfo($appId);
+ protected function getAppDetails(string $appId): array {
+ $app = $this->appManager->getAppInfo($appId, false, $this->language);
+ $name = $app['name'] ?? $appId;
return [
'appId' => $appId,
- 'appName' => $app['name'] ?? $appId,
+ 'appName' => $name,
];
}
+
+ protected function getLanguage(): string {
+ if ($this->language === null) {
+ $this->language = $this->l10nFactory->getUserLanguage($this->userSession->getUser());
+ }
+ return $this->language;
+ }
+
+ /**
+ * Get changelog entry for an app
+ *
+ * @param string $appId App to search changelog entry for
+ * @param string|null $version The version to search the changelog entry for (defaults to the latest installed)
+ *
+ * @return DataResponse<Http::STATUS_OK, array{appName: string, content: string, version: string}, array{}>|DataResponse<Http::STATUS_NOT_FOUND, array{}, array{}>|DataResponse<Http::STATUS_BAD_REQUEST, array{}, array{}>
+ *
+ * 200: Changelog entry returned
+ * 400: The `version` parameter is not a valid version format
+ * 404: No changelog found
+ */
+ public function getAppChangelogEntry(string $appId, ?string $version = null): DataResponse {
+ $version = $version ?? $this->appManager->getAppVersion($appId);
+ // handle pre-release versions
+ $matches = [];
+ $result = preg_match('/^(\d+\.\d+(\.\d+)?)/', $version, $matches);
+ if ($result === false || $result === 0) {
+ return new DataResponse([], Http::STATUS_BAD_REQUEST);
+ }
+ $shortVersion = $matches[0];
+
+ $changes = $this->manager->getChangelog($appId, $shortVersion);
+
+ if ($changes === null) {
+ return new DataResponse([], Http::STATUS_NOT_FOUND);
+ }
+
+ // Remove version headline
+ /** @var string[] */
+ $changes = explode("\n", $changes, 2);
+ $changes = trim(end($changes));
+
+ // Get app info for localized app name
+ $info = $this->appManager->getAppInfo($appId) ?? [];
+ /** @var string */
+ $appName = $info['name'] ?? $appId;
+
+ return new DataResponse([
+ 'appName' => $appName,
+ 'content' => $changes,
+ 'version' => $version,
+ ]);
+ }
}
diff --git a/apps/updatenotification/lib/Controller/AdminController.php b/apps/updatenotification/lib/Controller/AdminController.php
index 907d75aed6a..26745948890 100644
--- a/apps/updatenotification/lib/Controller/AdminController.php
+++ b/apps/updatenotification/lib/Controller/AdminController.php
@@ -3,35 +3,19 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\UpdateNotification\Controller;
-use OCA\UpdateNotification\ResetTokenBackgroundJob;
+use OCA\UpdateNotification\BackgroundJob\ResetToken;
use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\IJobList;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
@@ -39,39 +23,22 @@ use OCP\Security\ISecureRandom;
use OCP\Util;
class AdminController extends Controller {
- /** @var IJobList */
- private $jobList;
- /** @var ISecureRandom */
- private $secureRandom;
- /** @var IConfig */
- private $config;
- /** @var ITimeFactory */
- private $timeFactory;
- /** @var IL10N */
- private $l10n;
- /**
- * @param string $appName
- * @param IRequest $request
- * @param IJobList $jobList
- * @param ISecureRandom $secureRandom
- * @param IConfig $config
- * @param ITimeFactory $timeFactory
- * @param IL10N $l10n
- */
- public function __construct($appName,
- IRequest $request,
- IJobList $jobList,
- ISecureRandom $secureRandom,
- IConfig $config,
- ITimeFactory $timeFactory,
- IL10N $l10n) {
+ public function __construct(
+ string $appName,
+ IRequest $request,
+ private IJobList $jobList,
+ private ISecureRandom $secureRandom,
+ private IConfig $config,
+ private IAppConfig $appConfig,
+ private ITimeFactory $timeFactory,
+ private IL10N $l10n,
+ ) {
parent::__construct($appName, $request);
- $this->jobList = $jobList;
- $this->secureRandom = $secureRandom;
- $this->config = $config;
- $this->timeFactory = $timeFactory;
- $this->l10n = $l10n;
+ }
+
+ private function isUpdaterEnabled(): bool {
+ return !$this->config->getSystemValueBool('upgrade.disable-web');
}
/**
@@ -80,7 +47,7 @@ class AdminController extends Controller {
*/
public function setChannel(string $channel): DataResponse {
Util::setChannel($channel);
- $this->config->setAppValue('core', 'lastupdatedat', 0);
+ $this->appConfig->setValueInt('core', 'lastupdatedat', 0);
return new DataResponse(['status' => 'success', 'data' => ['message' => $this->l10n->t('Channel updated')]]);
}
@@ -88,9 +55,13 @@ class AdminController extends Controller {
* @return DataResponse
*/
public function createCredentials(): DataResponse {
+ if (!$this->isUpdaterEnabled()) {
+ return new DataResponse(['status' => 'error', 'message' => $this->l10n->t('Web updater is disabled')], Http::STATUS_FORBIDDEN);
+ }
+
// Create a new job and store the creation date
- $this->jobList->add(ResetTokenBackgroundJob::class);
- $this->config->setAppValue('core', 'updater.secret.created', $this->timeFactory->getTime());
+ $this->jobList->add(ResetToken::class);
+ $this->appConfig->setValueInt('core', 'updater.secret.created', $this->timeFactory->getTime());
// Create a new token
$newToken = $this->secureRandom->generate(64);
diff --git a/apps/updatenotification/lib/Controller/ChangelogController.php b/apps/updatenotification/lib/Controller/ChangelogController.php
new file mode 100644
index 00000000000..a274ed3d2b2
--- /dev/null
+++ b/apps/updatenotification/lib/Controller/ChangelogController.php
@@ -0,0 +1,62 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\UpdateNotification\Controller;
+
+use OCA\UpdateNotification\Manager;
+use OCP\App\IAppManager;
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\Attribute\NoAdminRequired;
+use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
+use OCP\AppFramework\Http\Attribute\OpenAPI;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Services\IInitialState;
+use OCP\IRequest;
+use OCP\Util;
+
+#[OpenAPI(scope: OpenAPI::SCOPE_IGNORE)]
+class ChangelogController extends Controller {
+
+ public function __construct(
+ string $appName,
+ IRequest $request,
+ private Manager $manager,
+ private IAppManager $appManager,
+ private IInitialState $initialState,
+ ) {
+ parent::__construct($appName, $request);
+ }
+
+ /**
+ * This page is only used for clients not support showing the app changelog feature in-app and thus need to show it on a dedicated page.
+ * @param string $app App to show the changelog for
+ * @param string|null $version Version entry to show (defaults to latest installed)
+ */
+ #[NoAdminRequired]
+ #[NoCSRFRequired]
+ public function showChangelog(string $app, ?string $version = null): TemplateResponse {
+ $version = $version ?? $this->appManager->getAppVersion($app);
+ $appInfo = $this->appManager->getAppInfo($app) ?? [];
+ $appName = $appInfo['name'] ?? $app;
+
+ $changes = $this->manager->getChangelog($app, $version) ?? '';
+ // Remove version headline
+ /** @var string[] */
+ $changes = explode("\n", $changes, 2);
+ $changes = trim(end($changes));
+
+ $this->initialState->provideInitialState('changelog', [
+ 'appName' => $appName,
+ 'appVersion' => $version,
+ 'text' => $changes,
+ ]);
+
+ Util::addScript($this->appName, 'view-changelog-page');
+ return new TemplateResponse($this->appName, 'empty');
+ }
+}
diff --git a/apps/updatenotification/lib/Listener/AppUpdateEventListener.php b/apps/updatenotification/lib/Listener/AppUpdateEventListener.php
new file mode 100644
index 00000000000..49a2506d913
--- /dev/null
+++ b/apps/updatenotification/lib/Listener/AppUpdateEventListener.php
@@ -0,0 +1,61 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\UpdateNotification\Listener;
+
+use OCA\UpdateNotification\AppInfo\Application;
+use OCA\UpdateNotification\BackgroundJob\AppUpdatedNotifications;
+use OCP\App\Events\AppUpdateEvent;
+use OCP\BackgroundJob\IJobList;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
+use OCP\IAppConfig;
+use Psr\Log\LoggerInterface;
+
+/** @template-implements IEventListener<AppUpdateEvent> */
+class AppUpdateEventListener implements IEventListener {
+
+ public function __construct(
+ private IJobList $jobList,
+ private LoggerInterface $logger,
+ private IAppConfig $appConfig,
+ ) {
+ }
+
+ /**
+ * @param AppUpdateEvent $event
+ */
+ public function handle(Event $event): void {
+ if (!($event instanceof AppUpdateEvent)) {
+ return;
+ }
+
+ if (!$this->appConfig->getValueBool(Application::APP_NAME, 'app_updated.enabled', true)) {
+ return;
+ }
+
+ foreach ($this->jobList->getJobsIterator(AppUpdatedNotifications::class, null, 0) as $job) {
+ // Remove waiting notification jobs for this app
+ if ($job->getArgument()['appId'] === $event->getAppId()) {
+ $this->jobList->remove($job);
+ }
+ }
+
+ $this->jobList->add(AppUpdatedNotifications::class, [
+ 'appId' => $event->getAppId(),
+ 'timestamp' => time(),
+ ]);
+
+ $this->logger->debug(
+ 'Scheduled app update notification for "' . $event->getAppId() . '"',
+ [
+ 'app' => Application::APP_NAME,
+ ],
+ );
+ }
+}
diff --git a/apps/updatenotification/lib/Listener/BeforeTemplateRenderedEventListener.php b/apps/updatenotification/lib/Listener/BeforeTemplateRenderedEventListener.php
new file mode 100644
index 00000000000..974734a76f4
--- /dev/null
+++ b/apps/updatenotification/lib/Listener/BeforeTemplateRenderedEventListener.php
@@ -0,0 +1,54 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\UpdateNotification\Listener;
+
+use OCA\UpdateNotification\AppInfo\Application;
+use OCP\App\IAppManager;
+use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
+use OCP\IAppConfig;
+use OCP\Util;
+use Psr\Log\LoggerInterface;
+
+/** @template-implements IEventListener<BeforeTemplateRenderedEvent> */
+class BeforeTemplateRenderedEventListener implements IEventListener {
+
+ public function __construct(
+ private IAppManager $appManager,
+ private LoggerInterface $logger,
+ private IAppConfig $appConfig,
+ ) {
+ }
+
+ /**
+ * @param BeforeTemplateRenderedEvent $event
+ */
+ public function handle(Event $event): void {
+ if (!($event instanceof BeforeTemplateRenderedEvent)) {
+ return;
+ }
+
+ if (!$this->appConfig->getValueBool(Application::APP_NAME, 'app_updated.enabled', true)) {
+ return;
+ }
+
+ // Only handle logged in users
+ if (!$event->isLoggedIn()) {
+ return;
+ }
+
+ // Ignore when notifications are disabled
+ if (!$this->appManager->isEnabledForUser('notifications')) {
+ return;
+ }
+
+ Util::addInitScript(Application::APP_NAME, 'init');
+ }
+}
diff --git a/apps/updatenotification/lib/Manager.php b/apps/updatenotification/lib/Manager.php
new file mode 100644
index 00000000000..ebc1c83a9b4
--- /dev/null
+++ b/apps/updatenotification/lib/Manager.php
@@ -0,0 +1,114 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\UpdateNotification;
+
+use OCP\App\IAppManager;
+use OCP\IUser;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
+use Psr\Log\LoggerInterface;
+
+class Manager {
+
+ private ?IUser $currentUser;
+
+ public function __construct(
+ IUserSession $currentSession,
+ private IAppManager $appManager,
+ private IFactory $l10NFactory,
+ private LoggerInterface $logger,
+ ) {
+ $this->currentUser = $currentSession->getUser();
+ }
+
+ /**
+ * Get the changelog entry for the given appId
+ * @param string $appId The app for which to query the entry
+ * @param string $version The version for which to query the changelog entry
+ * @param ?string $languageCode The language in which to query the changelog (defaults to current user language and fallsback to English)
+ * @return string|null Either the changelog entry or null if no changelog is found
+ */
+ public function getChangelog(string $appId, string $version, ?string $languageCode = null): ?string {
+ if ($languageCode === null) {
+ $languageCode = $this->l10NFactory->getUserLanguage($this->currentUser);
+ }
+
+ $path = $this->getChangelogFile($appId, $languageCode);
+ if ($path === null) {
+ $this->logger->debug('No changelog file found for app ' . $appId . ' and language code ' . $languageCode);
+ return null;
+ }
+
+ $changes = $this->retrieveChangelogEntry($path, $version);
+ return $changes;
+ }
+
+ /**
+ * Get the changelog file in the requested language or fallback to English
+ * @param string $appId The app to load the changelog for
+ * @param string $languageCode The language code to search
+ * @return string|null Either the file path or null if not found
+ */
+ public function getChangelogFile(string $appId, string $languageCode): ?string {
+ try {
+ $appPath = $this->appManager->getAppPath($appId);
+ $files = ["CHANGELOG.$languageCode.md", 'CHANGELOG.en.md'];
+ foreach ($files as $file) {
+ $path = $appPath . '/' . $file;
+ if (is_file($path)) {
+ return $path;
+ }
+ }
+ } catch (\Throwable $e) {
+ // ignore and return null below
+ }
+ return null;
+ }
+
+ /**
+ * Retrieve a log entry from the changelog
+ * @param string $path The path to the changelog file
+ * @param string $version The version to query (make sure to only pass in "{major}.{minor}(.{patch}" format)
+ */
+ protected function retrieveChangelogEntry(string $path, string $version): ?string {
+ $matches = [];
+ $content = file_get_contents($path);
+ if ($content === false) {
+ $this->logger->debug('Could not open changelog file', ['file-path' => $path]);
+ return null;
+ }
+
+ $result = preg_match_all('/^## (?:\[)?(?:v)?(\d+\.\d+(\.\d+)?)/m', $content, $matches, PREG_OFFSET_CAPTURE);
+ if ($result === false || $result === 0) {
+ $this->logger->debug('No entries in changelog found', ['file_path' => $path]);
+ return null;
+ }
+
+ // Get the key of the match that equals the requested version
+ $index = array_key_first(
+ // Get the array containing the match that equals the requested version, keys are preserved so: [1 => '1.2.4']
+ array_filter(
+ // This is the array of the versions found, like ['1.2.3', '1.2.4']
+ $matches[1],
+ // Callback to filter only version that matches the requested version
+ fn (array $match) => version_compare($match[0], $version, '=='),
+ )
+ );
+
+ if ($index === null) {
+ $this->logger->debug('No changelog entry for version ' . $version . ' found', ['file_path' => $path]);
+ return null;
+ }
+
+ $offsetChangelogEntry = $matches[0][$index][1];
+ // Length of the changelog entry (offset of next match - own offset) or null if the whole rest should be considered
+ $lengthChangelogEntry = $index < ($result - 1) ? ($matches[0][$index + 1][1] - $offsetChangelogEntry) : null;
+ return substr($content, $offsetChangelogEntry, $lengthChangelogEntry);
+ }
+}
diff --git a/apps/updatenotification/lib/Notification/AppUpdateNotifier.php b/apps/updatenotification/lib/Notification/AppUpdateNotifier.php
new file mode 100644
index 00000000000..353ca883aba
--- /dev/null
+++ b/apps/updatenotification/lib/Notification/AppUpdateNotifier.php
@@ -0,0 +1,104 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\UpdateNotification\Notification;
+
+use OCA\UpdateNotification\AppInfo\Application;
+use OCP\App\IAppManager;
+use OCP\IURLGenerator;
+use OCP\IUserManager;
+use OCP\L10N\IFactory;
+use OCP\Notification\AlreadyProcessedException;
+use OCP\Notification\IAction;
+use OCP\Notification\IManager as INotificationManager;
+use OCP\Notification\INotification;
+use OCP\Notification\INotifier;
+use OCP\Notification\UnknownNotificationException;
+use Psr\Log\LoggerInterface;
+
+class AppUpdateNotifier implements INotifier {
+
+ public function __construct(
+ private IFactory $l10nFactory,
+ private INotificationManager $notificationManager,
+ private IUserManager $userManager,
+ private IURLGenerator $urlGenerator,
+ private IAppManager $appManager,
+ private LoggerInterface $logger,
+ ) {
+ }
+
+ public function getID(): string {
+ return 'updatenotification_app_updated';
+ }
+
+ /**
+ * Human readable name describing the notifier
+ */
+ public function getName(): string {
+ return $this->l10nFactory->get(Application::APP_NAME)->t('App updated');
+ }
+
+ /**
+ * @param INotification $notification
+ * @param string $languageCode The code of the language that should be used to prepare the notification
+ * @return INotification
+ * @throws UnknownNotificationException When the notification was not prepared by a notifier
+ * @throws AlreadyProcessedException When the app is no longer known
+ */
+ public function prepare(INotification $notification, string $languageCode): INotification {
+ if ($notification->getApp() !== Application::APP_NAME) {
+ throw new UnknownNotificationException('Unknown app');
+ }
+
+ if ($notification->getSubject() !== 'app_updated') {
+ throw new UnknownNotificationException('Unknown subject');
+ }
+
+ $appId = $notification->getSubjectParameters()[0];
+ $appInfo = $this->appManager->getAppInfo($appId, lang:$languageCode);
+ if ($appInfo === null) {
+ throw new AlreadyProcessedException();
+ }
+
+ // Prepare translation factory for requested language
+ $l = $this->l10nFactory->get(Application::APP_NAME, $languageCode);
+
+ $icon = $this->appManager->getAppIcon($appId, true);
+ if ($icon === null) {
+ $icon = $this->urlGenerator->imagePath('core', 'actions/change.svg');
+ }
+
+ $action = $notification->createAction();
+ $action
+ ->setLabel($l->t('See what\'s new'))
+ ->setParsedLabel($l->t('See what\'s new'))
+ ->setLink($this->urlGenerator->linkToRouteAbsolute('updatenotification.Changelog.showChangelog', ['app' => $appId, 'version' => $this->appManager->getAppVersion($appId)]), IAction::TYPE_WEB);
+
+ $notification
+ ->setIcon($this->urlGenerator->getAbsoluteURL($icon))
+ ->addParsedAction($action)
+ ->setRichSubject(
+ $l->t('{app} updated to version {version}'),
+ [
+ 'app' => [
+ 'type' => 'app',
+ 'id' => $appId,
+ 'name' => $appInfo['name'],
+ ],
+ 'version' => [
+ 'type' => 'highlight',
+ 'id' => $appId,
+ 'name' => $appInfo['version'],
+ ],
+ ],
+ );
+
+ return $notification;
+ }
+}
diff --git a/apps/updatenotification/lib/Notification/BackgroundJob.php b/apps/updatenotification/lib/Notification/BackgroundJob.php
deleted file mode 100644
index a8473acf8ea..00000000000
--- a/apps/updatenotification/lib/Notification/BackgroundJob.php
+++ /dev/null
@@ -1,278 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\UpdateNotification\Notification;
-
-use OC\BackgroundJob\TimedJob;
-use OC\Installer;
-use OC\Updater\VersionCheck;
-use OCP\App\IAppManager;
-use OCP\Http\Client\IClientService;
-use OCP\IConfig;
-use OCP\IGroup;
-use OCP\IGroupManager;
-use OCP\Notification\IManager;
-
-class BackgroundJob extends TimedJob {
- protected $connectionNotifications = [3, 7, 14, 30];
-
- /** @var IConfig */
- protected $config;
-
- /** @var IManager */
- protected $notificationManager;
-
- /** @var IGroupManager */
- protected $groupManager;
-
- /** @var IAppManager */
- protected $appManager;
-
- /** @var IClientService */
- protected $client;
-
- /** @var Installer */
- protected $installer;
-
- /** @var string[] */
- protected $users;
-
- /**
- * NotificationBackgroundJob constructor.
- *
- * @param IConfig $config
- * @param IManager $notificationManager
- * @param IGroupManager $groupManager
- * @param IAppManager $appManager
- * @param IClientService $client
- * @param Installer $installer
- */
- public function __construct(IConfig $config, IManager $notificationManager, IGroupManager $groupManager, IAppManager $appManager, IClientService $client, Installer $installer) {
- // Run once a day
- $this->setInterval(60 * 60 * 24);
-
- $this->config = $config;
- $this->notificationManager = $notificationManager;
- $this->groupManager = $groupManager;
- $this->appManager = $appManager;
- $this->client = $client;
- $this->installer = $installer;
- }
-
- protected function run($argument) {
- $this->checkCoreUpdate();
- $this->checkAppUpdates();
- }
-
- /**
- * Check for ownCloud update
- */
- protected function checkCoreUpdate() {
- if (\in_array($this->getChannel(), ['daily', 'git'], true)) {
- // "These aren't the update channels you're looking for." - Ben Obi-Wan Kenobi
- return;
- }
-
- $updater = $this->createVersionCheck();
-
- $status = $updater->check();
- if ($status === false) {
- $errors = 1 + (int) $this->config->getAppValue('updatenotification', 'update_check_errors', 0);
- $this->config->setAppValue('updatenotification', 'update_check_errors', $errors);
-
- if (\in_array($errors, $this->connectionNotifications, true)) {
- $this->sendErrorNotifications($errors);
- }
- } elseif (\is_array($status)) {
- $this->config->setAppValue('updatenotification', 'update_check_errors', 0);
- $this->clearErrorNotifications();
-
- if (isset($status['version'])) {
- $this->createNotifications('core', $status['version'], $status['versionstring']);
- }
- }
- }
-
- /**
- * Send a message to the admin when the update server could not be reached
- * @param int $numDays
- */
- protected function sendErrorNotifications($numDays) {
- $this->clearErrorNotifications();
-
- $notification = $this->notificationManager->createNotification();
- try {
- $notification->setApp('updatenotification')
- ->setDateTime(new \DateTime())
- ->setObject('updatenotification', 'error')
- ->setSubject('connection_error', ['days' => $numDays]);
-
- foreach ($this->getUsersToNotify() as $uid) {
- $notification->setUser($uid);
- $this->notificationManager->notify($notification);
- }
- } catch (\InvalidArgumentException $e) {
- return;
- }
- }
-
- /**
- * Remove error notifications again
- */
- protected function clearErrorNotifications() {
- $notification = $this->notificationManager->createNotification();
- try {
- $notification->setApp('updatenotification')
- ->setSubject('connection_error')
- ->setObject('updatenotification', 'error');
- } catch (\InvalidArgumentException $e) {
- return;
- }
- $this->notificationManager->markProcessed($notification);
- }
-
- /**
- * Check all installed apps for updates
- */
- protected function checkAppUpdates() {
- $apps = $this->appManager->getInstalledApps();
- foreach ($apps as $app) {
- $update = $this->isUpdateAvailable($app);
- if ($update !== false) {
- $this->createNotifications($app, $update);
- }
- }
- }
-
- /**
- * Create notifications for this app version
- *
- * @param string $app
- * @param string $version
- * @param string $visibleVersion
- */
- protected function createNotifications($app, $version, $visibleVersion = '') {
- $lastNotification = $this->config->getAppValue('updatenotification', $app, false);
- if ($lastNotification === $version) {
- // We already notified about this update
- return;
- }
-
- if ($lastNotification !== false) {
- // Delete old updates
- $this->deleteOutdatedNotifications($app, $lastNotification);
- }
-
- $notification = $this->notificationManager->createNotification();
- try {
- $notification->setApp('updatenotification')
- ->setDateTime(new \DateTime())
- ->setObject($app, $version);
-
- if ($visibleVersion !== '') {
- $notification->setSubject('update_available', ['version' => $visibleVersion]);
- } else {
- $notification->setSubject('update_available');
- }
-
- foreach ($this->getUsersToNotify() as $uid) {
- $notification->setUser($uid);
- $this->notificationManager->notify($notification);
- }
- } catch (\InvalidArgumentException $e) {
- return;
- }
-
- $this->config->setAppValue('updatenotification', $app, $version);
- }
-
- /**
- * @return string[]
- */
- protected function getUsersToNotify(): array {
- if ($this->users !== null) {
- return $this->users;
- }
-
- $notifyGroups = (array) json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
- $this->users = [];
- foreach ($notifyGroups as $group) {
- $groupToNotify = $this->groupManager->get($group);
- if ($groupToNotify instanceof IGroup) {
- foreach ($groupToNotify->getUsers() as $user) {
- $this->users[$user->getUID()] = true;
- }
- }
- }
-
- $this->users = array_keys($this->users);
-
- return $this->users;
- }
-
- /**
- * Delete notifications for old updates
- *
- * @param string $app
- * @param string $version
- */
- protected function deleteOutdatedNotifications($app, $version) {
- $notification = $this->notificationManager->createNotification();
- try {
- $notification->setApp('updatenotification')
- ->setObject($app, $version);
- } catch (\InvalidArgumentException $e) {
- return;
- }
- $this->notificationManager->markProcessed($notification);
- }
-
- /**
- * @return VersionCheck
- */
- protected function createVersionCheck(): VersionCheck {
- return new VersionCheck(
- $this->client,
- $this->config
- );
- }
-
- /**
- * @return string
- */
- protected function getChannel(): string {
- return \OC_Util::getChannel();
- }
-
- /**
- * @param string $app
- * @return string|false
- */
- protected function isUpdateAvailable($app) {
- return $this->installer->isUpdateAvailable($app);
- }
-}
diff --git a/apps/updatenotification/lib/Notification/Notifier.php b/apps/updatenotification/lib/Notification/Notifier.php
index c7963a04ea6..787675bd98d 100644
--- a/apps/updatenotification/lib/Notification/Notifier.php
+++ b/apps/updatenotification/lib/Notification/Notifier.php
@@ -3,31 +3,14 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\UpdateNotification\Notification;
-use OCP\IConfig;
+use OCA\UpdateNotification\AppInfo\Application;
+use OCP\App\IAppManager;
+use OCP\AppFramework\Services\IAppConfig;
use OCP\IGroupManager;
use OCP\IURLGenerator;
use OCP\IUser;
@@ -37,49 +20,27 @@ use OCP\Notification\AlreadyProcessedException;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
use OCP\Notification\INotifier;
-use OCP\Util;
+use OCP\Notification\UnknownNotificationException;
+use OCP\ServerVersion;
class Notifier implements INotifier {
-
- /** @var IURLGenerator */
- protected $url;
-
- /** @var IConfig */
- protected $config;
-
- /** @var IManager */
- protected $notificationManager;
-
- /** @var IFactory */
- protected $l10NFactory;
-
- /** @var IUserSession */
- protected $userSession;
-
- /** @var IGroupManager */
- protected $groupManager;
-
/** @var string[] */
protected $appVersions;
/**
* Notifier constructor.
- *
- * @param IURLGenerator $url
- * @param IConfig $config
- * @param IManager $notificationManager
- * @param IFactory $l10NFactory
- * @param IUserSession $userSession
- * @param IGroupManager $groupManager
*/
- public function __construct(IURLGenerator $url, IConfig $config, IManager $notificationManager, IFactory $l10NFactory, IUserSession $userSession, IGroupManager $groupManager) {
- $this->url = $url;
- $this->notificationManager = $notificationManager;
- $this->config = $config;
- $this->l10NFactory = $l10NFactory;
- $this->userSession = $userSession;
- $this->groupManager = $groupManager;
- $this->appVersions = $this->getAppVersions();
+ public function __construct(
+ protected IURLGenerator $url,
+ protected IAppConfig $appConfig,
+ protected IManager $notificationManager,
+ protected IFactory $l10NFactory,
+ protected IUserSession $userSession,
+ protected IGroupManager $groupManager,
+ protected IAppManager $appManager,
+ protected ServerVersion $serverVersion,
+ ) {
+ $this->appVersions = $this->appManager->getAppInstalledVersions();
}
/**
@@ -89,7 +50,7 @@ class Notifier implements INotifier {
* @since 17.0.0
*/
public function getID(): string {
- return 'updatenotification';
+ return Application::APP_NAME;
}
/**
@@ -99,51 +60,60 @@ class Notifier implements INotifier {
* @since 17.0.0
*/
public function getName(): string {
- return $this->l10NFactory->get('updatenotification')->t('Update notifications');
+ return $this->l10NFactory->get(Application::APP_NAME)->t('Update notifications');
}
/**
* @param INotification $notification
* @param string $languageCode The code of the language that should be used to prepare the notification
* @return INotification
- * @throws \InvalidArgumentException When the notification was not prepared by a notifier
+ * @throws UnknownNotificationException When the notification was not prepared by a notifier
* @throws AlreadyProcessedException When the notification is not needed anymore and should be deleted
* @since 9.0.0
*/
public function prepare(INotification $notification, string $languageCode): INotification {
- if ($notification->getApp() !== 'updatenotification') {
- throw new \InvalidArgumentException('Unknown app id');
+ if ($notification->getApp() !== Application::APP_NAME) {
+ throw new UnknownNotificationException('Unknown app id');
+ }
+
+ if ($notification->getSubject() !== 'update_available' && $notification->getSubject() !== 'connection_error') {
+ throw new UnknownNotificationException('Unknown subject');
}
- $l = $this->l10NFactory->get('updatenotification', $languageCode);
+ $l = $this->l10NFactory->get(Application::APP_NAME, $languageCode);
if ($notification->getSubject() === 'connection_error') {
- $errors = (int) $this->config->getAppValue('updatenotification', 'update_check_errors', 0);
+ $errors = $this->appConfig->getAppValueInt('update_check_errors', 0);
if ($errors === 0) {
- $this->notificationManager->markProcessed($notification);
- throw new \InvalidArgumentException('Update checked worked again');
+ throw new AlreadyProcessedException();
}
$notification->setParsedSubject($l->t('The update server could not be reached since %d days to check for new updates.', [$errors]))
->setParsedMessage($l->t('Please check the Nextcloud and server log files for errors.'));
- } elseif ($notification->getObjectType() === 'core') {
- $this->updateAlreadyInstalledCheck($notification, $this->getCoreVersions());
+ } else {
+ if ($notification->getObjectType() === 'core') {
+ $this->updateAlreadyInstalledCheck($notification, $this->getCoreVersions());
- $parameters = $notification->getSubjectParameters();
- $notification->setParsedSubject($l->t('Update to %1$s is available.', [$parameters['version']]));
+ $parameters = $notification->getSubjectParameters();
+ $notification->setRichSubject($l->t('Update to {serverAndVersion} is available.'), [
+ 'serverAndVersion' => [
+ 'type' => 'highlight',
+ 'id' => $notification->getObjectType(),
+ 'name' => $parameters['version'],
+ ]
+ ]);
- if ($this->isAdmin()) {
- $notification->setLink($this->url->linkToRouteAbsolute('settings.AdminSettings.index', ['section' => 'overview']) . '#version');
- }
- } else {
- $appInfo = $this->getAppInfo($notification->getObjectType());
- $appName = ($appInfo === null) ? $notification->getObjectType() : $appInfo['name'];
+ if ($this->isAdmin()) {
+ $notification->setLink($this->url->linkToRouteAbsolute('settings.AdminSettings.index', ['section' => 'overview']) . '#version');
+ }
+ } else {
+ $appInfo = $this->getAppInfo($notification->getObjectType(), $languageCode);
+ $appName = ($appInfo === null) ? $notification->getObjectType() : $appInfo['name'];
- if (isset($this->appVersions[$notification->getObjectType()])) {
- $this->updateAlreadyInstalledCheck($notification, $this->appVersions[$notification->getObjectType()]);
- }
+ if (isset($this->appVersions[$notification->getObjectType()])) {
+ $this->updateAlreadyInstalledCheck($notification, $this->appVersions[$notification->getObjectType()]);
+ }
- $notification->setParsedSubject($l->t('Update for %1$s to version %2$s is available.', [$appName, $notification->getObjectId()]))
- ->setRichSubject($l->t('Update for {app} to version %s is available.', [$notification->getObjectId()]), [
+ $notification->setRichSubject($l->t('Update for {app} to version %s is available.', [$notification->getObjectId()]), [
'app' => [
'type' => 'app',
'id' => $notification->getObjectType(),
@@ -151,12 +121,13 @@ class Notifier implements INotifier {
]
]);
- if ($this->isAdmin()) {
- $notification->setLink($this->url->linkToRouteAbsolute('settings.AppSettings.viewApps', ['category' => 'updates']) . '#app-' . $notification->getObjectType());
+ if ($this->isAdmin()) {
+ $notification->setLink($this->url->linkToRouteAbsolute('settings.AppSettings.viewApps', ['category' => 'updates']) . '#app-' . $notification->getObjectType());
+ }
}
}
- $notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath('updatenotification', 'notification.svg')));
+ $notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath(Application::APP_NAME, 'notification.svg')));
return $notification;
}
@@ -168,15 +139,12 @@ class Notifier implements INotifier {
* @param string $installedVersion
* @throws AlreadyProcessedException When the update is already installed
*/
- protected function updateAlreadyInstalledCheck(INotification $notification, $installedVersion) {
+ protected function updateAlreadyInstalledCheck(INotification $notification, $installedVersion): void {
if (version_compare($notification->getObjectId(), $installedVersion, '<=')) {
throw new AlreadyProcessedException();
}
}
- /**
- * @return bool
- */
protected function isAdmin(): bool {
$user = $this->userSession->getUser();
@@ -188,14 +156,10 @@ class Notifier implements INotifier {
}
protected function getCoreVersions(): string {
- return implode('.', Util::getVersion());
- }
-
- protected function getAppVersions(): array {
- return \OC_App::getAppVersions();
+ return implode('.', $this->serverVersion->getVersion());
}
- protected function getAppInfo($appId) {
- return \OC_App::getAppInfo($appId);
+ protected function getAppInfo(string $appId, ?string $languageCode): ?array {
+ return $this->appManager->getAppInfo($appId, false, $languageCode);
}
}
diff --git a/apps/updatenotification/lib/ResetTokenBackgroundJob.php b/apps/updatenotification/lib/ResetTokenBackgroundJob.php
deleted file mode 100644
index 2d83e7f64d5..00000000000
--- a/apps/updatenotification/lib/ResetTokenBackgroundJob.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\UpdateNotification;
-
-use OC\BackgroundJob\TimedJob;
-use OCP\AppFramework\Utility\ITimeFactory;
-use OCP\IConfig;
-
-/**
- * Class ResetTokenBackgroundJob deletes any configured token all 24 hours for
- *
- *
- * @package OCA\UpdateNotification
- */
-class ResetTokenBackgroundJob extends TimedJob {
- /** @var IConfig */
- private $config;
- /** @var ITimeFactory */
- private $timeFactory;
-
- /**
- * @param IConfig $config
- * @param ITimeFactory $timeFactory
- */
- public function __construct(IConfig $config,
- ITimeFactory $timeFactory) {
- // Run all 10 minutes
- $this->setInterval(60 * 10);
- $this->config = $config;
- $this->timeFactory = $timeFactory;
- }
-
- /**
- * @param $argument
- */
- protected function run($argument) {
- // Delete old tokens after 2 days
- if ($this->timeFactory->getTime() - $this->config->getAppValue('core', 'updater.secret.created', $this->timeFactory->getTime()) >= 172800) {
- $this->config->deleteSystemValue('updater.secret');
- }
- }
-}
diff --git a/apps/updatenotification/lib/ResponseDefinitions.php b/apps/updatenotification/lib/ResponseDefinitions.php
new file mode 100644
index 00000000000..754787ea2a7
--- /dev/null
+++ b/apps/updatenotification/lib/ResponseDefinitions.php
@@ -0,0 +1,19 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\UpdateNotification;
+
+/**
+ * @psalm-type UpdateNotificationApp = array{
+ * appId: string,
+ * appName: string,
+ * }
+ */
+class ResponseDefinitions {
+}
diff --git a/apps/updatenotification/lib/Settings/Admin.php b/apps/updatenotification/lib/Settings/Admin.php
index 915f805e605..22228f1bccc 100644
--- a/apps/updatenotification/lib/Settings/Admin.php
+++ b/apps/updatenotification/lib/Settings/Admin.php
@@ -3,77 +3,44 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\UpdateNotification\Settings;
+use OCA\UpdateNotification\AppInfo\Application;
use OCA\UpdateNotification\UpdateChecker;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Services\IInitialState;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IDateTimeFormatter;
use OCP\IGroupManager;
+use OCP\IUserManager;
use OCP\L10N\IFactory;
+use OCP\ServerVersion;
use OCP\Settings\ISettings;
use OCP\Support\Subscription\IRegistry;
-use OCP\Util;
+use Psr\Log\LoggerInterface;
class Admin implements ISettings {
- /** @var IConfig */
- private $config;
- /** @var UpdateChecker */
- private $updateChecker;
- /** @var IGroupManager */
- private $groupManager;
- /** @var IDateTimeFormatter */
- private $dateTimeFormatter;
- /** @var IFactory */
- private $l10nFactory;
- /** @var IRegistry */
- private $subscriptionRegistry;
-
public function __construct(
- IConfig $config,
- UpdateChecker $updateChecker,
- IGroupManager $groupManager,
- IDateTimeFormatter $dateTimeFormatter,
- IFactory $l10nFactory,
- IRegistry $subscriptionRegistry
+ private IConfig $config,
+ private IAppConfig $appConfig,
+ private UpdateChecker $updateChecker,
+ private IGroupManager $groupManager,
+ private IDateTimeFormatter $dateTimeFormatter,
+ private IFactory $l10nFactory,
+ private IRegistry $subscriptionRegistry,
+ private IUserManager $userManager,
+ private LoggerInterface $logger,
+ private IInitialState $initialState,
+ private ServerVersion $serverVersion,
) {
- $this->config = $config;
- $this->updateChecker = $updateChecker;
- $this->groupManager = $groupManager;
- $this->dateTimeFormatter = $dateTimeFormatter;
- $this->l10nFactory = $l10nFactory;
- $this->subscriptionRegistry = $subscriptionRegistry;
}
- /**
- * @return TemplateResponse
- */
public function getForm(): TemplateResponse {
- $lastUpdateCheckTimestamp = $this->config->getAppValue('core', 'lastupdatedat');
+ $lastUpdateCheckTimestamp = $this->appConfig->getValueInt('core', 'lastupdatedat');
$lastUpdateCheck = $this->dateTimeFormatter->formatDateTime($lastUpdateCheckTimestamp);
$channels = [
@@ -82,14 +49,14 @@ class Admin implements ISettings {
'stable',
'production',
];
- $currentChannel = Util::getChannel();
+ $currentChannel = $this->serverVersion->getChannel();
if ($currentChannel === 'git') {
$channels[] = 'git';
}
$updateState = $this->updateChecker->getUpdateState();
- $notifyGroups = json_decode($this->config->getAppValue('updatenotification', 'notify_groups', '["admin"]'), true);
+ $notifyGroups = $this->appConfig->getValueArray(Application::APP_NAME, 'notify_groups', ['admin']);
$defaultUpdateServerURL = 'https://updates.nextcloud.com/updater_server/';
$updateServerURL = $this->config->getSystemValue('updater.server.url', $defaultUpdateServerURL);
@@ -110,6 +77,8 @@ class Admin implements ISettings {
'newVersionString' => empty($updateState['updateVersionString']) ? '' : $updateState['updateVersionString'],
'downloadLink' => empty($updateState['downloadLink']) ? '' : $updateState['downloadLink'],
'changes' => $this->filterChanges($updateState['changes'] ?? []),
+ 'webUpdaterEnabled' => !$this->config->getSystemValue('upgrade.disable-web', false),
+ 'isWebUpdaterRecommended' => $this->isWebUpdaterRecommended(),
'updaterEnabled' => empty($updateState['updaterEnabled']) ? false : $updateState['updaterEnabled'],
'versionIsEol' => empty($updateState['versionIsEol']) ? false : $updateState['versionIsEol'],
'isDefaultUpdateServerURL' => $isDefaultUpdateServerURL,
@@ -117,12 +86,9 @@ class Admin implements ISettings {
'notifyGroups' => $this->getSelectedGroups($notifyGroups),
'hasValidSubscription' => $hasValidSubscription,
];
+ $this->initialState->provideInitialState('data', $params);
- $params = [
- 'json' => json_encode($params),
- ];
-
- return new TemplateResponse('updatenotification', 'admin', $params, '');
+ return new TemplateResponse('updatenotification', 'admin', [], '');
}
protected function filterChanges(array $changes): array {
@@ -148,8 +114,8 @@ class Admin implements ISettings {
}
/**
- * @param array $groupIds
- * @return array
+ * @param string[] $groupIds
+ * @return list<array{id: string, displayname: string}>
*/
protected function getSelectedGroups(array $groupIds): array {
$result = [];
@@ -160,27 +126,26 @@ class Admin implements ISettings {
continue;
}
- $result[] = ['value' => $group->getGID(), 'label' => $group->getDisplayName()];
+ $result[] = ['id' => $group->getGID(), 'displayname' => $group->getDisplayName()];
}
return $result;
}
- /**
- * @return string the section ID, e.g. 'sharing'
- */
- public function getSection(): string {
+ public function getSection(): ?string {
+ if (!$this->config->getSystemValueBool('updatechecker', true)) {
+ // update checker is disabled so we do not show the section at all
+ return null;
+ }
+
return 'overview';
}
- /**
- * @return int whether the form should be rather on the top or bottom of
- * the admin section. The forms are arranged in ascending order of the
- * priority values. It is required to return a value between 0 and 100.
- *
- * E.g.: 70
- */
public function getPriority(): int {
return 11;
}
+
+ private function isWebUpdaterRecommended(): bool {
+ return (int)$this->userManager->countUsersTotal(100) < 100;
+ }
}
diff --git a/apps/updatenotification/lib/UpdateChecker.php b/apps/updatenotification/lib/UpdateChecker.php
index 8caefd180ce..b206ba4a3e4 100644
--- a/apps/updatenotification/lib/UpdateChecker.php
+++ b/apps/updatenotification/lib/UpdateChecker.php
@@ -3,47 +3,23 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\UpdateNotification;
use OC\Updater\ChangesCheck;
use OC\Updater\VersionCheck;
+use OCP\AppFramework\Services\IInitialState;
class UpdateChecker {
- /** @var VersionCheck */
- private $updater;
- /** @var ChangesCheck */
- private $changesCheck;
- /**
- * @param VersionCheck $updater
- */
- public function __construct(VersionCheck $updater, ChangesCheck $changesCheck) {
- $this->updater = $updater;
- $this->changesCheck = $changesCheck;
+ public function __construct(
+ private VersionCheck $updater,
+ private ChangesCheck $changesCheck,
+ private IInitialState $initialState,
+ ) {
}
/**
@@ -80,13 +56,17 @@ class UpdateChecker {
}
/**
- * @param array $data
+ * Provide update information as initial state
*/
- public function populateJavaScriptVariables(array $data) {
- $data['array']['oc_updateState'] = json_encode([
- 'updateAvailable' => true,
- 'updateVersion' => $this->getUpdateState()['updateVersionString'],
- 'updateLink' => $this->getUpdateState()['updateLink'] ?? '',
+ public function setInitialState(): void {
+ $updateState = $this->getUpdateState();
+ if (empty($updateState)) {
+ return;
+ }
+
+ $this->initialState->provideInitialState('updateState', [
+ 'updateVersion' => $updateState['updateVersionString'],
+ 'updateLink' => $updateState['updateLink'] ?? '',
]);
}
}
diff --git a/apps/updatenotification/openapi.json b/apps/updatenotification/openapi.json
new file mode 100644
index 00000000000..f635b0839ef
--- /dev/null
+++ b/apps/updatenotification/openapi.json
@@ -0,0 +1,378 @@
+{
+ "openapi": "3.0.3",
+ "info": {
+ "title": "updatenotification",
+ "version": "0.0.1",
+ "description": "Displays update notifications for Nextcloud, app updates, and provides the SSO for the updater.",
+ "license": {
+ "name": "agpl"
+ }
+ },
+ "components": {
+ "securitySchemes": {
+ "basic_auth": {
+ "type": "http",
+ "scheme": "basic"
+ },
+ "bearer_auth": {
+ "type": "http",
+ "scheme": "bearer"
+ }
+ },
+ "schemas": {
+ "App": {
+ "type": "object",
+ "required": [
+ "appId",
+ "appName"
+ ],
+ "properties": {
+ "appId": {
+ "type": "string"
+ },
+ "appName": {
+ "type": "string"
+ }
+ }
+ },
+ "OCSMeta": {
+ "type": "object",
+ "required": [
+ "status",
+ "statuscode"
+ ],
+ "properties": {
+ "status": {
+ "type": "string"
+ },
+ "statuscode": {
+ "type": "integer"
+ },
+ "message": {
+ "type": "string"
+ },
+ "totalitems": {
+ "type": "string"
+ },
+ "itemsperpage": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "paths": {
+ "/ocs/v2.php/apps/updatenotification/api/{apiVersion}/applist/{newVersion}": {
+ "get": {
+ "operationId": "api-get-app-list",
+ "summary": "List available updates for apps",
+ "description": "This endpoint requires admin access",
+ "tags": [
+ "api"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "apiVersion",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "v1"
+ ],
+ "default": "v1"
+ }
+ },
+ {
+ "name": "newVersion",
+ "in": "path",
+ "description": "Server version to check updates for",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Apps returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "missing",
+ "available"
+ ],
+ "properties": {
+ "missing": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/App"
+ }
+ },
+ "available": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/App"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "New versions not found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "appstore_disabled"
+ ],
+ "properties": {
+ "appstore_disabled": {
+ "type": "boolean"
+ },
+ "already_on_latest": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/ocs/v2.php/apps/updatenotification/api/{apiVersion}/changelog/{appId}": {
+ "get": {
+ "operationId": "api-get-app-changelog-entry",
+ "summary": "Get changelog entry for an app",
+ "description": "This endpoint requires admin access",
+ "tags": [
+ "api"
+ ],
+ "security": [
+ {
+ "bearer_auth": []
+ },
+ {
+ "basic_auth": []
+ }
+ ],
+ "parameters": [
+ {
+ "name": "apiVersion",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string",
+ "enum": [
+ "v1"
+ ],
+ "default": "v1"
+ }
+ },
+ {
+ "name": "appId",
+ "in": "path",
+ "description": "App to search changelog entry for",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "version",
+ "in": "query",
+ "description": "The version to search the changelog entry for (defaults to the latest installed)",
+ "schema": {
+ "type": "string",
+ "nullable": true,
+ "default": null
+ }
+ },
+ {
+ "name": "OCS-APIRequest",
+ "in": "header",
+ "description": "Required to be true for the API request to pass",
+ "required": true,
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Changelog entry returned",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object",
+ "required": [
+ "appName",
+ "content",
+ "version"
+ ],
+ "properties": {
+ "appName": {
+ "type": "string"
+ },
+ "content": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "No changelog found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "The `version` parameter is not a valid version format",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "object",
+ "required": [
+ "ocs"
+ ],
+ "properties": {
+ "ocs": {
+ "type": "object",
+ "required": [
+ "meta",
+ "data"
+ ],
+ "properties": {
+ "meta": {
+ "$ref": "#/components/schemas/OCSMeta"
+ },
+ "data": {
+ "type": "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": []
+}
diff --git a/apps/updatenotification/openapi.json.license b/apps/updatenotification/openapi.json.license
new file mode 100644
index 00000000000..83559daa9dc
--- /dev/null
+++ b/apps/updatenotification/openapi.json.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later \ No newline at end of file
diff --git a/apps/updatenotification/src/components/AppChangelogDialog.vue b/apps/updatenotification/src/components/AppChangelogDialog.vue
new file mode 100644
index 00000000000..0fb7432843c
--- /dev/null
+++ b/apps/updatenotification/src/components/AppChangelogDialog.vue
@@ -0,0 +1,100 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<template>
+ <NcDialog content-classes="app-changelog-dialog"
+ :buttons="dialogButtons"
+ :name="t('updatenotification', 'What\'s new in {app} {version}', { app: appName, version: appVersion })"
+ :open="open && markdown !== undefined"
+ size="normal"
+ @update:open="$emit('update:open', $event)">
+ <Markdown class="app-changelog-dialog__text" :markdown="markdown" :min-heading-level="3" />
+ </NcDialog>
+</template>
+
+<script setup lang="ts">
+import { translate as t } from '@nextcloud/l10n'
+import { generateOcsUrl } from '@nextcloud/router'
+import { ref, watchEffect } from 'vue'
+
+import axios from '@nextcloud/axios'
+import NcDialog from '@nextcloud/vue/components/NcDialog'
+import Markdown from './Markdown.vue'
+
+const props = withDefaults(
+ defineProps<{
+ appId: string
+ version?: string
+ open?: boolean
+ }>(),
+
+ // Default values
+ {
+ open: true,
+ version: undefined,
+ },
+)
+
+const emit = defineEmits<{
+ /**
+ * Event that is called when the "Get started"-button is pressed
+ */
+ (e: 'dismiss'): void
+
+ (e: 'update:open', v: boolean): void
+}>()
+
+const dialogButtons = [
+ {
+ label: t('updatenotification', 'Give feedback'),
+ callback: () => {
+ window.open(`https://apps.nextcloud.com/apps/${props.appId}#comments`, '_blank', 'noreferrer noopener')
+ },
+ },
+ {
+ label: t('updatenotification', 'Get started'),
+ type: 'primary',
+ callback: () => {
+ emit('dismiss')
+ emit('update:open', false)
+ },
+ },
+]
+
+const appName = ref(props.appId)
+const appVersion = ref(props.version ?? '')
+const markdown = ref<string>('')
+watchEffect(() => {
+ const url = props.version
+ ? generateOcsUrl('/apps/updatenotification/api/v1/changelog/{app}?version={version}', { version: props.version, app: props.appId })
+ : generateOcsUrl('/apps/updatenotification/api/v1/changelog/{app}', { version: props.version, app: props.appId })
+
+ axios.get(url)
+ .then(({ data }) => {
+ appName.value = data.ocs.data.appName
+ appVersion.value = data.ocs.data.version
+ markdown.value = data.ocs.data.content
+ })
+ .catch((error) => {
+ if (error?.response?.status === 404) {
+ appName.value = props.appId
+ markdown.value = t('updatenotification', 'No changelog available')
+ } else {
+ console.error('Failed to load changelog entry', error)
+ emit('update:open', false)
+ }
+ })
+
+})
+</script>
+
+<style scoped lang="scss">
+:deep(.app-changelog-dialog) {
+ min-height: 50vh !important;
+}
+
+.app-changelog-dialog__text {
+ padding-inline: 14px;
+}
+</style>
diff --git a/apps/updatenotification/src/components/Markdown.vue b/apps/updatenotification/src/components/Markdown.vue
new file mode 100644
index 00000000000..125b0ff96a9
--- /dev/null
+++ b/apps/updatenotification/src/components/Markdown.vue
@@ -0,0 +1,60 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<template>
+ <!-- eslint-disable-next-line vue/no-v-html -->
+ <div class="markdown" v-html="html" />
+</template>
+
+<script setup lang="ts">
+import { toRef } from 'vue'
+import { useMarkdown } from '../composables/useMarkdown'
+
+const props = withDefaults(
+ defineProps<{
+ markdown: string
+ minHeadingLevel?: 1|2|3|4|5|6
+ }>(),
+ {
+ minHeadingLevel: 2,
+ },
+)
+
+const { html } = useMarkdown(toRef(props, 'markdown'), toRef(props, 'minHeadingLevel'))
+</script>
+
+<style scoped lang="scss">
+.markdown {
+ :deep {
+ ul {
+ list-style: disc;
+ padding-inline-start: 20px;
+ }
+
+ h3, h4, h5, h6 {
+ font-weight: 600;
+ line-height: 1.5;
+ margin-top: 24px;
+ margin-bottom: 12px;
+ color: var(--color-main-text);
+ }
+
+ h3 {
+ font-size: 20px;
+ }
+
+ h4 {
+ font-size: 18px;
+ }
+
+ h5 {
+ font-size: 17px;
+ }
+
+ h6 {
+ font-size: var(--default-font-size);
+ }
+ }
+}
+</style>
diff --git a/apps/updatenotification/src/components/UpdateNotification.vue b/apps/updatenotification/src/components/UpdateNotification.vue
index 9d18fab2a11..94c58dbdfd9 100644
--- a/apps/updatenotification/src/components/UpdateNotification.vue
+++ b/apps/updatenotification/src/components/UpdateNotification.vue
@@ -1,23 +1,26 @@
+<!--
+ - SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
<template>
- <div id="updatenotification" class="followupsection">
+ <NcSettingsSection id="updatenotification" :name="t('updatenotification', 'Update')">
<div class="update">
<template v-if="isNewVersionAvailable">
- <p v-if="versionIsEol">
- <span class="warning">
- <span class="icon icon-error-white" />
- {{ t('updatenotification', 'The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.') }}
- </span>
- </p>
+ <NcNoteCard v-if="versionIsEol" type="warning">
+ {{ t('updatenotification', 'The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible.') }}
+ </NcNoteCard>
<p>
+ <!-- eslint-disable-next-line vue/no-v-html -->
<span v-html="newVersionAvailableString" /><br>
<span v-if="!isListFetched" class="icon icon-loading-small" />
+ <!-- eslint-disable-next-line vue/no-v-html -->
<span v-html="statusText" />
</p>
<template v-if="missingAppUpdates.length">
- <h3 @click="toggleHideMissingUpdates">
- {{ t('updatenotification', 'Apps missing updates') }}
+ <h3 class="clickable" @click="toggleHideMissingUpdates">
+ {{ t('updatenotification', 'Apps missing compatible version') }}
<span v-if="!hideMissingUpdates" class="icon icon-triangle-n" />
<span v-if="hideMissingUpdates" class="icon icon-triangle-s" />
</h3>
@@ -29,8 +32,8 @@
</template>
<template v-if="availableAppUpdates.length">
- <h3 @click="toggleHideAvailableUpdates">
- {{ t('updatenotification', 'Apps with available updates') }}
+ <h3 class="clickable" @click="toggleHideAvailableUpdates">
+ {{ t('updatenotification', 'Apps with compatible version') }}
<span v-if="!hideAvailableUpdates" class="icon icon-triangle-n" />
<span v-if="hideAvailableUpdates" class="icon icon-triangle-s" />
</h3>
@@ -41,8 +44,14 @@
</ul>
</template>
+ <template v-if="!isWebUpdaterRecommended && updaterEnabled && webUpdaterEnabled">
+ <h3 class="warning">
+ {{ t('updatenotification', 'Please note that the web updater is not recommended with more than 100 accounts! Please use the command line updater instead!') }}
+ </h3>
+ </template>
+
<div>
- <a v-if="updaterEnabled"
+ <a v-if="updaterEnabled && webUpdaterEnabled"
href="#"
class="button primary"
@click="clickUpdaterButton">{{ t('updatenotification', 'Open updater') }}</a>
@@ -50,14 +59,29 @@
:href="downloadLink"
class="button"
:class="{ hidden: !updaterEnabled }">{{ t('updatenotification', 'Download now') }}</a>
- <div v-if="whatsNew" class="whatsNew">
- <div class="toggleWhatsNew">
- <a v-click-outside="hideMenu" class="button" @click="toggleMenu">{{ t('updatenotification', 'What\'s new?') }}</a>
- <div class="popovermenu" :class="{ 'menu-center': true, open: openedWhatsNew }">
- <PopoverMenu :menu="whatsNew" />
- </div>
- </div>
- </div>
+ <span v-if="updaterEnabled && !webUpdaterEnabled">
+ {{ t('updatenotification', 'Web updater is disabled. Please use the command line updater or the appropriate update mechanism for your installation method (e.g. Docker pull) to update.') }}
+ </span>
+ <NcActions v-if="whatsNewData || changelogURL"
+ :force-menu="true"
+ :menu-name="t('updatenotification', 'What\'s new?')"
+ type="tertiary">
+ <template #icon>
+ <IconNewBox :size="20" />
+ </template>
+ <template #default>
+ <NcActionCaption v-for="changes,index in whatsNewData" :key="index" :name="changes" />
+ <NcActionLink v-if="changelogURL"
+ :href="changelogURL"
+ close-after-click
+ target="_blank">
+ {{ t('updatenotification', 'View changelog') }}
+ <template #icon>
+ <IconLink :size="20" />
+ </template>
+ </NcActionLink>
+ </template>
+ </NcActions>
</div>
</template>
<template v-else-if="!isUpdateChecked">
@@ -65,7 +89,11 @@
</template>
<template v-else>
{{ t('updatenotification', 'Your version is up to date.') }}
- <span v-tooltip.auto="lastCheckedOnString" class="icon-info svg" />
+ <a :title="lastCheckedOnString"
+ :aria-label="lastCheckedOnString"
+ href="https://nextcloud.com/changelog/"
+ class="icon-info details"
+ target="_blank" />
</template>
<template v-if="!isDefaultUpdateServerURL">
@@ -75,63 +103,116 @@
</template>
</div>
- <h3 class="update-channel-selector">
- {{ t('updatenotification', 'Update channel:') }}
- <div v-click-outside="closeUpdateChannelMenu" class="update-menu">
- <span class="icon-update-menu" @click="toggleUpdateChannelMenu">
- {{ localizedChannelName }}
- <span class="icon-triangle-s" />
- </span>
- <div class="popovermenu menu menu-center" :class="{ 'show-menu': openedUpdateChannelMenu}">
- <PopoverMenu :menu="channelList" />
- </div>
- </div>
- </h3>
- <span id="channel_save_msg" class="msg" /><br>
+ <h3>{{ t('updatenotification', 'Update channel') }}</h3>
+ <p class="inlineblock">
+ {{ t('updatenotification', 'Changing the update channel also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page.') }}
+ </p>
+ <div class="update-channel-selector">
+ <span>{{ t('updatenotification', 'Current update channel:') }}</span>
+ <NcActions :force-menu="true"
+ :menu-name="localizedChannelName"
+ type="tertiary">
+ <template #icon>
+ <IconChevronDown :size="20" />
+ </template>
+ <template #default>
+ <NcActionButton v-for="channel in channelList"
+ :key="channel.value"
+ :disabled="channel.disabled"
+ :name="channel.text"
+ :value="channel.value"
+ :model-value="currentChannel"
+ type="radio"
+ close-after-click
+ @update:modelValue="changeReleaseChannel">
+ <template #icon>
+ <component :is="channel.icon" :size="20" />
+ </template>
+ {{ channel.longtext }}
+ </NcActionButton>
+ </template>
+ </NcActions>
+ </div>
<p>
<em>{{ t('updatenotification', 'You can always update to a newer version. But you can never downgrade to a more stable version.') }}</em><br>
- <em v-html="noteDelayedStableString"></em>
+ <!-- eslint-disable-next-line vue/no-v-html -->
+ <em v-html="noteDelayedStableString" />
</p>
- <p id="oca_updatenotification_groups">
- {{ t('updatenotification', 'Notify members of the following groups about available updates:') }}
- <Multiselect v-model="notifyGroups"
- :options="availableGroups"
- :multiple="true"
- label="label"
- track-by="value"
- :tag-width="75" /><br>
- <em v-if="currentChannel === 'daily' || currentChannel === 'git'">{{ t('updatenotification', 'Only notification for app updates are available.') }}</em>
+ <NcSelect id="notify-members-settings-select-wrapper"
+ v-model="notifyGroups"
+ :input-label="t('updatenotification', 'Notify members of the following groups about available updates:')"
+ :options="groups"
+ :multiple="true"
+ label="displayname"
+ :loading="loadingGroups"
+ :close-on-select="false"
+ @search="searchGroup">
+ <template #no-options>
+ {{ t('updatenotification', 'No groups') }}
+ </template>
+ </NcSelect>
+ <p>
+ <em v-if="currentChannel === 'daily' || currentChannel === 'git'">{{ t('updatenotification', 'Only notifications for app updates are available.') }}</em>
<em v-if="currentChannel === 'daily'">{{ t('updatenotification', 'The selected update channel makes dedicated notifications for the server obsolete.') }}</em>
- <em v-if="currentChannel === 'git'">{{ t('updatenotification', 'The selected update channel does not support updates of the server.') }}</em>
+ <em v-else-if="currentChannel === 'git'">{{ t('updatenotification', 'The selected update channel does not support updates of the server.') }}</em>
</p>
- </div>
+ </NcSettingsSection>
</template>
<script>
+import { showSuccess } from '@nextcloud/dialogs'
+import { loadState } from '@nextcloud/initial-state'
+import { getLoggerBuilder } from '@nextcloud/logger'
import { generateUrl, getRootUrl, generateOcsUrl } from '@nextcloud/router'
-import PopoverMenu from '@nextcloud/vue/dist/Components/PopoverMenu'
-import Multiselect from '@nextcloud/vue/dist/Components/Multiselect'
-import { VTooltip } from 'v-tooltip'
-import ClickOutside from 'vue-click-outside'
-VTooltip.options.defaultHtml = false
+import axios from '@nextcloud/axios'
+import NcActions from '@nextcloud/vue/components/NcActions'
+import NcActionButton from '@nextcloud/vue/components/NcActionButton'
+import NcActionCaption from '@nextcloud/vue/components/NcActionCaption'
+import NcActionLink from '@nextcloud/vue/components/NcActionLink'
+import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
+import NcSelect from '@nextcloud/vue/components/NcSelect'
+import NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'
+import IconChevronDown from 'vue-material-design-icons/ChevronDown.vue'
+import IconCloudCheckVariant from 'vue-material-design-icons/CloudCheckVariant.vue'
+import IconLink from 'vue-material-design-icons/Link.vue'
+import IconNewBox from 'vue-material-design-icons/NewBox.vue'
+import IconPencil from 'vue-material-design-icons/PencilOutline.vue'
+import IconSourceBranch from 'vue-material-design-icons/SourceBranch.vue'
+import IconStar from 'vue-material-design-icons/Star.vue'
+import IconWeatherNight from 'vue-material-design-icons/WeatherNight.vue'
+import IconWrench from 'vue-material-design-icons/Wrench.vue'
+import debounce from 'debounce'
+
+const logger = getLoggerBuilder()
+ .setApp('updatenotification')
+ .detectUser()
+ .build()
export default {
name: 'UpdateNotification',
components: {
- Multiselect,
- PopoverMenu,
- },
- directives: {
- ClickOutside,
- tooltip: VTooltip,
+ IconChevronDown,
+ IconLink,
+ IconNewBox,
+ NcActions,
+ NcActionButton,
+ NcActionCaption,
+ NcActionLink,
+ NcNoteCard,
+ NcSelect,
+ NcSettingsSection,
},
+
data() {
return {
+ loadingGroups: false,
newVersionString: '',
lastCheckedDate: '',
isUpdateChecked: false,
+ webUpdaterEnabled: true,
+ isWebUpdaterRecommended: true,
updaterEnabled: true,
versionIsEol: false,
downloadLink: '',
@@ -143,7 +224,7 @@ export default {
currentChannel: '',
channels: [],
notifyGroups: '',
- availableGroups: [],
+ groups: [],
isDefaultUpdateServerURL: true,
enableChangeWatcher: false,
@@ -159,9 +240,6 @@ export default {
}
},
- _$el: null,
- _$notifyGroups: null,
-
computed: {
newVersionAvailableString() {
return t('updatenotification', 'A new version is available: <strong>{newVersionString}</strong>', {
@@ -170,18 +248,19 @@ export default {
},
noteDelayedStableString() {
- return t('updatenotification', 'Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}').replace('{link}', '<a href="https://nextcloud.com/release-channels/">https://nextcloud.com/release-channels/</a>')
+ return t('updatenotification', 'Note that after a new release the update only shows up after the first minor release or later. We roll out new versions spread out over time and sometimes skip a version when issues are found. Learn more about updates and release channels at {link}')
+ .replace('{link}', '<a href="https://nextcloud.com/release-channels/">https://nextcloud.com/release-channels/</a>')
},
lastCheckedOnString() {
- return t('updatenotification', 'Checked on {lastCheckedDate}', {
+ return t('updatenotification', 'Checked on {lastCheckedDate} - Open changelog', {
lastCheckedDate: this.lastCheckedDate,
})
},
statusText() {
if (!this.isListFetched) {
- return t('updatenotification', 'Checking apps for compatible updates')
+ return t('updatenotification', 'Checking apps for compatible versions')
}
if (this.appStoreDisabled) {
@@ -189,32 +268,12 @@ export default {
}
if (this.appStoreFailed) {
- return t('updatenotification', 'Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore.')
+ return t('updatenotification', 'Could not connect to the App Store or no updates have been returned at all. Search manually for updates or make sure your server has access to the internet and can connect to the App Store.')
}
return this.missingAppUpdates.length === 0
- ? t('updatenotification', '<strong>All</strong> apps have an update for this version available', this)
- : n('updatenotification', '<strong>%n</strong> app has no update for this version available', '<strong>%n</strong> apps have no update for this version available', this.missingAppUpdates.length)
- },
-
- whatsNew() {
- if (this.whatsNewData.length === 0) {
- return null
- }
- const whatsNew = []
- for (const i in this.whatsNewData) {
- whatsNew[i] = { icon: 'icon-checkmark', longtext: this.whatsNewData[i] }
- }
- if (this.changelogURL) {
- whatsNew.push({
- href: this.changelogURL,
- text: t('updatenotification', 'View changelog'),
- icon: 'icon-link',
- target: '_blank',
- action: '',
- })
- }
- return whatsNew
+ ? t('updatenotification', '<strong>All</strong> apps have a compatible version for this Nextcloud version available.', this)
+ : n('updatenotification', '<strong>%n</strong> app has no compatible version for this Nextcloud version available.', '<strong>%n</strong> apps have no compatible version for this Nextcloud version available.', this.missingAppUpdates.length)
},
channelList() {
@@ -223,43 +282,41 @@ export default {
channelList.push({
text: t('updatenotification', 'Enterprise'),
longtext: t('updatenotification', 'For enterprise use. Provides always the latest patch level, but will not update to the next major release immediately. That update happens once Nextcloud GmbH has done additional hardening and testing for large-scale and mission-critical deployments. This channel is only available to customers and provides the Nextcloud Enterprise package.'),
- icon: 'icon-star',
+ icon: IconStar,
active: this.currentChannel === 'enterprise',
disabled: !this.hasValidSubscription,
- action: this.changeReleaseChannelToEnterprise,
+ value: 'enterprise',
})
channelList.push({
text: t('updatenotification', 'Stable'),
longtext: t('updatenotification', 'The most recent stable version. It is suited for regular use and will always update to the latest major version.'),
- icon: 'icon-checkmark',
- active: this.currentChannel === 'stable',
- action: this.changeReleaseChannelToStable,
+ icon: IconCloudCheckVariant,
+ value: 'stable',
})
channelList.push({
text: t('updatenotification', 'Beta'),
longtext: t('updatenotification', 'A pre-release version only for testing new features, not for production environments.'),
- icon: 'icon-category-customization',
- active: this.currentChannel === 'beta',
- action: this.changeReleaseChannelToBeta,
+ icon: IconWrench,
+ value: 'beta',
})
- if (this.isNonDefaultChannel) {
+ if (this.isNonDefaultChannel(this.currentChannel)) {
+ const nonDefaultIcons = {
+ daily: IconWeatherNight,
+ git: IconSourceBranch,
+ }
channelList.push({
text: this.currentChannel,
- icon: 'icon-rename',
- active: true,
+ icon: nonDefaultIcons[this.currentChannel] || IconPencil,
+ value: this.currentChannel,
})
}
return channelList
},
- isNonDefaultChannel() {
- return this.currentChannel !== 'enterprise' && this.currentChannel !== 'stable' && this.currentChannel !== 'beta'
- },
-
localizedChannelName() {
switch (this.currentChannel) {
case 'enterprise':
@@ -275,53 +332,50 @@ export default {
},
watch: {
- notifyGroups(selectedOptions) {
+ notifyGroups() {
if (!this.enableChangeWatcher) {
+ // The first time is when loading the app
+ this.enableChangeWatcher = true
return
}
- const selectedGroups = []
- _.each(selectedOptions, function(group) {
- selectedGroups.push(group.value)
+ const groups = this.notifyGroups.map(group => {
+ return group.id
})
- OCP.AppConfig.setValue('updatenotification', 'notify_groups', JSON.stringify(selectedGroups))
+ OCP.AppConfig.setValue('updatenotification', 'notify_groups', JSON.stringify(groups))
},
isNewVersionAvailable() {
if (!this.isNewVersionAvailable) {
return
}
- $.ajax({
- url: generateOcsUrl('apps/updatenotification/api/v1/applist', 2) + this.newVersion,
- type: 'GET',
- beforeSend(request) {
- request.setRequestHeader('Accept', 'application/json')
- },
- success: function(response) {
- this.availableAppUpdates = response.ocs.data.available
- this.missingAppUpdates = response.ocs.data.missing
- this.isListFetched = true
- this.appStoreFailed = false
- }.bind(this),
- error: function(xhr) {
- this.availableAppUpdates = []
- this.missingAppUpdates = []
- this.appStoreDisabled = xhr.responseJSON.ocs.data.appstore_disabled
- this.isListFetched = true
- this.appStoreFailed = true
- }.bind(this),
+ axios.get(generateOcsUrl('apps/updatenotification/api/v1/applist/{newVersion}', {
+ newVersion: this.newVersion,
+ })).then(({ data }) => {
+ this.availableAppUpdates = data.ocs.data.available
+ this.missingAppUpdates = data.ocs.data.missing
+ this.isListFetched = true
+ this.appStoreFailed = false
+ }).catch(({ response }) => {
+ this.availableAppUpdates = []
+ this.missingAppUpdates = []
+ this.appStoreDisabled = response.data.ocs.data.appstore_disabled
+ this.isListFetched = true
+ this.appStoreFailed = true
})
},
},
beforeMount() {
// Parse server data
- const data = JSON.parse($('#updatenotification').attr('data-json'))
+ const data = loadState('updatenotification', 'data')
this.newVersion = data.newVersion
this.newVersionString = data.newVersionString
this.lastCheckedDate = data.lastChecked
this.isUpdateChecked = data.isUpdateChecked
+ this.webUpdaterEnabled = data.webUpdaterEnabled
+ this.isWebUpdaterRecommended = data.isWebUpdaterRecommended
this.updaterEnabled = data.updaterEnabled
this.downloadLink = data.downloadLink
this.isNewVersionAvailable = data.isNewVersionAvailable
@@ -342,103 +396,91 @@ export default {
this.whatsNewData = this.whatsNewData.concat(data.changes.whatsNew.regular)
}
},
- mounted() {
- this._$el = $(this.$el)
- this._$notifyGroups = this._$el.find('#oca_updatenotification_groups_list')
- this._$notifyGroups.on('change', function() {
- this.$emit('input')
- }.bind(this))
-
- $.ajax({
- url: generateOcsUrl('cloud', 2) + '/groups',
- dataType: 'json',
- success: function(data) {
- const results = []
- $.each(data.ocs.data.groups, function(i, group) {
- results.push({ value: group, label: group })
- })
- this.availableGroups = results
- this.enableChangeWatcher = true
- }.bind(this),
- })
+ mounted() {
+ this.searchGroup()
},
methods: {
+ searchGroup: debounce(async function(query) {
+ this.loadingGroups = true
+ try {
+ const response = await axios.get(generateOcsUrl('cloud/groups/details'), {
+ search: query,
+ limit: 20,
+ offset: 0,
+ })
+ this.groups = response.data.ocs.data.groups.sort(function(a, b) {
+ return a.displayname.localeCompare(b.displayname)
+ })
+ } catch (err) {
+ logger.error('Could not fetch groups', err)
+ } finally {
+ this.loadingGroups = false
+ }
+ }, 500),
/**
- * Creates a new authentication token and loads the updater URL
- */
+ * Creates a new authentication token and loads the updater URL
+ */
clickUpdaterButton() {
- $.ajax({
- url: generateUrl('/apps/updatenotification/credentials'),
- }).success(function(token) {
+ axios.get(generateUrl('/apps/updatenotification/credentials'))
+ .then(({ data }) => {
// create a form to send a proper post request to the updater
- const form = document.createElement('form')
- form.setAttribute('method', 'post')
- form.setAttribute('action', getRootUrl() + '/updater/')
+ const form = document.createElement('form')
+ form.setAttribute('method', 'post')
+ form.setAttribute('action', getRootUrl() + '/updater/')
- const hiddenField = document.createElement('input')
- hiddenField.setAttribute('type', 'hidden')
- hiddenField.setAttribute('name', 'updater-secret-input')
- hiddenField.setAttribute('value', token)
+ const hiddenField = document.createElement('input')
+ hiddenField.setAttribute('type', 'hidden')
+ hiddenField.setAttribute('name', 'updater-secret-input')
+ hiddenField.setAttribute('value', data)
- form.appendChild(hiddenField)
+ form.appendChild(hiddenField)
- document.body.appendChild(form)
- form.submit()
- })
- },
- changeReleaseChannelToEnterprise() {
- this.changeReleaseChannel('enterprise')
- },
- changeReleaseChannelToStable() {
- this.changeReleaseChannel('stable')
+ document.body.appendChild(form)
+ form.submit()
+ })
},
- changeReleaseChannelToBeta() {
- this.changeReleaseChannel('beta')
+
+ isNonDefaultChannel(channel) {
+ return !['enterprise', 'stable', 'beta'].includes(channel)
},
+
changeReleaseChannel(channel) {
+ if (this.isNonDefaultChannel(channel)) {
+ return
+ }
+
this.currentChannel = channel
- $.ajax({
- url: generateUrl('/apps/updatenotification/channel'),
- type: 'POST',
- data: {
- channel: this.currentChannel,
- },
- success(data) {
- OC.msg.finishedAction('#channel_save_msg', data)
- },
+ axios.post(generateUrl('/apps/updatenotification/channel'), {
+ channel: this.currentChannel,
+ }).then(({ data }) => {
+ showSuccess(data.data.message)
})
this.openedUpdateChannelMenu = false
},
- toggleUpdateChannelMenu() {
- this.openedUpdateChannelMenu = !this.openedUpdateChannelMenu
- },
toggleHideMissingUpdates() {
this.hideMissingUpdates = !this.hideMissingUpdates
},
toggleHideAvailableUpdates() {
this.hideAvailableUpdates = !this.hideAvailableUpdates
},
- toggleMenu() {
- this.openedWhatsNew = !this.openedWhatsNew
- },
- closeUpdateChannelMenu() {
- this.openedUpdateChannelMenu = false
- },
- hideMenu() {
- this.openedWhatsNew = false
- },
},
}
</script>
<style lang="scss" scoped>
#updatenotification {
- margin-top: -25px;
- margin-bottom: 200px;
+ & > * {
+ max-width: 900px;
+ }
+
+ .topMargin {
+ margin-top: 15px;
+ }
+
div.update,
p:not(.inlineblock) {
margin-bottom: 25px;
@@ -447,18 +489,18 @@ export default {
margin-top: 25px;
}
h3 {
- cursor: pointer;
- .icon {
+ &.clickable {
cursor: pointer;
- }
- &:first-of-type {
- margin-top: 0;
- }
- &.update-channel-selector {
- display: inline-block;
- cursor: inherit;
+ .icon {
+ cursor: pointer;
+ }
}
}
+ .update-channel-selector {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ }
.icon {
display: inline-block;
margin-bottom: -3px;
@@ -466,64 +508,20 @@ export default {
.icon-triangle-s, .icon-triangle-n {
opacity: 0.5;
}
- .whatsNew {
- display: inline-block;
- }
- .toggleWhatsNew {
- position: relative;
- }
- .popovermenu {
- p {
- margin-bottom: 0;
- width: 100%;
- }
- margin-top: 5px;
- width: 300px;
- }
.applist {
margin-bottom: 25px;
}
-
- .update-menu {
- position: relative;
- cursor: pointer;
- margin-left: 3px;
- display: inline-block;
- .icon-update-menu {
- cursor: inherit;
- .icon-triangle-s {
- display: inline-block;
- vertical-align: middle;
- cursor: inherit;
- opacity: 1;
- }
- }
- .popovermenu {
- display: none;
- top: 28px;
- &.show-menu {
- display: block;
- }
- }
- }
}
</style>
<style lang="scss">
- /* override needed to make menu wider */
- #updatenotification .popovermenu {
- p {
- margin-top: 5px;
- width: 100%;
+#updatenotification {
+ /* override NcSelect styling so that label can have correct width */
+ #notify-members-settings-select-wrapper {
+ width: fit-content;
+
+ .vs__dropdown-toggle {
+ min-width: 100%;
}
- margin-top: 5px;
- width: 300px;
- }
- /* override needed to replace yellow hover state with a dark one */
- #updatenotification .update-menu .icon-star:hover,
- #updatenotification .update-menu .icon-star:focus {
- background-image: var(--icon-star-000);
- }
- #updatenotification .topMargin {
- margin-top: 15px;
}
+}
</style>
diff --git a/apps/updatenotification/src/composables/useMarkdown.ts b/apps/updatenotification/src/composables/useMarkdown.ts
new file mode 100644
index 00000000000..71b496a10b3
--- /dev/null
+++ b/apps/updatenotification/src/composables/useMarkdown.ts
@@ -0,0 +1,66 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { Ref } from 'vue'
+
+import { marked } from 'marked'
+import { computed } from 'vue'
+import dompurify from 'dompurify'
+
+export const useMarkdown = (text: Ref<string|undefined|null>, minHeadingLevel: Ref<number|undefined>) => {
+ const minHeading = computed(() => Math.min(Math.max(minHeadingLevel.value ?? 1, 1), 6))
+ const renderer = new marked.Renderer()
+
+ renderer.link = function(href, title, text) {
+ let out = `<a href="${href}" rel="noreferrer noopener" target="_blank"`
+ if (title) {
+ out += ' title="' + title + '"'
+ }
+ out += '>' + text + '</a>'
+ return out
+ }
+
+ renderer.image = function(href, title, text) {
+ if (text) {
+ return text
+ }
+ return title ?? ''
+ }
+
+ renderer.heading = (text: string, level: number) => {
+ const headingLevel = Math.max(minHeading.value, level)
+ return `<h${headingLevel}>${text}</h${headingLevel}>`
+ }
+
+ const html = computed(() => dompurify.sanitize(
+ marked((text.value ?? '').trim(), {
+ renderer,
+ gfm: false,
+ breaks: false,
+ pedantic: false,
+ }),
+ {
+ SAFE_FOR_JQUERY: true,
+ ALLOWED_TAGS: [
+ 'h1',
+ 'h2',
+ 'h3',
+ 'h4',
+ 'h5',
+ 'h6',
+ 'strong',
+ 'p',
+ 'a',
+ 'ul',
+ 'ol',
+ 'li',
+ 'em',
+ 'del',
+ 'blockquote',
+ ],
+ },
+ ))
+
+ return { html }
+}
diff --git a/apps/updatenotification/src/init.js b/apps/updatenotification/src/init.js
deleted file mode 100644
index 794c4ff77a3..00000000000
--- a/apps/updatenotification/src/init.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * @copyright Copyright (c) 2018 Joas Schilling <coding@schilljs.com>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-import Vue from 'vue'
-import Root from './components/UpdateNotification'
-
-Vue.mixin({
- methods: {
- t(app, text, vars, count, options) {
- return OC.L10N.translate(app, text, vars, count, options)
- },
- n(app, textSingular, textPlural, count, vars, options) {
- return OC.L10N.translatePlural(app, textSingular, textPlural, count, vars, options)
- },
- },
-})
-
-// eslint-disable-next-line no-new
-new Vue({
- el: '#updatenotification',
- render: h => h(Root),
-})
diff --git a/apps/updatenotification/src/init.ts b/apps/updatenotification/src/init.ts
new file mode 100644
index 00000000000..d82272bf4b2
--- /dev/null
+++ b/apps/updatenotification/src/init.ts
@@ -0,0 +1,82 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { INavigationEntry } from '../../../core/src/types/navigation'
+
+import { subscribe } from '@nextcloud/event-bus'
+import { loadState } from '@nextcloud/initial-state'
+import { generateOcsUrl } from '@nextcloud/router'
+import Vue, { defineAsyncComponent } from 'vue'
+import axios from '@nextcloud/axios'
+
+const navigationEntries = loadState<INavigationEntry[]>('core', 'apps', [])
+
+const DialogVue = defineAsyncComponent(() => import('./components/AppChangelogDialog.vue'))
+
+/**
+ * Show the app changelog dialog
+ *
+ * @param appId The app to show the changelog for
+ * @param version Optional version to show
+ */
+function showDialog(appId: string, version?: string) {
+ const element = document.createElement('div')
+ document.body.appendChild(element)
+
+ return new Promise((resolve) => {
+ let dismissed = false
+
+ const dialog = new Vue({
+ el: element,
+ render: (h) => h(DialogVue, {
+ props: {
+ appId,
+ version,
+ },
+ on: {
+ dismiss: () => { dismissed = true },
+ 'update:open': (open: boolean) => {
+ if (!open) {
+ dialog.$destroy?.()
+ resolve(dismissed)
+
+ const app = navigationEntries.find(({ app }) => app === appId)
+ if (dismissed && app !== undefined) {
+ window.location.href = app.href
+ }
+ }
+ },
+ },
+ }),
+ })
+ })
+}
+
+interface INotificationActionEvent {
+ cancelAction: boolean
+ notification: Readonly<{
+ notificationId: number
+ objectId: string
+ objectType: string
+ }>
+ action: Readonly<{
+ url: string
+ type: 'WEB'|'GET'|'POST'|'DELETE'
+ }>,
+}
+
+subscribe('notifications:action:execute', (event: INotificationActionEvent) => {
+ if (event.notification.objectType === 'app_updated') {
+ event.cancelAction = true
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const [_, app, version, __] = event.action.url.match(/(?<=\/)([^?]+)?version=((\d+.?)+)/) ?? []
+ showDialog((app as string|undefined) || (event.notification.objectId as string), version)
+ .then((dismissed) => {
+ if (dismissed) {
+ axios.delete(generateOcsUrl('apps/notifications/api/v2/notifications/{id}', { id: event.notification.notificationId }))
+ }
+ })
+ }
+})
diff --git a/apps/updatenotification/src/update-notification-legacy.ts b/apps/updatenotification/src/update-notification-legacy.ts
new file mode 100644
index 00000000000..5809c1761dc
--- /dev/null
+++ b/apps/updatenotification/src/update-notification-legacy.ts
@@ -0,0 +1,24 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import { showInfo } from '@nextcloud/dialogs'
+import { loadState } from '@nextcloud/initial-state'
+import { t } from '@nextcloud/l10n'
+
+interface IUpdateNotificationState {
+ updateLink: string
+ updateVersion: string
+}
+
+/**
+ * This only gets loaded if an update is available and the notifications app is not enabled for the user.
+ */
+window.addEventListener('DOMContentLoaded', function() {
+ const { updateLink, updateVersion } = loadState<IUpdateNotificationState>('updatenotification', 'updateState')
+ const text = t('core', '{version} is available. Get more information on how to update.', { version: updateVersion })
+
+ // On click open the update link in a new tab
+ showInfo(text, { onClick: () => window.open(updateLink, '_blank') })
+})
diff --git a/apps/updatenotification/src/updatenotification.js b/apps/updatenotification/src/updatenotification.js
new file mode 100644
index 00000000000..44b783e1454
--- /dev/null
+++ b/apps/updatenotification/src/updatenotification.js
@@ -0,0 +1,25 @@
+/**
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import { translate, translatePlural } from '@nextcloud/l10n'
+
+import Vue from 'vue'
+import Root from './components/UpdateNotification.vue'
+
+Vue.mixin({
+ methods: {
+ t(app, text, vars, count, options) {
+ return translate(app, text, vars, count, options)
+ },
+ n(app, textSingular, textPlural, count, vars, options) {
+ return translatePlural(app, textSingular, textPlural, count, vars, options)
+ },
+ },
+})
+
+// eslint-disable-next-line no-new
+new Vue({
+ el: '#updatenotification',
+ render: h => h(Root),
+})
diff --git a/apps/updatenotification/src/view-changelog-page.ts b/apps/updatenotification/src/view-changelog-page.ts
new file mode 100644
index 00000000000..d7f8e84680d
--- /dev/null
+++ b/apps/updatenotification/src/view-changelog-page.ts
@@ -0,0 +1,12 @@
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import Vue from 'vue'
+import App from './views/App.vue'
+
+export default new Vue({
+ name: 'ViewChangelogPage',
+ render: (h) => h(App),
+ el: '#content',
+})
diff --git a/apps/updatenotification/src/views/App.vue b/apps/updatenotification/src/views/App.vue
new file mode 100644
index 00000000000..8bf1d86dfe2
--- /dev/null
+++ b/apps/updatenotification/src/views/App.vue
@@ -0,0 +1,43 @@
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<template>
+ <NcContent app-name="updatenotification">
+ <NcAppContent :page-heading="t('updatenotification', 'Changelog for app {app}', { app: appName })">
+ <div class="changelog__wrapper">
+ <h2 class="changelog__heading">
+ {{ t('updatenotification', 'What\'s new in {app} version {version}', { app: appName, version: appVersion }) }}
+ </h2>
+ <Markdown :markdown="markdown" :min-heading-level="3" />
+ </div>
+ </NcAppContent>
+ </NcContent>
+</template>
+
+<script setup lang="ts">
+import { translate as t } from '@nextcloud/l10n'
+import { loadState } from '@nextcloud/initial-state'
+
+import NcAppContent from '@nextcloud/vue/components/NcAppContent'
+import NcContent from '@nextcloud/vue/components/NcContent'
+import Markdown from '../components/Markdown.vue'
+
+const {
+ appName,
+ appVersion,
+ text: markdown,
+} = loadState<{ appName: string, appVersion: string, text: string }>('updatenotification', 'changelog')
+</script>
+
+<style scoped>
+.changelog__wrapper {
+ max-width: max(50vw,700px);
+ margin-inline: auto;
+}
+
+.changelog__heading {
+ font-size: 30px;
+ margin-block: var(--app-navigation-padding, 8px) 1em;
+}
+</style>
diff --git a/apps/updatenotification/templates/admin.php b/apps/updatenotification/templates/admin.php
index 24a83184ccd..dc8839a9866 100644
--- a/apps/updatenotification/templates/admin.php
+++ b/apps/updatenotification/templates/admin.php
@@ -1,14 +1,10 @@
<?php
declare(strict_types=1);
/**
- * @copyright (c) 2018 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-script('updatenotification', 'updatenotification');
-/** @var array $_ */
+\OCP\Util::addScript('updatenotification', 'updatenotification');
?>
-<div id="updatenotification" data-json="<?php p($_['json']); ?>"></div>
+
+<div id="updatenotification"></div>
diff --git a/apps/updatenotification/templates/empty.php b/apps/updatenotification/templates/empty.php
new file mode 100644
index 00000000000..6e020c591ed
--- /dev/null
+++ b/apps/updatenotification/templates/empty.php
@@ -0,0 +1,8 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ *
+ * Empty as Vue will take over
+ */
diff --git a/apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php b/apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php
new file mode 100644
index 00000000000..c03d4c48827
--- /dev/null
+++ b/apps/updatenotification/tests/BackgroundJob/ResetTokenTest.php
@@ -0,0 +1,93 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCA\UpdateNotification\Tests;
+
+use OCA\UpdateNotification\BackgroundJob\ResetToken as BackgroundJobResetToken;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\IAppConfig;
+use OCP\IConfig;
+use PHPUnit\Framework\MockObject\MockObject;
+use Test\TestCase;
+
+class ResetTokenTest extends TestCase {
+ private IConfig&MockObject $config;
+ private IAppConfig&MockObject $appConfig;
+ private ITimeFactory&MockObject $timeFactory;
+ private BackgroundJobResetToken $resetTokenBackgroundJob;
+
+ protected function setUp(): void {
+ parent::setUp();
+ $this->appConfig = $this->createMock(IAppConfig::class);
+ $this->config = $this->createMock(IConfig::class);
+ $this->timeFactory = $this->createMock(ITimeFactory::class);
+ $this->resetTokenBackgroundJob = new BackgroundJobResetToken(
+ $this->timeFactory,
+ $this->config,
+ $this->appConfig,
+ );
+ }
+
+ public function testRunWithNotExpiredToken(): void {
+ $this->timeFactory
+ ->expects($this->atLeastOnce())
+ ->method('getTime')
+ ->willReturn(123);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('getValueInt')
+ ->with('core', 'updater.secret.created', 123);
+ $this->config
+ ->expects($this->once())
+ ->method('getSystemValueBool')
+ ->with('config_is_read_only')
+ ->willReturn(false);
+ $this->config
+ ->expects($this->never())
+ ->method('deleteSystemValue');
+
+ static::invokePrivate($this->resetTokenBackgroundJob, 'run', [null]);
+ }
+
+ public function testRunWithExpiredToken(): void {
+ $this->timeFactory
+ ->expects($this->once())
+ ->method('getTime')
+ ->willReturn(1455045234);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('getValueInt')
+ ->with('core', 'updater.secret.created', 1455045234)
+ ->willReturn(2 * 24 * 60 * 60 + 1); // over 2 days
+ $this->config
+ ->expects($this->once())
+ ->method('deleteSystemValue')
+ ->with('updater.secret');
+
+ static::invokePrivate($this->resetTokenBackgroundJob, 'run', [null]);
+ }
+
+ public function testRunWithExpiredTokenAndReadOnlyConfigFile(): void {
+ $this->timeFactory
+ ->expects($this->never())
+ ->method('getTime');
+ $this->appConfig
+ ->expects($this->never())
+ ->method('getValueInt');
+ $this->config
+ ->expects($this->once())
+ ->method('getSystemValueBool')
+ ->with('config_is_read_only')
+ ->willReturn(true);
+ $this->config
+ ->expects($this->never())
+ ->method('deleteSystemValue');
+
+ static::invokePrivate($this->resetTokenBackgroundJob, 'run', [null]);
+ }
+}
diff --git a/apps/updatenotification/tests/Notification/BackgroundJobTest.php b/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php
index 09b1cb06d5a..26a5ecde052 100644
--- a/apps/updatenotification/tests/Notification/BackgroundJobTest.php
+++ b/apps/updatenotification/tests/BackgroundJob/UpdateAvailableNotificationsTest.php
@@ -3,101 +3,88 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
-namespace OCA\UpdateNotification\Tests\Notification;
+namespace OCA\UpdateNotification\Tests\BackgroundJob;
use OC\Installer;
use OC\Updater\VersionCheck;
-use OCA\UpdateNotification\Notification\BackgroundJob;
+use OCA\UpdateNotification\BackgroundJob\UpdateAvailableNotifications;
use OCP\App\IAppManager;
-use OCP\Http\Client\IClientService;
+use OCP\AppFramework\Services\IAppConfig;
+use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IConfig;
use OCP\IGroup;
use OCP\IGroupManager;
use OCP\IUser;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
+use OCP\ServerVersion;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
-class BackgroundJobTest extends TestCase {
-
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $notificationManager;
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupManager;
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $appManager;
- /** @var IClientService|\PHPUnit\Framework\MockObject\MockObject */
- protected $client;
- /** @var Installer|\PHPUnit\Framework\MockObject\MockObject */
- protected $installer;
+class UpdateAvailableNotificationsTest extends TestCase {
+ private ServerVersion&MockObject $serverVersion;
+ private IConfig&MockObject $config;
+ private IManager&MockObject $notificationManager;
+ private IGroupManager&MockObject $groupManager;
+ private IAppManager&MockObject $appManager;
+ private IAppConfig&MockObject $appConfig;
+ private ITimeFactory&MockObject $timeFactory;
+ private Installer&MockObject $installer;
+ private VersionCheck&MockObject $versionCheck;
protected function setUp(): void {
parent::setUp();
+ $this->serverVersion = $this->createMock(ServerVersion::class);
$this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
$this->notificationManager = $this->createMock(IManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->appManager = $this->createMock(IAppManager::class);
- $this->client = $this->createMock(IClientService::class);
+ $this->timeFactory = $this->createMock(ITimeFactory::class);
$this->installer = $this->createMock(Installer::class);
+ $this->versionCheck = $this->createMock(VersionCheck::class);
}
/**
- * @param array $methods
- * @return BackgroundJob|\PHPUnit\Framework\MockObject\MockObject
+ * @return UpdateAvailableNotifications|MockObject
*/
- protected function getJob(array $methods = []) {
+ protected function getJob(array $methods = []): UpdateAvailableNotifications {
if (empty($methods)) {
- return new BackgroundJob(
+ return new UpdateAvailableNotifications(
+ $this->timeFactory,
+ $this->serverVersion,
$this->config,
+ $this->appConfig,
$this->notificationManager,
$this->groupManager,
$this->appManager,
- $this->client,
- $this->installer
+ $this->installer,
+ $this->versionCheck,
);
}
{
- return $this->getMockBuilder(BackgroundJob::class)
+ return $this->getMockBuilder(UpdateAvailableNotifications::class)
->setConstructorArgs([
+ $this->timeFactory,
+ $this->serverVersion,
$this->config,
+ $this->appConfig,
$this->notificationManager,
$this->groupManager,
$this->appManager,
- $this->client,
$this->installer,
+ $this->versionCheck,
])
- ->setMethods($methods)
+ ->onlyMethods($methods)
->getMock();
}
}
- public function testRun() {
+ public function testRun(): void {
$job = $this->getJob([
'checkCoreUpdate',
'checkAppUpdates',
@@ -108,10 +95,36 @@ class BackgroundJobTest extends TestCase {
$job->expects($this->once())
->method('checkAppUpdates');
+ $this->config->expects(self::exactly(2))
+ ->method('getSystemValueBool')
+ ->willReturnMap([
+ ['debug', false, true],
+ ['has_internet_connection', true, true],
+ ]);
self::invokePrivate($job, 'run', [null]);
}
- public function dataCheckCoreUpdate(): array {
+ public function testRunNoInternet(): void {
+ $job = $this->getJob([
+ 'checkCoreUpdate',
+ 'checkAppUpdates',
+ ]);
+
+ $job->expects($this->never())
+ ->method('checkCoreUpdate');
+ $job->expects($this->never())
+ ->method('checkAppUpdates');
+
+ $this->config
+ ->expects(self::once())
+ ->method('getSystemValueBool')
+ ->with('has_internet_connection', true)
+ ->willReturn(false);
+
+ self::invokePrivate($job, 'run', [null]);
+ }
+
+ public static function dataCheckCoreUpdate(): array {
return [
['daily', null, null, null, null],
['git', null, null, null, null],
@@ -139,40 +152,25 @@ class BackgroundJobTest extends TestCase {
];
}
- /**
- * @dataProvider dataCheckCoreUpdate
- *
- * @param string $channel
- * @param mixed $versionCheck
- * @param null|string $version
- * @param null|string $readableVersion
- * @param null|int $errorDays
- */
- public function testCheckCoreUpdate(string $channel, $versionCheck, $version, $readableVersion, $errorDays) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCheckCoreUpdate')]
+ public function testCheckCoreUpdate(string $channel, mixed $versionCheck, mixed $version, ?string $readableVersion, ?int $errorDays): void {
$job = $this->getJob([
- 'getChannel',
- 'createVersionCheck',
'createNotifications',
'clearErrorNotifications',
'sendErrorNotifications',
]);
- $job->expects($this->once())
+ $this->serverVersion->expects($this->once())
->method('getChannel')
->willReturn($channel);
if ($versionCheck === null) {
- $job->expects($this->never())
- ->method('createVersionCheck');
+ $this->versionCheck->expects($this->never())
+ ->method('check');
} else {
- $check = $this->createMock(VersionCheck::class);
- $check->expects($this->once())
+ $this->versionCheck->expects($this->once())
->method('check')
->willReturn($versionCheck);
-
- $job->expects($this->once())
- ->method('createVersionCheck')
- ->willReturn($check);
}
if ($version === null) {
@@ -186,19 +184,19 @@ class BackgroundJobTest extends TestCase {
$job->expects($this->never())
->method('clearErrorNotifications');
- $this->config->expects($this->once())
- ->method('getAppValue')
- ->willReturn($errorDays);
- $this->config->expects($this->once())
- ->method('setAppValue')
- ->with('updatenotification', 'update_check_errors', $errorDays + 1);
+ $this->appConfig->expects($this->once())
+ ->method('getAppValueInt')
+ ->willReturn($errorDays ?? 0);
+ $this->appConfig->expects($this->once())
+ ->method('setAppValueInt')
+ ->with('update_check_errors', $errorDays + 1);
$job->expects($errorDays !== null ? $this->once() : $this->never())
->method('sendErrorNotifications')
->with($errorDays + 1);
} else {
- $this->config->expects($this->once())
- ->method('setAppValue')
- ->with('updatenotification', 'update_check_errors', 0);
+ $this->appConfig->expects($this->once())
+ ->method('setAppValueInt')
+ ->with('update_check_errors', 0);
$job->expects($this->once())
->method('clearErrorNotifications');
$job->expects($this->once())
@@ -206,10 +204,17 @@ class BackgroundJobTest extends TestCase {
->with('core', $version, $readableVersion);
}
+ $this->config->expects(self::any())
+ ->method('getSystemValueBool')
+ ->willReturnMap([
+ ['updatechecker', true, true],
+ ['has_internet_connection', true, true],
+ ]);
+
self::invokePrivate($job, 'checkCoreUpdate');
}
- public function dataCheckAppUpdates(): array {
+ public static function dataCheckAppUpdates(): array {
return [
[
['app1', 'app2'],
@@ -218,41 +223,40 @@ class BackgroundJobTest extends TestCase {
['app2', '1.9.2'],
],
[
- ['app2', '1.9.2'],
+ ['app2', '1.9.2', ''],
],
],
];
}
- /**
- * @dataProvider dataCheckAppUpdates
- *
- * @param string[] $apps
- * @param array $isUpdateAvailable
- * @param array $notifications
- */
- public function testCheckAppUpdates(array $apps, array $isUpdateAvailable, array $notifications) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCheckAppUpdates')]
+ public function testCheckAppUpdates(array $apps, array $isUpdateAvailable, array $notifications): void {
$job = $this->getJob([
'isUpdateAvailable',
'createNotifications',
]);
$this->appManager->expects($this->once())
- ->method('getInstalledApps')
+ ->method('getEnabledApps')
->willReturn($apps);
$job->expects($this->exactly(\count($apps)))
->method('isUpdateAvailable')
->willReturnMap($isUpdateAvailable);
- $mockedMethod = $job->expects($this->exactly(\count($notifications)))
- ->method('createNotifications');
- \call_user_func_array([$mockedMethod, 'withConsecutive'], $notifications);
+ $i = 0;
+ $job->expects($this->exactly(\count($notifications)))
+ ->method('createNotifications')
+ ->willReturnCallback(function () use ($notifications, &$i): void {
+ $this->assertEquals($notifications[$i], func_get_args());
+ $i++;
+ });
+
self::invokePrivate($job, 'checkAppUpdates');
}
- public function dataCreateNotifications(): array {
+ public static function dataCreateNotifications(): array {
return [
['app1', '1.0.0', '1.0.0', false, false, null, null],
['app2', '1.0.1', '1.0.0', '1.0.0', true, ['user1'], [['user1']]],
@@ -260,32 +264,22 @@ class BackgroundJobTest extends TestCase {
];
}
- /**
- * @dataProvider dataCreateNotifications
- *
- * @param string $app
- * @param string $version
- * @param string|false $lastNotification
- * @param string|false $callDelete
- * @param bool $createNotification
- * @param string[]|null $users
- * @param array|null $userNotifications
- */
- public function testCreateNotifications(string $app, string $version, $lastNotification, $callDelete, $createNotification, $users, $userNotifications) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataCreateNotifications')]
+ public function testCreateNotifications(string $app, string $version, string|false $lastNotification, string|false $callDelete, bool $createNotification, ?array $users, ?array $userNotifications): void {
$job = $this->getJob([
'deleteOutdatedNotifications',
'getUsersToNotify',
]);
- $this->config->expects($this->once())
- ->method('getAppValue')
- ->with('updatenotification', $app, false)
- ->willReturn($lastNotification);
+ $this->appConfig->expects($this->once())
+ ->method('getAppValueString')
+ ->with($app, '')
+ ->willReturn($lastNotification ?: '');
if ($lastNotification !== $version) {
- $this->config->expects($this->once())
- ->method('setAppValue')
- ->with('updatenotification', $app, $version);
+ $this->appConfig->expects($this->once())
+ ->method('setAppValueString')
+ ->with($app, $version);
}
if ($callDelete === false) {
@@ -325,14 +319,12 @@ class BackgroundJobTest extends TestCase {
->willReturnSelf();
if ($userNotifications !== null) {
- $mockedMethod = $notification->expects($this->exactly(\count($userNotifications)))
+ $notification->expects($this->exactly(\count($userNotifications)))
->method('setUser')
->willReturnSelf();
- \call_user_func_array([$mockedMethod, 'withConsecutive'], $userNotifications);
$this->notificationManager->expects($this->exactly(\count($userNotifications)))
- ->method('notify')
- ->willReturn($notification);
+ ->method('notify');
}
$this->notificationManager->expects($this->once())
@@ -346,26 +338,21 @@ class BackgroundJobTest extends TestCase {
self::invokePrivate($job, 'createNotifications', [$app, $version]);
}
- public function dataGetUsersToNotify(): array {
+ public static function dataGetUsersToNotify(): array {
return [
[['g1', 'g2'], ['g1' => null, 'g2' => ['u1', 'u2']], ['u1', 'u2']],
[['g3', 'g4'], ['g3' => ['u1', 'u2'], 'g4' => ['u2', 'u3']], ['u1', 'u2', 'u3']],
];
}
- /**
- * @dataProvider dataGetUsersToNotify
- * @param string[] $groups
- * @param array $groupUsers
- * @param string[] $expected
- */
- public function testGetUsersToNotify(array $groups, array $groupUsers, array $expected) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetUsersToNotify')]
+ public function testGetUsersToNotify(array $groups, array $groupUsers, array $expected): void {
$job = $this->getJob();
- $this->config->expects($this->once())
- ->method('getAppValue')
- ->with('updatenotification', 'notify_groups', '["admin"]')
- ->willReturn(json_encode($groups));
+ $this->appConfig->expects($this->once())
+ ->method('getAppValueArray')
+ ->with('notify_groups', ['admin'])
+ ->willReturn($groups);
$groupMap = [];
foreach ($groupUsers as $gid => $uids) {
@@ -391,7 +378,7 @@ class BackgroundJobTest extends TestCase {
$this->assertEquals($expected, $result);
}
- public function dataDeleteOutdatedNotifications(): array {
+ public static function dataDeleteOutdatedNotifications(): array {
return [
['app1', '1.1.0'],
['app2', '1.2.0'],
@@ -399,11 +386,11 @@ class BackgroundJobTest extends TestCase {
}
/**
- * @dataProvider dataDeleteOutdatedNotifications
* @param string $app
* @param string $version
*/
- public function testDeleteOutdatedNotifications(string $app, string $version) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataDeleteOutdatedNotifications')]
+ public function testDeleteOutdatedNotifications(string $app, string $version): void {
$notification = $this->createMock(INotification::class);
$notification->expects($this->once())
->method('setApp')
@@ -427,7 +414,7 @@ class BackgroundJobTest extends TestCase {
/**
* @param string[] $userIds
- * @return IUser[]|\PHPUnit\Framework\MockObject\MockObject[]
+ * @return IUser[]|MockObject[]
*/
protected function getUsers(array $userIds): array {
$users = [];
@@ -443,7 +430,7 @@ class BackgroundJobTest extends TestCase {
/**
* @param string $gid
- * @return \OCP\IGroup|\PHPUnit\Framework\MockObject\MockObject
+ * @return IGroup|MockObject
*/
protected function getGroup(string $gid) {
$group = $this->createMock(IGroup::class);
diff --git a/apps/updatenotification/tests/Controller/APIControllerTest.php b/apps/updatenotification/tests/Controller/APIControllerTest.php
new file mode 100644
index 00000000000..84973e64c22
--- /dev/null
+++ b/apps/updatenotification/tests/Controller/APIControllerTest.php
@@ -0,0 +1,160 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\UpdateNotification\Tests\Controller;
+
+use OC\App\AppStore\Fetcher\AppFetcher;
+use OCA\UpdateNotification\AppInfo\Application;
+use OCA\UpdateNotification\Controller\APIController;
+use OCA\UpdateNotification\Manager;
+use OCP\App\IAppManager;
+use OCP\AppFramework\Http;
+use OCP\IConfig;
+use OCP\IRequest;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
+use PHPUnit\Framework\MockObject\MockObject;
+use Test\TestCase;
+
+class APIControllerTest extends TestCase {
+ private IRequest&MockObject $request;
+ private IConfig&MockObject $config;
+ private IAppManager&MockObject $appManager;
+ private AppFetcher&MockObject $appFetcher;
+ private IFactory&MockObject $l10nFactory;
+ private IUserSession&MockObject $userSession;
+ private Manager&MockObject $manager;
+
+ private APIController $apiController;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->request = $this->createMock(IRequest::class);
+ $this->config = $this->createMock(IConfig::class);
+ $this->appManager = $this->createMock(IAppManager::class);
+ $this->appFetcher = $this->createMock(AppFetcher::class);
+ $this->l10nFactory = $this->createMock(IFactory::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->manager = $this->createMock(Manager::class);
+
+ $this->apiController = new APIController(
+ Application::APP_NAME,
+ $this->request,
+ $this->config,
+ $this->appManager,
+ $this->appFetcher,
+ $this->l10nFactory,
+ $this->userSession,
+ $this->manager,
+ );
+ }
+
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataGetAppChangelog')]
+ public function testGetAppChangelogEntry(
+ array $params,
+ bool $hasChanges,
+ array $appInfo,
+ array $expected,
+ ): void {
+ $this->appManager->method('getAppInfo')
+ ->with('the-app')
+ ->willReturn($appInfo);
+ $this->appManager->method('getAppVersion')
+ ->with('the-app')
+ ->willReturn($appInfo['version']);
+ $this->manager->method('getChangelog')
+ ->with('the-app', self::anything())
+ ->willReturnCallback(fn ($app, $version) => $hasChanges ? "$app v$version" : null);
+
+ $result = $this->apiController->getAppChangelogEntry(...$params);
+ $this->assertEquals($result->getStatus(), $expected['status']);
+ $this->assertEquals($result->getData(), $expected['data']);
+ }
+
+ public static function dataGetAppChangelog(): array {
+ return [
+ 'no changes found' => [
+ ['the-app', null],
+ false,
+ [
+ 'name' => 'Localized name',
+ 'version' => '1.0.0',
+ ],
+ [
+ 'status' => Http::STATUS_NOT_FOUND,
+ 'data' => [],
+ ]
+ ],
+ 'changes with version parameter' => [
+ ['the-app', '1.0.0'],
+ true,
+ [
+ 'name' => 'Localized name',
+ 'version' => '1.2.0', // installed version
+ ],
+ [
+ 'status' => Http::STATUS_OK,
+ 'data' => [
+ 'appName' => 'Localized name',
+ 'content' => 'the-app v1.0.0',
+ 'version' => '1.0.0',
+ ],
+ ]
+ ],
+ 'changes without version parameter' => [
+ ['the-app', null],
+ true,
+ [
+ 'name' => 'Localized name',
+ 'version' => '1.2.0',
+ ],
+ [
+ 'status' => Http::STATUS_OK,
+ 'data' => [
+ 'appName' => 'Localized name',
+ 'content' => 'the-app v1.2.0',
+ 'version' => '1.2.0',
+ ],
+ ]
+ ],
+ 'changes of pre-release version' => [
+ ['the-app', null],
+ true,
+ [
+ 'name' => 'Localized name',
+ 'version' => '1.2.0-alpha.1',
+ ],
+ [
+ 'status' => Http::STATUS_OK,
+ 'data' => [
+ 'appName' => 'Localized name',
+ 'content' => 'the-app v1.2.0',
+ 'version' => '1.2.0-alpha.1',
+ ],
+ ]
+ ],
+ 'changes of pre-release version as parameter' => [
+ ['the-app', '1.2.0-alpha.2'],
+ true,
+ [
+ 'name' => 'Localized name',
+ 'version' => '1.2.0-beta.3',
+ ],
+ [
+ 'status' => Http::STATUS_OK,
+ 'data' => [
+ 'appName' => 'Localized name',
+ 'content' => 'the-app v1.2.0',
+ 'version' => '1.2.0-alpha.2',
+ ],
+ ]
+ ],
+ ];
+ }
+}
diff --git a/apps/updatenotification/tests/Controller/AdminControllerTest.php b/apps/updatenotification/tests/Controller/AdminControllerTest.php
index 0176301db46..2263495fc14 100644
--- a/apps/updatenotification/tests/Controller/AdminControllerTest.php
+++ b/apps/updatenotification/tests/Controller/AdminControllerTest.php
@@ -3,57 +3,34 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\UpdateNotification\Tests\Controller;
+use OCA\UpdateNotification\BackgroundJob\ResetToken;
use OCA\UpdateNotification\Controller\AdminController;
-use OCA\UpdateNotification\ResetTokenBackgroundJob;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\IJobList;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class AdminControllerTest extends TestCase {
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var IJobList|\PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
- /** @var ISecureRandom|\PHPUnit\Framework\MockObject\MockObject */
- private $secureRandom;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var AdminController */
- private $adminController;
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
- private $l10n;
+ private IRequest&MockObject $request;
+ private IJobList&MockObject $jobList;
+ private ISecureRandom&MockObject $secureRandom;
+ private IConfig&MockObject $config;
+ private ITimeFactory&MockObject $timeFactory;
+ private IL10N&MockObject $l10n;
+ private IAppConfig&MockObject $appConfig;
+
+ private AdminController $adminController;
protected function setUp(): void {
parent::setUp();
@@ -62,6 +39,7 @@ class AdminControllerTest extends TestCase {
$this->jobList = $this->createMock(IJobList::class);
$this->secureRandom = $this->createMock(ISecureRandom::class);
$this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->l10n = $this->createMock(IL10N::class);
@@ -71,16 +49,17 @@ class AdminControllerTest extends TestCase {
$this->jobList,
$this->secureRandom,
$this->config,
+ $this->appConfig,
$this->timeFactory,
$this->l10n
);
}
- public function testCreateCredentials() {
+ public function testCreateCredentials(): void {
$this->jobList
->expects($this->once())
->method('add')
- ->with(ResetTokenBackgroundJob::class);
+ ->with(ResetToken::class);
$this->secureRandom
->expects($this->once())
->method('generate')
@@ -94,9 +73,9 @@ class AdminControllerTest extends TestCase {
->expects($this->once())
->method('getTime')
->willReturn(12345);
- $this->config
+ $this->appConfig
->expects($this->once())
- ->method('setAppValue')
+ ->method('setValueInt')
->with('core', 'updater.secret.created', 12345);
$expected = new DataResponse('MyGeneratedToken');
diff --git a/apps/updatenotification/tests/Notification/NotifierTest.php b/apps/updatenotification/tests/Notification/NotifierTest.php
index 19500438f3b..aab5a84d6f3 100644
--- a/apps/updatenotification/tests/Notification/NotifierTest.php
+++ b/apps/updatenotification/tests/Notification/NotifierTest.php
@@ -3,33 +3,15 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\UpdateNotification\Tests\Notification;
use OCA\UpdateNotification\Notification\Notifier;
-use OCP\IConfig;
+use OCP\App\IAppManager;
+use OCP\AppFramework\Services\IAppConfig;
use OCP\IGroupManager;
use OCP\IURLGenerator;
use OCP\IUserSession;
@@ -37,65 +19,69 @@ use OCP\L10N\IFactory;
use OCP\Notification\AlreadyProcessedException;
use OCP\Notification\IManager;
use OCP\Notification\INotification;
+use OCP\ServerVersion;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class NotifierTest extends TestCase {
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- protected $urlGenerator;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- protected $config;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $notificationManager;
- /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10nFactory;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- protected $userSession;
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- protected $groupManager;
+ protected IURLGenerator&MockObject $urlGenerator;
+ protected IAppConfig&MockObject $appConfig;
+ protected IManager&MockObject $notificationManager;
+ protected IFactory&MockObject $l10nFactory;
+ protected IUserSession&MockObject $userSession;
+ protected IGroupManager&MockObject $groupManager;
+ protected IAppManager&MockObject $appManager;
+ protected ServerVersion&MockObject $serverVersion;
protected function setUp(): void {
parent::setUp();
$this->urlGenerator = $this->createMock(IURLGenerator::class);
- $this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
$this->notificationManager = $this->createMock(IManager::class);
$this->l10nFactory = $this->createMock(IFactory::class);
$this->userSession = $this->createMock(IUserSession::class);
$this->groupManager = $this->createMock(IGroupManager::class);
+ $this->appManager = $this->createMock(IAppManager::class);
+ $this->serverVersion = $this->createMock(ServerVersion::class);
}
/**
* @param array $methods
- * @return Notifier|\PHPUnit\Framework\MockObject\MockObject
+ * @return Notifier|MockObject
*/
- protected function getNotifier(array $methods = []) {
+ protected function getNotifier(array $methods = []): Notifier {
if (empty($methods)) {
return new Notifier(
$this->urlGenerator,
- $this->config,
+ $this->appConfig,
$this->notificationManager,
$this->l10nFactory,
$this->userSession,
- $this->groupManager
+ $this->groupManager,
+ $this->appManager,
+ $this->serverVersion,
);
}
{
return $this->getMockBuilder(Notifier::class)
->setConstructorArgs([
$this->urlGenerator,
- $this->config,
+ $this->appConfig,
$this->notificationManager,
$this->l10nFactory,
$this->userSession,
$this->groupManager,
+ $this->appManager,
+ $this->serverVersion,
])
- ->setMethods($methods)
+ ->onlyMethods($methods)
->getMock();
}
}
- public function dataUpdateAlreadyInstalledCheck(): array {
+ public static function dataUpdateAlreadyInstalledCheck(): array {
return [
['1.1.0', '1.0.0', false],
['1.1.0', '1.1.0', true],
@@ -103,14 +89,8 @@ class NotifierTest extends TestCase {
];
}
- /**
- * @dataProvider dataUpdateAlreadyInstalledCheck
- *
- * @param string $versionNotification
- * @param string $versionInstalled
- * @param bool $exception
- */
- public function testUpdateAlreadyInstalledCheck(string $versionNotification, string $versionInstalled, bool $exception) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataUpdateAlreadyInstalledCheck')]
+ public function testUpdateAlreadyInstalledCheck(string $versionNotification, string $versionInstalled, bool $exception): void {
$notifier = $this->getNotifier();
$notification = $this->createMock(INotification::class);
diff --git a/apps/updatenotification/tests/ResetTokenBackgroundJobTest.php b/apps/updatenotification/tests/ResetTokenBackgroundJobTest.php
deleted file mode 100644
index f9d09e0ad3f..00000000000
--- a/apps/updatenotification/tests/ResetTokenBackgroundJobTest.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\UpdateNotification\Tests;
-
-use OCA\UpdateNotification\ResetTokenBackgroundJob;
-use OCP\AppFramework\Utility\ITimeFactory;
-use OCP\IConfig;
-use Test\TestCase;
-
-class ResetTokenBackgroundJobTest extends TestCase {
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $timeFactory;
- /** @var ResetTokenBackgroundJob */
- private $resetTokenBackgroundJob;
-
- protected function setUp(): void {
- parent::setUp();
- $this->config = $this->createMock(IConfig::class);
- $this->timeFactory = $this->createMock(ITimeFactory::class);
- $this->resetTokenBackgroundJob = new ResetTokenBackgroundJob($this->config, $this->timeFactory);
- }
-
- public function testRunWithNotExpiredToken() {
- $this->timeFactory
- ->expects($this->atLeastOnce())
- ->method('getTime')
- ->willReturn(123);
- $this->config
- ->expects($this->once())
- ->method('getAppValue')
- ->with('core', 'updater.secret.created', 123);
- $this->config
- ->expects($this->never())
- ->method('deleteSystemValue');
-
- static::invokePrivate($this->resetTokenBackgroundJob, 'run', [null]);
- }
-
- public function testRunWithExpiredToken() {
- $this->timeFactory
- ->expects($this->at(0))
- ->method('getTime')
- ->willReturn(1455131633);
- $this->timeFactory
- ->expects($this->at(1))
- ->method('getTime')
- ->willReturn(1455045234);
- $this->config
- ->expects($this->once())
- ->method('getAppValue')
- ->with('core', 'updater.secret.created', 1455045234);
- $this->config
- ->expects($this->once())
- ->method('deleteSystemValue')
- ->with('updater.secret');
-
- static::invokePrivate($this->resetTokenBackgroundJob, 'run', [null]);
- }
-}
diff --git a/apps/updatenotification/tests/Settings/AdminTest.php b/apps/updatenotification/tests/Settings/AdminTest.php
index 78afc6a3ac0..0429c628049 100644
--- a/apps/updatenotification/tests/Settings/AdminTest.php
+++ b/apps/updatenotification/tests/Settings/AdminTest.php
@@ -3,104 +3,114 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\UpdateNotification\Tests\Settings;
+use OCA\UpdateNotification\AppInfo\Application;
use OCA\UpdateNotification\Settings\Admin;
use OCA\UpdateNotification\UpdateChecker;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Services\IInitialState;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IDateTimeFormatter;
use OCP\IGroup;
use OCP\IGroupManager;
+use OCP\IUserManager;
use OCP\L10N\IFactory;
use OCP\L10N\ILanguageIterator;
+use OCP\ServerVersion;
use OCP\Support\Subscription\IRegistry;
-use OCP\Util;
+use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
use Test\TestCase;
class AdminTest extends TestCase {
- /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */
- protected $l10nFactory;
- /** @var Admin */
- private $admin;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var UpdateChecker|\PHPUnit\Framework\MockObject\MockObject */
- private $updateChecker;
- /** @var IGroupManager|\PHPUnit\Framework\MockObject\MockObject */
- private $groupManager;
- /** @var IDateTimeFormatter|\PHPUnit\Framework\MockObject\MockObject */
- private $dateTimeFormatter;
- /** @var IRegistry|\PHPUnit\Framework\MockObject\MockObject */
- private $subscriptionRegistry;
+ private IFactory&MockObject $l10nFactory;
+ private IConfig&MockObject $config;
+ private IAppConfig&MockObject $appConfig;
+ private UpdateChecker&MockObject $updateChecker;
+ private IGroupManager&MockObject $groupManager;
+ private IDateTimeFormatter&MockObject $dateTimeFormatter;
+ private IRegistry&MockObject $subscriptionRegistry;
+ private IUserManager&MockObject $userManager;
+ private LoggerInterface&MockObject $logger;
+ private IInitialState&MockObject $initialState;
+ private ServerVersion&MockObject $serverVersion;
+ private Admin $admin;
protected function setUp(): void {
parent::setUp();
$this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
$this->updateChecker = $this->createMock(UpdateChecker::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->dateTimeFormatter = $this->createMock(IDateTimeFormatter::class);
$this->l10nFactory = $this->createMock(IFactory::class);
$this->subscriptionRegistry = $this->createMock(IRegistry::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
+ $this->initialState = $this->createMock(IInitialState::class);
+ $this->serverVersion = $this->createMock(ServerVersion::class);
$this->admin = new Admin(
- $this->config, $this->updateChecker, $this->groupManager, $this->dateTimeFormatter, $this->l10nFactory, $this->subscriptionRegistry
+ $this->config,
+ $this->appConfig,
+ $this->updateChecker,
+ $this->groupManager,
+ $this->dateTimeFormatter,
+ $this->l10nFactory,
+ $this->subscriptionRegistry,
+ $this->userManager,
+ $this->logger,
+ $this->initialState,
+ $this->serverVersion,
);
}
- public function testGetFormWithUpdate() {
+ public function testGetFormWithUpdate(): void {
+ $this->serverVersion->expects(self::atLeastOnce())
+ ->method('getChannel')
+ ->willReturn('daily');
+ $this->userManager
+ ->expects($this->once())
+ ->method('countUsersTotal')
+ ->willReturn(5);
$channels = [
'daily',
'beta',
'stable',
'production',
];
- $currentChannel = Util::getChannel();
- if ($currentChannel === 'git') {
- $channels[] = 'git';
- }
-
+ $this->appConfig
+ ->expects($this->once())
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat', 0)
+ ->willReturn(12345);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('getValueArray')
+ ->with(Application::APP_NAME, 'notify_groups', ['admin'])
+ ->willReturn(['admin']);
$this->config
- ->expects($this->exactly(2))
- ->method('getAppValue')
+ ->method('getSystemValue')
->willReturnMap([
- ['core', 'lastupdatedat', '', '12345'],
- ['updatenotification', 'notify_groups', '["admin"]', '["admin"]'],
+ ['updater.server.url', 'https://updates.nextcloud.com/updater_server/', 'https://updates.nextcloud.com/updater_server/'],
+ ['upgrade.disable-web', false, false],
]);
$this->config
- ->expects($this->once())
- ->method('getSystemValue')
- ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
- ->willReturn('https://updates.nextcloud.com/updater_server/');
+ ->expects(self::any())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(true);
$this->dateTimeFormatter
->expects($this->once())
->method('formatDateTime')
- ->with('12345')
+ ->with(12345)
->willReturn('LastCheckedReturnValue');
$this->updateChecker
->expects($this->once())
@@ -132,56 +142,70 @@ class AdminTest extends TestCase {
->method('delegateHasValidSubscription')
->willReturn(true);
- $params = [
- 'json' => json_encode([
+ $this->initialState->expects($this->once())
+ ->method('provideInitialState')
+ ->with('data', [
'isNewVersionAvailable' => true,
'isUpdateChecked' => true,
'lastChecked' => 'LastCheckedReturnValue',
- 'currentChannel' => Util::getChannel(),
+ 'currentChannel' => 'daily',
'channels' => $channels,
'newVersion' => '8.1.2',
'newVersionString' => 'Nextcloud 8.1.2',
'downloadLink' => 'https://downloads.nextcloud.org/server',
'changes' => [],
+ 'webUpdaterEnabled' => true,
+ 'isWebUpdaterRecommended' => true,
'updaterEnabled' => true,
'versionIsEol' => false,
'isDefaultUpdateServerURL' => true,
'updateServerURL' => 'https://updates.nextcloud.com/updater_server/',
'notifyGroups' => [
- ['value' => 'admin', 'label' => 'Administrators'],
+ ['id' => 'admin', 'displayname' => 'Administrators'],
],
'hasValidSubscription' => true,
- ]),
- ];
+ ]);
- $expected = new TemplateResponse('updatenotification', 'admin', $params, '');
+ $expected = new TemplateResponse(Application::APP_NAME, 'admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
}
- public function testGetFormWithUpdateAndChangedUpdateServer() {
+ public function testGetFormWithUpdateAndChangedUpdateServer(): void {
+ $this->serverVersion->expects(self::atLeastOnce())
+ ->method('getChannel')
+ ->willReturn('beta');
+ $this->userManager
+ ->expects($this->once())
+ ->method('countUsersTotal')
+ ->willReturn(5);
$channels = [
'daily',
'beta',
'stable',
'production',
];
- $currentChannel = Util::getChannel();
- if ($currentChannel === 'git') {
- $channels[] = 'git';
- }
+ $this->appConfig
+ ->expects($this->once())
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat', 0)
+ ->willReturn(12345);
$this->config
- ->expects($this->exactly(2))
- ->method('getAppValue')
- ->willReturnMap([
- ['core', 'lastupdatedat', '', '12345'],
- ['updatenotification', 'notify_groups', '["admin"]', '["admin"]'],
- ]);
- $this->config
+ ->expects(self::any())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(true);
+ $this->appConfig
->expects($this->once())
+ ->method('getValueArray')
+ ->with(Application::APP_NAME, 'notify_groups', ['admin'])
+ ->willReturn(['admin']);
+ $this->config
->method('getSystemValue')
- ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
- ->willReturn('https://updates.nextcloud.com/updater_server_changed/');
+ ->willReturnMap([
+ ['updater.server.url', 'https://updates.nextcloud.com/updater_server/', 'https://updates.nextcloud.com/updater_server_changed/'],
+ ['upgrade.disable-web', false, true],
+ ]);
$this->dateTimeFormatter
->expects($this->once())
->method('formatDateTime')
@@ -217,56 +241,70 @@ class AdminTest extends TestCase {
->method('delegateHasValidSubscription')
->willReturn(true);
- $params = [
- 'json' => json_encode([
+ $this->initialState->expects($this->once())
+ ->method('provideInitialState')
+ ->with('data', [
'isNewVersionAvailable' => true,
'isUpdateChecked' => true,
'lastChecked' => 'LastCheckedReturnValue',
- 'currentChannel' => Util::getChannel(),
+ 'currentChannel' => 'beta',
'channels' => $channels,
'newVersion' => '8.1.2',
'newVersionString' => 'Nextcloud 8.1.2',
'downloadLink' => 'https://downloads.nextcloud.org/server',
'changes' => [],
+ 'webUpdaterEnabled' => false,
+ 'isWebUpdaterRecommended' => true,
'updaterEnabled' => true,
'versionIsEol' => false,
'isDefaultUpdateServerURL' => false,
'updateServerURL' => 'https://updates.nextcloud.com/updater_server_changed/',
'notifyGroups' => [
- ['value' => 'admin', 'label' => 'Administrators'],
+ ['id' => 'admin', 'displayname' => 'Administrators'],
],
'hasValidSubscription' => true,
- ]),
- ];
+ ]);
- $expected = new TemplateResponse('updatenotification', 'admin', $params, '');
+ $expected = new TemplateResponse(Application::APP_NAME, 'admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
}
- public function testGetFormWithUpdateAndCustomersUpdateServer() {
+ public function testGetFormWithUpdateAndCustomersUpdateServer(): void {
+ $this->serverVersion->expects(self::atLeastOnce())
+ ->method('getChannel')
+ ->willReturn('production');
+ $this->userManager
+ ->expects($this->once())
+ ->method('countUsersTotal')
+ ->willReturn(5);
$channels = [
'daily',
'beta',
'stable',
'production',
];
- $currentChannel = Util::getChannel();
- if ($currentChannel === 'git') {
- $channels[] = 'git';
- }
+ $this->appConfig
+ ->expects($this->once())
+ ->method('getValueInt')
+ ->with('core', 'lastupdatedat', 0)
+ ->willReturn(12345);
$this->config
- ->expects($this->exactly(2))
- ->method('getAppValue')
- ->willReturnMap([
- ['core', 'lastupdatedat', '', '12345'],
- ['updatenotification', 'notify_groups', '["admin"]', '["admin"]'],
- ]);
+ ->expects(self::any())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(true);
+ $this->appConfig
+ ->expects(self::once())
+ ->method('getValueArray')
+ ->with(Application::APP_NAME, 'notify_groups', ['admin'])
+ ->willReturn(['admin']);
$this->config
- ->expects($this->once())
->method('getSystemValue')
- ->with('updater.server.url', 'https://updates.nextcloud.com/updater_server/')
- ->willReturn('https://updates.nextcloud.com/customers/ABC-DEF/');
+ ->willReturnMap([
+ ['updater.server.url', 'https://updates.nextcloud.com/updater_server/', 'https://updates.nextcloud.com/customers/ABC-DEF/'],
+ ['upgrade.disable-web', false, false],
+ ]);
$this->dateTimeFormatter
->expects($this->once())
->method('formatDateTime')
@@ -302,42 +340,60 @@ class AdminTest extends TestCase {
->method('delegateHasValidSubscription')
->willReturn(true);
- $params = [
- 'json' => json_encode([
+ $this->initialState->expects($this->once())
+ ->method('provideInitialState')
+ ->with('data', [
'isNewVersionAvailable' => true,
'isUpdateChecked' => true,
'lastChecked' => 'LastCheckedReturnValue',
- 'currentChannel' => Util::getChannel(),
+ 'currentChannel' => 'production',
'channels' => $channels,
'newVersion' => '8.1.2',
'newVersionString' => 'Nextcloud 8.1.2',
'downloadLink' => 'https://downloads.nextcloud.org/server',
'changes' => [],
+ 'webUpdaterEnabled' => true,
+ 'isWebUpdaterRecommended' => true,
'updaterEnabled' => true,
'versionIsEol' => false,
'isDefaultUpdateServerURL' => true,
'updateServerURL' => 'https://updates.nextcloud.com/customers/ABC-DEF/',
'notifyGroups' => [
- ['value' => 'admin', 'label' => 'Administrators'],
+ ['id' => 'admin', 'displayname' => 'Administrators'],
],
'hasValidSubscription' => true,
- ]),
- ];
+ ]);
- $expected = new TemplateResponse('updatenotification', 'admin', $params, '');
+ $expected = new TemplateResponse(Application::APP_NAME, 'admin', [], '');
$this->assertEquals($expected, $this->admin->getForm());
}
- public function testGetSection() {
+ public function testGetSection(): void {
+ $this->config
+ ->expects(self::atLeastOnce())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(true);
+
$this->assertSame('overview', $this->admin->getSection());
}
- public function testGetPriority() {
+ public function testGetSectionDisabled(): void {
+ $this->config
+ ->expects(self::atLeastOnce())
+ ->method('getSystemValueBool')
+ ->with('updatechecker', true)
+ ->willReturn(false);
+
+ $this->assertNull($this->admin->getSection());
+ }
+
+ public function testGetPriority(): void {
$this->assertSame(11, $this->admin->getPriority());
}
- public function changesProvider() {
+ public static function changesProvider(): array {
return [
[ #0, all info, en
[
@@ -392,10 +448,8 @@ class AdminTest extends TestCase {
];
}
- /**
- * @dataProvider changesProvider
- */
- public function testFilterChanges($changes, $userLang, $expectation) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('changesProvider')]
+ public function testFilterChanges($changes, $userLang, $expectation): void {
$iterator = $this->createMock(ILanguageIterator::class);
$iterator->expects($this->any())
->method('current')
diff --git a/apps/updatenotification/tests/UpdateCheckerTest.php b/apps/updatenotification/tests/UpdateCheckerTest.php
index c0237673d7e..cffdc25d3e4 100644
--- a/apps/updatenotification/tests/UpdateCheckerTest.php
+++ b/apps/updatenotification/tests/UpdateCheckerTest.php
@@ -3,55 +3,39 @@
declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\UpdateNotification\Tests;
use OC\Updater\ChangesCheck;
use OC\Updater\VersionCheck;
use OCA\UpdateNotification\UpdateChecker;
+use OCP\AppFramework\Services\IInitialState;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class UpdateCheckerTest extends TestCase {
- /** @var ChangesCheck|\PHPUnit\Framework\MockObject\MockObject */
- protected $changesChecker;
- /** @var VersionCheck|\PHPUnit\Framework\MockObject\MockObject */
- private $updater;
- /** @var UpdateChecker */
- private $updateChecker;
+
+ private ChangesCheck&MockObject $changesChecker;
+ private VersionCheck&MockObject $updater;
+ private IInitialState&MockObject $initialState;
+ private UpdateChecker $updateChecker;
protected function setUp(): void {
parent::setUp();
$this->updater = $this->createMock(VersionCheck::class);
$this->changesChecker = $this->createMock(ChangesCheck::class);
- $this->updateChecker = new UpdateChecker($this->updater, $this->changesChecker);
+ $this->initialState = $this->createMock(IInitialState::class);
+ $this->updateChecker = new UpdateChecker(
+ $this->updater,
+ $this->changesChecker,
+ $this->initialState,
+ );
}
- public function testGetUpdateStateWithUpdateAndInvalidLink() {
+ public function testGetUpdateStateWithUpdateAndInvalidLink(): void {
$this->updater
->expects($this->once())
->method('check')
@@ -75,7 +59,7 @@ class UpdateCheckerTest extends TestCase {
$this->assertSame($expected, $this->updateChecker->getUpdateState());
}
- public function testGetUpdateStateWithUpdateAndValidLink() {
+ public function testGetUpdateStateWithUpdateAndValidLink(): void {
$changes = [
'changelog' => 'https://nextcloud.com/changelog/#123-0-0',
'whatsNew' => [
@@ -123,7 +107,7 @@ class UpdateCheckerTest extends TestCase {
$this->assertSame($expected, $this->updateChecker->getUpdateState());
}
- public function testGetUpdateStateWithoutUpdate() {
+ public function testGetUpdateStateWithoutUpdate(): void {
$this->updater
->expects($this->once())
->method('check')
@@ -132,4 +116,28 @@ class UpdateCheckerTest extends TestCase {
$expected = [];
$this->assertSame($expected, $this->updateChecker->getUpdateState());
}
+
+ public function testSetInitialState(): void {
+ $this->updater
+ ->expects($this->once())
+ ->method('check')
+ ->willReturn([
+ 'version' => '1.2.3',
+ 'versionstring' => 'Nextcloud 1.2.3',
+ 'web' => 'https://docs.nextcloud.com/myUrl',
+ 'url' => 'https://downloads.nextcloud.org/server',
+ 'changes' => 'https://updates.nextcloud.com/changelog_server/?version=123.0.0',
+ 'autoupdater' => '1',
+ 'eol' => '0',
+ ]);
+
+ $this->initialState->expects(self::once())
+ ->method('provideInitialState')
+ ->with('updateState', [
+ 'updateVersion' => 'Nextcloud 1.2.3',
+ 'updateLink' => 'https://docs.nextcloud.com/myUrl',
+ ]);
+
+ $this->updateChecker->setInitialState();
+ }
}
diff --git a/apps/updatenotification/webpack.js b/apps/updatenotification/webpack.js
deleted file mode 100644
index b90777108c7..00000000000
--- a/apps/updatenotification/webpack.js
+++ /dev/null
@@ -1,11 +0,0 @@
-const path = require('path')
-
-module.exports = {
- entry: path.join(__dirname, 'src', 'init.js'),
- output: {
- path: path.resolve(__dirname, './js'),
- publicPath: '/js/',
- filename: 'updatenotification.js',
- jsonpFunction: 'webpackJsonpUpdatenotification'
- }
-}