summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/accessibility/composer/composer/InstalledVersions.php2
-rw-r--r--apps/accessibility/composer/composer/autoload_classmap.php2
-rw-r--r--apps/accessibility/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/accessibility/composer/composer/autoload_psr4.php2
-rw-r--r--apps/accessibility/composer/composer/autoload_real.php15
-rw-r--r--apps/admin_audit/composer/composer/InstalledVersions.php2
-rw-r--r--apps/admin_audit/composer/composer/autoload_classmap.php2
-rw-r--r--apps/admin_audit/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/admin_audit/composer/composer/autoload_psr4.php2
-rw-r--r--apps/admin_audit/composer/composer/autoload_real.php15
-rw-r--r--apps/cloud_federation_api/composer/composer/InstalledVersions.php2
-rw-r--r--apps/cloud_federation_api/composer/composer/autoload_classmap.php2
-rw-r--r--apps/cloud_federation_api/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/cloud_federation_api/composer/composer/autoload_psr4.php2
-rw-r--r--apps/cloud_federation_api/composer/composer/autoload_real.php15
-rw-r--r--apps/comments/composer/composer/InstalledVersions.php2
-rw-r--r--apps/comments/composer/composer/autoload_classmap.php2
-rw-r--r--apps/comments/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/comments/composer/composer/autoload_psr4.php2
-rw-r--r--apps/comments/composer/composer/autoload_real.php15
-rw-r--r--apps/contactsinteraction/composer/composer/InstalledVersions.php2
-rw-r--r--apps/contactsinteraction/composer/composer/autoload_classmap.php2
-rw-r--r--apps/contactsinteraction/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/contactsinteraction/composer/composer/autoload_psr4.php2
-rw-r--r--apps/contactsinteraction/composer/composer/autoload_real.php15
-rw-r--r--apps/dashboard/l10n/de.js1
-rw-r--r--apps/dashboard/l10n/de.json1
-rw-r--r--apps/dashboard/l10n/el.js1
-rw-r--r--apps/dashboard/l10n/el.json1
-rw-r--r--apps/dashboard/l10n/hu.js1
-rw-r--r--apps/dashboard/l10n/hu.json1
-rw-r--r--apps/dav/composer/composer/InstalledVersions.php2
-rw-r--r--apps/dav/composer/composer/autoload_classmap.php2
-rw-r--r--apps/dav/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/dav/composer/composer/autoload_psr4.php2
-rw-r--r--apps/dav/composer/composer/autoload_real.php15
-rw-r--r--apps/dav/l10n/de.js2
-rw-r--r--apps/dav/l10n/de.json2
-rw-r--r--apps/dav/lib/UserMigration/CalendarMigrator.php37
-rw-r--r--apps/encryption/composer/composer/InstalledVersions.php2
-rw-r--r--apps/encryption/composer/composer/autoload_classmap.php2
-rw-r--r--apps/encryption/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/encryption/composer/composer/autoload_psr4.php2
-rw-r--r--apps/encryption/composer/composer/autoload_real.php15
-rw-r--r--apps/encryption/l10n/sv.js26
-rw-r--r--apps/encryption/l10n/sv.json26
-rw-r--r--apps/federatedfilesharing/composer/composer/InstalledVersions.php2
-rw-r--r--apps/federatedfilesharing/composer/composer/autoload_classmap.php2
-rw-r--r--apps/federatedfilesharing/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/federatedfilesharing/composer/composer/autoload_psr4.php2
-rw-r--r--apps/federatedfilesharing/composer/composer/autoload_real.php15
-rw-r--r--apps/federation/composer/composer/InstalledVersions.php2
-rw-r--r--apps/federation/composer/composer/autoload_classmap.php2
-rw-r--r--apps/federation/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/federation/composer/composer/autoload_psr4.php2
-rw-r--r--apps/federation/composer/composer/autoload_real.php15
-rw-r--r--apps/files/composer/composer/InstalledVersions.php2
-rw-r--r--apps/files/composer/composer/autoload_classmap.php2
-rw-r--r--apps/files/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/files/composer/composer/autoload_psr4.php2
-rw-r--r--apps/files/composer/composer/autoload_real.php15
-rw-r--r--apps/files/l10n/ru.js2
-rw-r--r--apps/files/l10n/ru.json2
-rw-r--r--apps/files/l10n/sv.js4
-rw-r--r--apps/files/l10n/sv.json4
-rw-r--r--apps/files_external/appinfo/info.xml2
-rw-r--r--apps/files_external/l10n/hu.js1
-rw-r--r--apps/files_external/l10n/hu.json1
-rw-r--r--apps/files_external/l10n/sv.js4
-rw-r--r--apps/files_external/l10n/sv.json4
-rw-r--r--apps/files_external/lib/Migration/Version1011Date20200630192246.php2
-rw-r--r--apps/files_external/lib/Migration/Version1016Date20220324154536.php54
-rw-r--r--apps/files_sharing/composer/composer/InstalledVersions.php2
-rw-r--r--apps/files_sharing/composer/composer/autoload_classmap.php2
-rw-r--r--apps/files_sharing/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/files_sharing/composer/composer/autoload_psr4.php2
-rw-r--r--apps/files_sharing/composer/composer/autoload_real.php15
-rw-r--r--apps/files_sharing/l10n/cs.js1
-rw-r--r--apps/files_sharing/l10n/cs.json1
-rw-r--r--apps/files_sharing/l10n/de.js1
-rw-r--r--apps/files_sharing/l10n/de.json1
-rw-r--r--apps/files_sharing/l10n/de_DE.js1
-rw-r--r--apps/files_sharing/l10n/de_DE.json1
-rw-r--r--apps/files_sharing/l10n/el.js17
-rw-r--r--apps/files_sharing/l10n/el.json17
-rw-r--r--apps/files_sharing/l10n/es.js1
-rw-r--r--apps/files_sharing/l10n/es.json1
-rw-r--r--apps/files_sharing/l10n/eu.js1
-rw-r--r--apps/files_sharing/l10n/eu.json1
-rw-r--r--apps/files_sharing/l10n/fr.js1
-rw-r--r--apps/files_sharing/l10n/fr.json1
-rw-r--r--apps/files_sharing/l10n/hu.js2
-rw-r--r--apps/files_sharing/l10n/hu.json2
-rw-r--r--apps/files_sharing/l10n/it.js1
-rw-r--r--apps/files_sharing/l10n/it.json1
-rw-r--r--apps/files_sharing/l10n/pl.js1
-rw-r--r--apps/files_sharing/l10n/pl.json1
-rw-r--r--apps/files_sharing/l10n/sk.js1
-rw-r--r--apps/files_sharing/l10n/sk.json1
-rw-r--r--apps/files_sharing/l10n/sv.js9
-rw-r--r--apps/files_sharing/l10n/sv.json9
-rw-r--r--apps/files_sharing/l10n/tr.js1
-rw-r--r--apps/files_sharing/l10n/tr.json1
-rw-r--r--apps/files_sharing/l10n/zh_HK.js1
-rw-r--r--apps/files_sharing/l10n/zh_HK.json1
-rw-r--r--apps/files_sharing/l10n/zh_TW.js1
-rw-r--r--apps/files_sharing/l10n/zh_TW.json1
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php2
-rw-r--r--apps/files_sharing/tests/Controller/ShareAPIControllerTest.php2
-rw-r--r--apps/files_trashbin/composer/composer/InstalledVersions.php2
-rw-r--r--apps/files_trashbin/composer/composer/autoload_classmap.php2
-rw-r--r--apps/files_trashbin/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/files_trashbin/composer/composer/autoload_psr4.php2
-rw-r--r--apps/files_trashbin/composer/composer/autoload_real.php15
-rw-r--r--apps/files_trashbin/l10n/sv.js2
-rw-r--r--apps/files_trashbin/l10n/sv.json2
-rw-r--r--apps/files_versions/composer/composer/InstalledVersions.php2
-rw-r--r--apps/files_versions/composer/composer/autoload_classmap.php2
-rw-r--r--apps/files_versions/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/files_versions/composer/composer/autoload_psr4.php2
-rw-r--r--apps/files_versions/composer/composer/autoload_real.php15
-rw-r--r--apps/lookup_server_connector/composer/composer/InstalledVersions.php2
-rw-r--r--apps/lookup_server_connector/composer/composer/autoload_classmap.php2
-rw-r--r--apps/lookup_server_connector/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/lookup_server_connector/composer/composer/autoload_psr4.php2
-rw-r--r--apps/lookup_server_connector/composer/composer/autoload_real.php15
-rw-r--r--apps/oauth2/composer/composer/InstalledVersions.php2
-rw-r--r--apps/oauth2/composer/composer/autoload_classmap.php2
-rw-r--r--apps/oauth2/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/oauth2/composer/composer/autoload_psr4.php2
-rw-r--r--apps/oauth2/composer/composer/autoload_real.php15
-rw-r--r--apps/provisioning_api/composer/composer/InstalledVersions.php2
-rw-r--r--apps/provisioning_api/composer/composer/autoload_classmap.php2
-rw-r--r--apps/provisioning_api/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/provisioning_api/composer/composer/autoload_psr4.php2
-rw-r--r--apps/provisioning_api/composer/composer/autoload_real.php15
-rw-r--r--apps/settings/composer/composer/InstalledVersions.php2
-rw-r--r--apps/settings/composer/composer/autoload_classmap.php2
-rw-r--r--apps/settings/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/settings/composer/composer/autoload_psr4.php2
-rw-r--r--apps/settings/composer/composer/autoload_real.php15
-rw-r--r--apps/settings/l10n/de.js3
-rw-r--r--apps/settings/l10n/de.json3
-rw-r--r--apps/settings/l10n/el.js1
-rw-r--r--apps/settings/l10n/el.json1
-rw-r--r--apps/settings/l10n/hu.js13
-rw-r--r--apps/settings/l10n/hu.json13
-rw-r--r--apps/settings/l10n/sv.js14
-rw-r--r--apps/settings/l10n/sv.json14
-rw-r--r--apps/sharebymail/composer/composer/InstalledVersions.php2
-rw-r--r--apps/sharebymail/composer/composer/autoload_classmap.php2
-rw-r--r--apps/sharebymail/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/sharebymail/composer/composer/autoload_psr4.php2
-rw-r--r--apps/sharebymail/composer/composer/autoload_real.php15
-rw-r--r--apps/systemtags/composer/composer/InstalledVersions.php2
-rw-r--r--apps/systemtags/composer/composer/autoload_classmap.php2
-rw-r--r--apps/systemtags/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/systemtags/composer/composer/autoload_psr4.php2
-rw-r--r--apps/systemtags/composer/composer/autoload_real.php15
-rw-r--r--apps/systemtags/l10n/hu.js72
-rw-r--r--apps/systemtags/l10n/hu.json72
-rw-r--r--apps/testing/composer/composer/InstalledVersions.php2
-rw-r--r--apps/testing/composer/composer/autoload_classmap.php2
-rw-r--r--apps/testing/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/testing/composer/composer/autoload_psr4.php2
-rw-r--r--apps/testing/composer/composer/autoload_real.php15
-rw-r--r--apps/twofactor_backupcodes/composer/composer/InstalledVersions.php2
-rw-r--r--apps/twofactor_backupcodes/composer/composer/autoload_classmap.php2
-rw-r--r--apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/twofactor_backupcodes/composer/composer/autoload_psr4.php2
-rw-r--r--apps/twofactor_backupcodes/composer/composer/autoload_real.php15
-rw-r--r--apps/updatenotification/composer/composer/InstalledVersions.php2
-rw-r--r--apps/updatenotification/composer/composer/autoload_classmap.php2
-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/l10n/cs.js2
-rw-r--r--apps/updatenotification/l10n/cs.json2
-rw-r--r--apps/updatenotification/l10n/de_DE.js2
-rw-r--r--apps/updatenotification/l10n/de_DE.json2
-rw-r--r--apps/updatenotification/l10n/hu.js2
-rw-r--r--apps/updatenotification/l10n/hu.json2
-rw-r--r--apps/updatenotification/l10n/lt_LT.js2
-rw-r--r--apps/updatenotification/l10n/lt_LT.json2
-rw-r--r--apps/updatenotification/l10n/pl.js2
-rw-r--r--apps/updatenotification/l10n/pl.json2
-rw-r--r--apps/updatenotification/l10n/tr.js2
-rw-r--r--apps/updatenotification/l10n/tr.json2
-rw-r--r--apps/updatenotification/l10n/zh_HK.js1
-rw-r--r--apps/updatenotification/l10n/zh_HK.json1
-rw-r--r--apps/updatenotification/l10n/zh_TW.js2
-rw-r--r--apps/updatenotification/l10n/zh_TW.json2
-rw-r--r--apps/updatenotification/src/components/UpdateNotification.vue4
-rw-r--r--apps/user_ldap/composer/composer/InstalledVersions.php2
-rw-r--r--apps/user_ldap/composer/composer/autoload_classmap.php3
-rw-r--r--apps/user_ldap/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/user_ldap/composer/composer/autoload_psr4.php2
-rw-r--r--apps/user_ldap/composer/composer/autoload_real.php15
-rw-r--r--apps/user_ldap/composer/composer/autoload_static.php1
-rw-r--r--apps/user_ldap/css/settings.css8
-rw-r--r--apps/user_ldap/css/vendor/ui-multiselect/jquery.multiselect.css (renamed from apps/user_ldap/js/vendor/ui-multiselect/jquery.multiselect.css)0
-rw-r--r--apps/user_ldap/l10n/pl.js2
-rw-r--r--apps/user_ldap/l10n/pl.json2
-rw-r--r--apps/user_ldap/l10n/sv.js18
-rw-r--r--apps/user_ldap/l10n/sv.json18
-rw-r--r--apps/user_ldap/lib/Command/CreateEmptyConfig.php1
-rw-r--r--apps/user_ldap/lib/Configuration.php11
-rw-r--r--apps/user_ldap/lib/Controller/ConfigAPIController.php1
-rw-r--r--apps/user_ldap/lib/Mapping/AbstractMapping.php4
-rw-r--r--apps/user_ldap/lib/Migration/Version1010Date20200630192842.php4
-rw-r--r--apps/user_ldap/lib/Migration/Version1130Date20211102154716.php6
-rw-r--r--apps/user_ldap/lib/Migration/Version1130Date20220110154718.php2
-rw-r--r--apps/user_ldap/lib/Migration/Version1141Date20220323143801.php113
-rw-r--r--apps/user_ldap/lib/Wizard.php2
-rw-r--r--apps/user_ldap/templates/settings.php2
-rw-r--r--apps/user_status/composer/composer/InstalledVersions.php2
-rw-r--r--apps/user_status/composer/composer/autoload_classmap.php2
-rw-r--r--apps/user_status/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/user_status/composer/composer/autoload_psr4.php2
-rw-r--r--apps/user_status/composer/composer/autoload_real.php15
-rw-r--r--apps/weather_status/src/App.vue36
-rw-r--r--apps/workflowengine/composer/composer/InstalledVersions.php2
-rw-r--r--apps/workflowengine/composer/composer/autoload_classmap.php2
-rw-r--r--apps/workflowengine/composer/composer/autoload_namespaces.php2
-rw-r--r--apps/workflowengine/composer/composer/autoload_psr4.php2
-rw-r--r--apps/workflowengine/composer/composer/autoload_real.php15
-rw-r--r--apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php11
-rw-r--r--build/integration/composer.json2
-rw-r--r--core/js/setupchecks.js87
-rw-r--r--core/l10n/hu.js4
-rw-r--r--core/l10n/hu.json4
-rw-r--r--core/l10n/sv.js22
-rw-r--r--core/l10n/sv.json22
-rw-r--r--dist/updatenotification-updatenotification.js4
-rw-r--r--dist/updatenotification-updatenotification.js.map2
-rw-r--r--dist/weather_status-weather-status.js4
-rw-r--r--dist/weather_status-weather-status.js.map2
-rw-r--r--lib/composer/composer/autoload_classmap.php2
-rw-r--r--lib/composer/composer/autoload_namespaces.php2
-rw-r--r--lib/composer/composer/autoload_psr4.php2
-rw-r--r--lib/composer/composer/autoload_real.php25
-rw-r--r--lib/composer/composer/autoload_static.php8
-rw-r--r--lib/l10n/ar.js3
-rw-r--r--lib/l10n/ar.json3
-rw-r--r--lib/l10n/sv.js20
-rw-r--r--lib/l10n/sv.json20
-rw-r--r--lib/private/DB/MigrationService.php4
-rw-r--r--lib/private/Repair/Owncloud/MigrateOauthTables.php37
-rw-r--r--tests/lib/DB/MigrationsTest.php40
-rw-r--r--version.php4
250 files changed, 875 insertions, 773 deletions
diff --git a/apps/accessibility/composer/composer/InstalledVersions.php b/apps/accessibility/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/accessibility/composer/composer/InstalledVersions.php
+++ b/apps/accessibility/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/accessibility/composer/composer/autoload_classmap.php b/apps/accessibility/composer/composer/autoload_classmap.php
index d9aa1becd7f..c54d05d6258 100644
--- a/apps/accessibility/composer/composer/autoload_classmap.php
+++ b/apps/accessibility/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/accessibility/composer/composer/autoload_namespaces.php b/apps/accessibility/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/accessibility/composer/composer/autoload_namespaces.php
+++ b/apps/accessibility/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/accessibility/composer/composer/autoload_psr4.php b/apps/accessibility/composer/composer/autoload_psr4.php
index 9d380abd716..3fb0fa3d684 100644
--- a/apps/accessibility/composer/composer/autoload_psr4.php
+++ b/apps/accessibility/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/accessibility/composer/composer/autoload_real.php b/apps/accessibility/composer/composer/autoload_real.php
index 86277d610bf..a08983b79fe 100644
--- a/apps/accessibility/composer/composer/autoload_real.php
+++ b/apps/accessibility/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitAccessibility
}
spl_autoload_register(array('ComposerAutoloaderInitAccessibility', '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('ComposerAutoloaderInitAccessibility', '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\ComposerStaticInitAccessibility::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitAccessibility::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/admin_audit/composer/composer/InstalledVersions.php b/apps/admin_audit/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/admin_audit/composer/composer/InstalledVersions.php
+++ b/apps/admin_audit/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/admin_audit/composer/composer/autoload_classmap.php b/apps/admin_audit/composer/composer/autoload_classmap.php
index 5dcaa32bb8d..fc4be52ebbb 100644
--- a/apps/admin_audit/composer/composer/autoload_classmap.php
+++ b/apps/admin_audit/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/admin_audit/composer/composer/autoload_namespaces.php b/apps/admin_audit/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/admin_audit/composer/composer/autoload_namespaces.php
+++ b/apps/admin_audit/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/admin_audit/composer/composer/autoload_psr4.php b/apps/admin_audit/composer/composer/autoload_psr4.php
index 63a4845c93d..accaf966e1e 100644
--- a/apps/admin_audit/composer/composer/autoload_psr4.php
+++ b/apps/admin_audit/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/admin_audit/composer/composer/autoload_real.php b/apps/admin_audit/composer/composer/autoload_real.php
index 5c3d4551dd6..ffbbdd4e269 100644
--- a/apps/admin_audit/composer/composer/autoload_real.php
+++ b/apps/admin_audit/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitAdminAudit
}
spl_autoload_register(array('ComposerAutoloaderInitAdminAudit', '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('ComposerAutoloaderInitAdminAudit', '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\ComposerStaticInitAdminAudit::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitAdminAudit::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/cloud_federation_api/composer/composer/InstalledVersions.php b/apps/cloud_federation_api/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/cloud_federation_api/composer/composer/InstalledVersions.php
+++ b/apps/cloud_federation_api/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/cloud_federation_api/composer/composer/autoload_classmap.php b/apps/cloud_federation_api/composer/composer/autoload_classmap.php
index d5c197f1d4b..94d538619a3 100644
--- a/apps/cloud_federation_api/composer/composer/autoload_classmap.php
+++ b/apps/cloud_federation_api/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/cloud_federation_api/composer/composer/autoload_namespaces.php b/apps/cloud_federation_api/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/cloud_federation_api/composer/composer/autoload_namespaces.php
+++ b/apps/cloud_federation_api/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/cloud_federation_api/composer/composer/autoload_psr4.php b/apps/cloud_federation_api/composer/composer/autoload_psr4.php
index a24ce444a67..de1b8cee1e9 100644
--- a/apps/cloud_federation_api/composer/composer/autoload_psr4.php
+++ b/apps/cloud_federation_api/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/cloud_federation_api/composer/composer/autoload_real.php b/apps/cloud_federation_api/composer/composer/autoload_real.php
index f0ee7acb591..1c7ec9607c2 100644
--- a/apps/cloud_federation_api/composer/composer/autoload_real.php
+++ b/apps/cloud_federation_api/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitCloudFederationAPI
}
spl_autoload_register(array('ComposerAutoloaderInitCloudFederationAPI', '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('ComposerAutoloaderInitCloudFederationAPI', '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\ComposerStaticInitCloudFederationAPI::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitCloudFederationAPI::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/comments/composer/composer/InstalledVersions.php b/apps/comments/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/comments/composer/composer/InstalledVersions.php
+++ b/apps/comments/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/comments/composer/composer/autoload_classmap.php b/apps/comments/composer/composer/autoload_classmap.php
index 5503c23c2e9..6afc14d07a1 100644
--- a/apps/comments/composer/composer/autoload_classmap.php
+++ b/apps/comments/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/comments/composer/composer/autoload_namespaces.php b/apps/comments/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/comments/composer/composer/autoload_namespaces.php
+++ b/apps/comments/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/comments/composer/composer/autoload_psr4.php b/apps/comments/composer/composer/autoload_psr4.php
index f30d722bf9e..2db1b8decc4 100644
--- a/apps/comments/composer/composer/autoload_psr4.php
+++ b/apps/comments/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/comments/composer/composer/autoload_real.php b/apps/comments/composer/composer/autoload_real.php
index 8b8855d7d4f..8668cfb671e 100644
--- a/apps/comments/composer/composer/autoload_real.php
+++ b/apps/comments/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitComments
}
spl_autoload_register(array('ComposerAutoloaderInitComments', '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('ComposerAutoloaderInitComments', '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\ComposerStaticInitComments::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitComments::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/contactsinteraction/composer/composer/InstalledVersions.php b/apps/contactsinteraction/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/contactsinteraction/composer/composer/InstalledVersions.php
+++ b/apps/contactsinteraction/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/contactsinteraction/composer/composer/autoload_classmap.php b/apps/contactsinteraction/composer/composer/autoload_classmap.php
index b0d5affc051..6cc1fd7d984 100644
--- a/apps/contactsinteraction/composer/composer/autoload_classmap.php
+++ b/apps/contactsinteraction/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/contactsinteraction/composer/composer/autoload_namespaces.php b/apps/contactsinteraction/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/contactsinteraction/composer/composer/autoload_namespaces.php
+++ b/apps/contactsinteraction/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/contactsinteraction/composer/composer/autoload_psr4.php b/apps/contactsinteraction/composer/composer/autoload_psr4.php
index 945013a79f5..4e53aac8792 100644
--- a/apps/contactsinteraction/composer/composer/autoload_psr4.php
+++ b/apps/contactsinteraction/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/contactsinteraction/composer/composer/autoload_real.php b/apps/contactsinteraction/composer/composer/autoload_real.php
index d0f0da36ef3..8ba09879f54 100644
--- a/apps/contactsinteraction/composer/composer/autoload_real.php
+++ b/apps/contactsinteraction/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitContactsInteraction
}
spl_autoload_register(array('ComposerAutoloaderInitContactsInteraction', '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('ComposerAutoloaderInitContactsInteraction', '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\ComposerStaticInitContactsInteraction::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitContactsInteraction::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/dashboard/l10n/de.js b/apps/dashboard/l10n/de.js
index 597f2f2da41..36a3272f682 100644
--- a/apps/dashboard/l10n/de.js
+++ b/apps/dashboard/l10n/de.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Dashboard" : "Dashboard",
"Dashboard app" : "Dashboard-App",
+ "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Starte informiert in den Tag\n\nDas Nextcloud-Dashboard ist Dein Ausgangspunkt für den Tag und gibt Dir\neinen Überblick über Deine anstehenden Termine, dringende E-Mails, Chatnachrichten, eingehende Tickets, neuste Tweets und vieles mehr! Benutzer können die Widgets hinzufügen, die sie mögen und den Hintergrund nach ihren Wünschen angepassen.",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Hole Dir weitere Widgets aus dem App-Store",
diff --git a/apps/dashboard/l10n/de.json b/apps/dashboard/l10n/de.json
index 4c739962c82..f67aa520e4d 100644
--- a/apps/dashboard/l10n/de.json
+++ b/apps/dashboard/l10n/de.json
@@ -1,6 +1,7 @@
{ "translations": {
"Dashboard" : "Dashboard",
"Dashboard app" : "Dashboard-App",
+ "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Starte informiert in den Tag\n\nDas Nextcloud-Dashboard ist Dein Ausgangspunkt für den Tag und gibt Dir\neinen Überblick über Deine anstehenden Termine, dringende E-Mails, Chatnachrichten, eingehende Tickets, neuste Tweets und vieles mehr! Benutzer können die Widgets hinzufügen, die sie mögen und den Hintergrund nach ihren Wünschen angepassen.",
"Customize" : "Anpassen",
"Edit widgets" : "Widgets bearbeiten",
"Get more widgets from the App Store" : "Hole Dir weitere Widgets aus dem App-Store",
diff --git a/apps/dashboard/l10n/el.js b/apps/dashboard/l10n/el.js
index 8c40c315d19..28dd7fb4f86 100644
--- a/apps/dashboard/l10n/el.js
+++ b/apps/dashboard/l10n/el.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Dashboard" : "Πίνακας ελέγχου",
"Dashboard app" : "Εφαρμογή Πίνακα Ελέγχου",
+ "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Ξεκινήστε τη μέρα σας ενημερωμένοι\n\nΤο Nextcloud Dashboard είναι το σημείο εκκίνησης της ημέρας, δίνοντάς σας μια επισκόπηση των επερχόμενων ραντεβού, των επειγόντων email, των μηνυμάτων συνομιλίας, και πολλά άλλα!\nΟι χρήστες μπορούν να προσθέσουν μικροεφαρμογές και να αλλάζουν το φόντο σύμφωνα με τις προτιμήσεις τους.",
"Customize" : "Προσαρμογή",
"Edit widgets" : "Επεξεργασία μικροεφαρμογών",
"Get more widgets from the App Store" : "Λάβετε περισσότερες μικροεφαρμογές από το App Store",
diff --git a/apps/dashboard/l10n/el.json b/apps/dashboard/l10n/el.json
index 10d7739a5a6..a32e88e79a6 100644
--- a/apps/dashboard/l10n/el.json
+++ b/apps/dashboard/l10n/el.json
@@ -1,6 +1,7 @@
{ "translations": {
"Dashboard" : "Πίνακας ελέγχου",
"Dashboard app" : "Εφαρμογή Πίνακα Ελέγχου",
+ "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Ξεκινήστε τη μέρα σας ενημερωμένοι\n\nΤο Nextcloud Dashboard είναι το σημείο εκκίνησης της ημέρας, δίνοντάς σας μια επισκόπηση των επερχόμενων ραντεβού, των επειγόντων email, των μηνυμάτων συνομιλίας, και πολλά άλλα!\nΟι χρήστες μπορούν να προσθέσουν μικροεφαρμογές και να αλλάζουν το φόντο σύμφωνα με τις προτιμήσεις τους.",
"Customize" : "Προσαρμογή",
"Edit widgets" : "Επεξεργασία μικροεφαρμογών",
"Get more widgets from the App Store" : "Λάβετε περισσότερες μικροεφαρμογές από το App Store",
diff --git a/apps/dashboard/l10n/hu.js b/apps/dashboard/l10n/hu.js
index 60f8dc13316..56f4c874be9 100644
--- a/apps/dashboard/l10n/hu.js
+++ b/apps/dashboard/l10n/hu.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Dashboard" : "Irányítópult",
"Dashboard app" : "Irányítópult alkalmazás",
+ "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Kezdje informáltan a napot\n\nA Nextcloud irányítópult a napja kezdőpontja, áttekintést nyújtva a közelgő találkozókról, sürgős levelekről, csevegőüzenetekről, hibajegyekről, a legfrissebb tweetekről és sok másról. A felhasználók modulokat adhatnak hozzá, és tetszés szerint változtathatják a hátteret.",
"Customize" : "Testreszabás",
"Edit widgets" : "Modulok szerkesztése",
"Get more widgets from the App Store" : "További modulok letöltése az alkalmazástárból.",
diff --git a/apps/dashboard/l10n/hu.json b/apps/dashboard/l10n/hu.json
index 68b49daf28a..366388bcaa2 100644
--- a/apps/dashboard/l10n/hu.json
+++ b/apps/dashboard/l10n/hu.json
@@ -1,6 +1,7 @@
{ "translations": {
"Dashboard" : "Irányítópult",
"Dashboard app" : "Irányítópult alkalmazás",
+ "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Kezdje informáltan a napot\n\nA Nextcloud irányítópult a napja kezdőpontja, áttekintést nyújtva a közelgő találkozókról, sürgős levelekről, csevegőüzenetekről, hibajegyekről, a legfrissebb tweetekről és sok másról. A felhasználók modulokat adhatnak hozzá, és tetszés szerint változtathatják a hátteret.",
"Customize" : "Testreszabás",
"Edit widgets" : "Modulok szerkesztése",
"Get more widgets from the App Store" : "További modulok letöltése az alkalmazástárból.",
diff --git a/apps/dav/composer/composer/InstalledVersions.php b/apps/dav/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/dav/composer/composer/InstalledVersions.php
+++ b/apps/dav/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php
index f4b17814817..cf02a3221fb 100644
--- a/apps/dav/composer/composer/autoload_classmap.php
+++ b/apps/dav/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/dav/composer/composer/autoload_namespaces.php b/apps/dav/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/dav/composer/composer/autoload_namespaces.php
+++ b/apps/dav/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/dav/composer/composer/autoload_psr4.php b/apps/dav/composer/composer/autoload_psr4.php
index b37c184d6ef..c2d3874b8ce 100644
--- a/apps/dav/composer/composer/autoload_psr4.php
+++ b/apps/dav/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/dav/composer/composer/autoload_real.php b/apps/dav/composer/composer/autoload_real.php
index 80611c8f531..8416efa9d7e 100644
--- a/apps/dav/composer/composer/autoload_real.php
+++ b/apps/dav/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitDAV
}
spl_autoload_register(array('ComposerAutoloaderInitDAV', '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('ComposerAutoloaderInitDAV', '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\ComposerStaticInitDAV::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitDAV::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js
index 170f4bd6495..aeaa3de4ca4 100644
--- a/apps/dav/l10n/de.js
+++ b/apps/dav/l10n/de.js
@@ -161,6 +161,8 @@ OC.L10N.register(
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es ein wenig dauern bis zur Anzeige.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
"Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs versendet, so dass diese häufig genug ausgeführt werden müssen.",
+ "Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden",
+ "Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installiere außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinde Deinen Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stelle sicher, dass Du {emailopen}den E-Mail Server{linkclose} ordnungsgemäß einrichtest.",
diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json
index c9f193288f3..885e1d922eb 100644
--- a/apps/dav/l10n/de.json
+++ b/apps/dav/l10n/de.json
@@ -159,6 +159,8 @@
"Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es ein wenig dauern bis zur Anzeige.",
"Send notifications for events" : "Sende Benachrichtigungen für Termine",
"Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs versendet, so dass diese häufig genug ausgeführt werden müssen.",
+ "Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden",
+ "Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.",
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installiere außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinde Deinen Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stelle sicher, dass Du {emailopen}den E-Mail Server{linkclose} ordnungsgemäß einrichtest.",
diff --git a/apps/dav/lib/UserMigration/CalendarMigrator.php b/apps/dav/lib/UserMigration/CalendarMigrator.php
index d0d9e94351b..16b21314610 100644
--- a/apps/dav/lib/UserMigration/CalendarMigrator.php
+++ b/apps/dav/lib/UserMigration/CalendarMigrator.php
@@ -318,7 +318,10 @@ class CalendarMigrator implements IMigrator {
return $vCalendarObject;
}
- private function importCalendarObject(int $calendarId, VCalendar $vCalendarObject, OutputInterface $output): void {
+ /**
+ * @throws InvalidCalendarException
+ */
+ private function importCalendarObject(int $calendarId, VCalendar $vCalendarObject, string $filename, OutputInterface $output): void {
try {
$this->calDavBackend->createCalendarObject(
$calendarId,
@@ -327,14 +330,14 @@ class CalendarMigrator implements IMigrator {
CalDavBackend::CALENDAR_TYPE_CALENDAR,
);
} catch (Throwable $e) {
- // Rollback creation of calendar on error
- $output->writeln('Error creating calendar object, rolling back creation of calendar…');
+ $output->writeln("Error creating calendar object, rolling back creation of \"$filename\" calendar…");
$this->calDavBackend->deleteCalendar($calendarId, true);
+ throw new InvalidCalendarException();
}
}
/**
- * @throws CalendarMigratorException
+ * @throws InvalidCalendarException
*/
private function importCalendar(IUser $user, string $filename, string $initialCalendarUri, VCalendar $vCalendar, OutputInterface $output): void {
$principalUri = $this->getPrincipalUri($user);
@@ -392,7 +395,7 @@ class CalendarMigrator implements IMigrator {
$vCalendarObject->add($component);
}
}
- $this->importCalendarObject($calendarId, $vCalendarObject, $output);
+ $this->importCalendarObject($calendarId, $vCalendarObject, $filename, $output);
}
foreach ($ungroupedCalendarComponents as $component) {
@@ -401,7 +404,7 @@ class CalendarMigrator implements IMigrator {
foreach ($this->getRequiredImportComponents($vCalendar, $component) as $component) {
$vCalendarObject->add($component);
}
- $this->importCalendarObject($calendarId, $vCalendarObject, $output);
+ $this->importCalendarObject($calendarId, $vCalendarObject, $filename, $output);
}
}
@@ -446,15 +449,19 @@ class CalendarMigrator implements IMigrator {
}
[$initialCalendarUri, $suffix] = $splitFilename;
- $this->importCalendar(
- $user,
- $filename,
- $initialCalendarUri,
- $vCalendar,
- $output,
- );
-
- $vCalendar->destroy();
+ try {
+ $this->importCalendar(
+ $user,
+ $filename,
+ $initialCalendarUri,
+ $vCalendar,
+ $output,
+ );
+ } catch (InvalidCalendarException $e) {
+ // Allow this exception to skip a failed import
+ } finally {
+ $vCalendar->destroy();
+ }
}
}
}
diff --git a/apps/encryption/composer/composer/InstalledVersions.php b/apps/encryption/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/encryption/composer/composer/InstalledVersions.php
+++ b/apps/encryption/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/encryption/composer/composer/autoload_classmap.php b/apps/encryption/composer/composer/autoload_classmap.php
index 00c57e913a3..0ce1e86f8a6 100644
--- a/apps/encryption/composer/composer/autoload_classmap.php
+++ b/apps/encryption/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/encryption/composer/composer/autoload_namespaces.php b/apps/encryption/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/encryption/composer/composer/autoload_namespaces.php
+++ b/apps/encryption/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/encryption/composer/composer/autoload_psr4.php b/apps/encryption/composer/composer/autoload_psr4.php
index 6baeba923d6..f7061268cc1 100644
--- a/apps/encryption/composer/composer/autoload_psr4.php
+++ b/apps/encryption/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/encryption/composer/composer/autoload_real.php b/apps/encryption/composer/composer/autoload_real.php
index 81daae1bc0d..35091c9ed4a 100644
--- a/apps/encryption/composer/composer/autoload_real.php
+++ b/apps/encryption/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitEncryption
}
spl_autoload_register(array('ComposerAutoloaderInitEncryption', '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('ComposerAutoloaderInitEncryption', '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\ComposerStaticInitEncryption::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitEncryption::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/encryption/l10n/sv.js b/apps/encryption/l10n/sv.js
index 04f70458535..a394003bd56 100644
--- a/apps/encryption/l10n/sv.js
+++ b/apps/encryption/l10n/sv.js
@@ -2,24 +2,24 @@ OC.L10N.register(
"encryption",
{
"Missing recovery key password" : "Saknar lösenord för återställningsnyckel",
- "Please repeat the recovery key password" : "Vänligen upprepa lösenordet för återställningsnyckeln",
+ "Please repeat the recovery key password" : "Upprepa lösenordet för återställningsnyckeln",
"Repeated recovery key password does not match the provided recovery key password" : "Det upprepade lösenordet för återställningsnyckeln matchar inte det tillhandahållna lösenordet för återställningsnyckeln",
"Recovery key successfully enabled" : "Återställningsnyckeln har framgångsrikt aktiverats",
- "Could not enable recovery key. Please check your recovery key password!" : "Kunde inte aktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!",
+ "Could not enable recovery key. Please check your recovery key password!" : "Kunde inte aktivera återställningsnyckeln. Kontrollera ditt lösenord för återställningsnyckeln!",
"Recovery key successfully disabled" : "Återställningsnyckeln har framgångsrikt inaktiverats",
- "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!",
+ "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Kontrollera ditt lösenord för återställningsnyckeln!",
"Missing parameters" : "Saknar parametrar",
- "Please provide the old recovery password" : "Vänligen tillhandahåll det gamla återställningslösenordet ",
- "Please provide a new recovery password" : "Vänligen tillhandahåll ett nytt återställningslösenord",
- "Please repeat the new recovery password" : "Vänligen upprepa det nya återställningslösenordet",
+ "Please provide the old recovery password" : "Tillhandahåll det gamla återställningslösenordet ",
+ "Please provide a new recovery password" : "Tillhandahåll ett nytt återställningslösenord",
+ "Please repeat the new recovery password" : "Upprepa det nya återställningslösenordet",
"Password successfully changed." : "Ändringen av lösenordet lyckades.",
"Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.",
"Recovery Key disabled" : "Återställningsnyckeln inaktiverad",
"Recovery Key enabled" : "Återställningsnyckeln aktiverad",
- "Could not enable the recovery key, please try again or contact your administrator" : "Det gick inte att aktivera återställningsnyckeln, vänligen försök igen eller kontakta din administratör",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Det gick inte att aktivera återställningsnyckeln, försök igen eller kontakta din administratör",
"Could not update the private key password." : "Kunde inte uppdatera lösenord för den privata nyckeln",
- "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Vänligen försök igen.",
- "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt. Vänligen försök igen.",
+ "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Försök igen.",
+ "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt, försök igen.",
"Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades.",
"Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel för krypteringsappen. Uppdatera ditt privata nyckellösenord i dina personliga inställningar för att återställa åtkomst till dina krypterade filer.",
"Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Krypteringsappen är aktiverad men dina nycklar är inte aktiverade. Logga ut och in igen så aktiveras dem. ",
@@ -61,10 +61,10 @@ OC.L10N.register(
"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Om du aktiverar det här alternativet kan du återställa åtkomst till dina krypterade filer vid lösenordsförlust",
"Enabled" : "Aktiverad",
"Disabled" : "Inaktiverad",
- "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan inte dekryptera den här filen, förmodligen är det en delad fil. Vänligen be ägaren av filen att dela om filen med dig.",
- "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Filen kan inte läsas, förmodligen är det en delad fil. Vänligen be ägaren av filen att dela den med dig igen.",
- "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hallå där, \n\nadministratören aktiverade serverkryptering. Dina filer krypterades med lösenordet: \"%s\"\n\nVänligen logga in på webbgränssnittet, gå till avsnittet \"grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.\n\n",
- "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hallå där, <br><br> administratören aktiverade serverkryptering. Alla dina filer har blivit krypterade med lösenordet: <strong>%s</strong>. <br><br>Vänligen logga in på webbgränssnittet, gå till avsnittet \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.<br><br>",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan inte dekryptera den här filen, förmodligen är det en delad fil. Be ägaren av filen att dela om filen med dig.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Filen kan inte läsas, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig igen.",
+ "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hallå där, \n\nadministratören aktiverade serverkryptering. Dina filer krypterades med lösenordet: \"%s\"\n\nLogga in på webbgränssnittet, gå till avsnittet \"grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.\n\n",
+ "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hallå där, <br><br> administratören aktiverade serverkryptering. Alla dina filer har blivit krypterade med lösenordet: <strong>%s</strong>. <br><br>Logga in på webbgränssnittet, gå till avsnittet \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.<br><br>",
"Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password \"%s\".\n\nPlease login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.\n\n" : "Hej,\n\nadministratören har aktiverat serverkryptering. Dina filer krypterades med lösenordet \"%s\".\n\nVänligen logga in i webbgränssnittet, navigera till \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att skriva in detta lösenordet i fältet \"gammalt inloggningslösenord\" samt ditt nuvarande inloggningslösenord.\n\n"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/sv.json b/apps/encryption/l10n/sv.json
index bc1544b2ab1..d3a86285273 100644
--- a/apps/encryption/l10n/sv.json
+++ b/apps/encryption/l10n/sv.json
@@ -1,23 +1,23 @@
{ "translations": {
"Missing recovery key password" : "Saknar lösenord för återställningsnyckel",
- "Please repeat the recovery key password" : "Vänligen upprepa lösenordet för återställningsnyckeln",
+ "Please repeat the recovery key password" : "Upprepa lösenordet för återställningsnyckeln",
"Repeated recovery key password does not match the provided recovery key password" : "Det upprepade lösenordet för återställningsnyckeln matchar inte det tillhandahållna lösenordet för återställningsnyckeln",
"Recovery key successfully enabled" : "Återställningsnyckeln har framgångsrikt aktiverats",
- "Could not enable recovery key. Please check your recovery key password!" : "Kunde inte aktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!",
+ "Could not enable recovery key. Please check your recovery key password!" : "Kunde inte aktivera återställningsnyckeln. Kontrollera ditt lösenord för återställningsnyckeln!",
"Recovery key successfully disabled" : "Återställningsnyckeln har framgångsrikt inaktiverats",
- "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!",
+ "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Kontrollera ditt lösenord för återställningsnyckeln!",
"Missing parameters" : "Saknar parametrar",
- "Please provide the old recovery password" : "Vänligen tillhandahåll det gamla återställningslösenordet ",
- "Please provide a new recovery password" : "Vänligen tillhandahåll ett nytt återställningslösenord",
- "Please repeat the new recovery password" : "Vänligen upprepa det nya återställningslösenordet",
+ "Please provide the old recovery password" : "Tillhandahåll det gamla återställningslösenordet ",
+ "Please provide a new recovery password" : "Tillhandahåll ett nytt återställningslösenord",
+ "Please repeat the new recovery password" : "Upprepa det nya återställningslösenordet",
"Password successfully changed." : "Ändringen av lösenordet lyckades.",
"Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.",
"Recovery Key disabled" : "Återställningsnyckeln inaktiverad",
"Recovery Key enabled" : "Återställningsnyckeln aktiverad",
- "Could not enable the recovery key, please try again or contact your administrator" : "Det gick inte att aktivera återställningsnyckeln, vänligen försök igen eller kontakta din administratör",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Det gick inte att aktivera återställningsnyckeln, försök igen eller kontakta din administratör",
"Could not update the private key password." : "Kunde inte uppdatera lösenord för den privata nyckeln",
- "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Vänligen försök igen.",
- "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt. Vänligen försök igen.",
+ "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Försök igen.",
+ "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt, försök igen.",
"Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades.",
"Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel för krypteringsappen. Uppdatera ditt privata nyckellösenord i dina personliga inställningar för att återställa åtkomst till dina krypterade filer.",
"Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Krypteringsappen är aktiverad men dina nycklar är inte aktiverade. Logga ut och in igen så aktiveras dem. ",
@@ -59,10 +59,10 @@
"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Om du aktiverar det här alternativet kan du återställa åtkomst till dina krypterade filer vid lösenordsförlust",
"Enabled" : "Aktiverad",
"Disabled" : "Inaktiverad",
- "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan inte dekryptera den här filen, förmodligen är det en delad fil. Vänligen be ägaren av filen att dela om filen med dig.",
- "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Filen kan inte läsas, förmodligen är det en delad fil. Vänligen be ägaren av filen att dela den med dig igen.",
- "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hallå där, \n\nadministratören aktiverade serverkryptering. Dina filer krypterades med lösenordet: \"%s\"\n\nVänligen logga in på webbgränssnittet, gå till avsnittet \"grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.\n\n",
- "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hallå där, <br><br> administratören aktiverade serverkryptering. Alla dina filer har blivit krypterade med lösenordet: <strong>%s</strong>. <br><br>Vänligen logga in på webbgränssnittet, gå till avsnittet \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.<br><br>",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan inte dekryptera den här filen, förmodligen är det en delad fil. Be ägaren av filen att dela om filen med dig.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Filen kan inte läsas, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig igen.",
+ "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hallå där, \n\nadministratören aktiverade serverkryptering. Dina filer krypterades med lösenordet: \"%s\"\n\nLogga in på webbgränssnittet, gå till avsnittet \"grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.\n\n",
+ "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hallå där, <br><br> administratören aktiverade serverkryptering. Alla dina filer har blivit krypterade med lösenordet: <strong>%s</strong>. <br><br>Logga in på webbgränssnittet, gå till avsnittet \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.<br><br>",
"Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password \"%s\".\n\nPlease login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.\n\n" : "Hej,\n\nadministratören har aktiverat serverkryptering. Dina filer krypterades med lösenordet \"%s\".\n\nVänligen logga in i webbgränssnittet, navigera till \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att skriva in detta lösenordet i fältet \"gammalt inloggningslösenord\" samt ditt nuvarande inloggningslösenord.\n\n"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/composer/composer/InstalledVersions.php b/apps/federatedfilesharing/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/federatedfilesharing/composer/composer/InstalledVersions.php
+++ b/apps/federatedfilesharing/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/federatedfilesharing/composer/composer/autoload_classmap.php b/apps/federatedfilesharing/composer/composer/autoload_classmap.php
index c4d891d9c24..a5ec2ecd822 100644
--- a/apps/federatedfilesharing/composer/composer/autoload_classmap.php
+++ b/apps/federatedfilesharing/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/federatedfilesharing/composer/composer/autoload_namespaces.php b/apps/federatedfilesharing/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/federatedfilesharing/composer/composer/autoload_namespaces.php
+++ b/apps/federatedfilesharing/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/federatedfilesharing/composer/composer/autoload_psr4.php b/apps/federatedfilesharing/composer/composer/autoload_psr4.php
index 7f2217448ff..6d05dfbb4ed 100644
--- a/apps/federatedfilesharing/composer/composer/autoload_psr4.php
+++ b/apps/federatedfilesharing/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/federatedfilesharing/composer/composer/autoload_real.php b/apps/federatedfilesharing/composer/composer/autoload_real.php
index 25a7e49d09f..0a8c5bf9588 100644
--- a/apps/federatedfilesharing/composer/composer/autoload_real.php
+++ b/apps/federatedfilesharing/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitFederatedFileSharing
}
spl_autoload_register(array('ComposerAutoloaderInitFederatedFileSharing', '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('ComposerAutoloaderInitFederatedFileSharing', '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\ComposerStaticInitFederatedFileSharing::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitFederatedFileSharing::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/federation/composer/composer/InstalledVersions.php b/apps/federation/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/federation/composer/composer/InstalledVersions.php
+++ b/apps/federation/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/federation/composer/composer/autoload_classmap.php b/apps/federation/composer/composer/autoload_classmap.php
index 14d06fad8aa..1be343a65d1 100644
--- a/apps/federation/composer/composer/autoload_classmap.php
+++ b/apps/federation/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/federation/composer/composer/autoload_namespaces.php b/apps/federation/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/federation/composer/composer/autoload_namespaces.php
+++ b/apps/federation/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/federation/composer/composer/autoload_psr4.php b/apps/federation/composer/composer/autoload_psr4.php
index d815aedf125..9be3a9affb8 100644
--- a/apps/federation/composer/composer/autoload_psr4.php
+++ b/apps/federation/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/federation/composer/composer/autoload_real.php b/apps/federation/composer/composer/autoload_real.php
index fed3f44342e..40dc84ff20a 100644
--- a/apps/federation/composer/composer/autoload_real.php
+++ b/apps/federation/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitFederation
}
spl_autoload_register(array('ComposerAutoloaderInitFederation', '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('ComposerAutoloaderInitFederation', '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\ComposerStaticInitFederation::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitFederation::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/files/composer/composer/InstalledVersions.php b/apps/files/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/files/composer/composer/InstalledVersions.php
+++ b/apps/files/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php
index bc2e496294b..05ea0a46ca1 100644
--- a/apps/files/composer/composer/autoload_classmap.php
+++ b/apps/files/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/files/composer/composer/autoload_namespaces.php b/apps/files/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/files/composer/composer/autoload_namespaces.php
+++ b/apps/files/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/files/composer/composer/autoload_psr4.php b/apps/files/composer/composer/autoload_psr4.php
index c4f95a2b150..dcb1e811399 100644
--- a/apps/files/composer/composer/autoload_psr4.php
+++ b/apps/files/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/files/composer/composer/autoload_real.php b/apps/files/composer/composer/autoload_real.php
index 462094eaafc..5b2c0e86043 100644
--- a/apps/files/composer/composer/autoload_real.php
+++ b/apps/files/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitFiles
}
spl_autoload_register(array('ComposerAutoloaderInitFiles', '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('ComposerAutoloaderInitFiles', '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\ComposerStaticInitFiles::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitFiles::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index d104e01a3e4..8acc311ea36 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -72,7 +72,7 @@ OC.L10N.register(
"{dirs} and {files}" : "{dirs} и {files}",
"_including %n hidden_::_including %n hidden_" : ["включая %n скрытый","включая %n скрытых","включая %n скрытых","включая %n скрытых"],
"You don’t have permission to upload or create files here" : "У вас нет прав на создание или загрузку файлов в эту папку.",
- "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Загружаются %n файлов"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Передача %n файла","Передача %n файлов","Передача %n файлов","Передача %n файлов"],
"New" : "Новый",
"Select file range" : "Выбор диапазона файлов",
"{used} of {quota} used" : "использовано {used} из {quota}",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index df48abba01d..1786e8c2eef 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -70,7 +70,7 @@
"{dirs} and {files}" : "{dirs} и {files}",
"_including %n hidden_::_including %n hidden_" : ["включая %n скрытый","включая %n скрытых","включая %n скрытых","включая %n скрытых"],
"You don’t have permission to upload or create files here" : "У вас нет прав на создание или загрузку файлов в эту папку.",
- "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Загружаются %n файлов"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Передача %n файла","Передача %n файлов","Передача %n файлов","Передача %n файлов"],
"New" : "Новый",
"Select file range" : "Выбор диапазона файлов",
"{used} of {quota} used" : "использовано {used} из {quota}",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index 477795e1646..039447581cd 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -45,7 +45,7 @@ OC.L10N.register(
"Pending" : "Väntar",
"Unable to determine date" : "Misslyckades avgöra datum",
"This operation is forbidden" : "Denna operation är förbjuden",
- "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, vänligen kontrollera loggarna eller kontakta administratören",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören",
"Could not move \"{file}\", target exists" : "Kunde inte flytta \"{file}\", filen existerar redan",
"Could not move \"{file}\"" : "Kunde inte flytta \"{file}\"",
"copy" : "kopia",
@@ -55,7 +55,7 @@ OC.L10N.register(
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopierade {origin} och {nbfiles} andra filer i {destination}",
"{newName} already exists" : "{newName} existerar redan",
"Could not rename \"{fileName}\", it does not exist any more" : "Kunde inte döpa om \"{fileName}\", filen existerar inte mer",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Vänligen välj ett annat namn.",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Välj ett annat namn.",
"Could not rename \"{fileName}\"" : "Kan inte döpa om \"{fileName}\"",
"Could not create file \"{file}\"" : "Kunde inte skapa fil \"{fileName}\"",
"Could not create file \"{file}\" because it already exists" : "Kunde inte skapa fil \"{file}\" därför att den redan existerar",
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 4898524a0ba..7ea4279571f 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -43,7 +43,7 @@
"Pending" : "Väntar",
"Unable to determine date" : "Misslyckades avgöra datum",
"This operation is forbidden" : "Denna operation är förbjuden",
- "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, vänligen kontrollera loggarna eller kontakta administratören",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören",
"Could not move \"{file}\", target exists" : "Kunde inte flytta \"{file}\", filen existerar redan",
"Could not move \"{file}\"" : "Kunde inte flytta \"{file}\"",
"copy" : "kopia",
@@ -53,7 +53,7 @@
"Copied {origin} and {nbfiles} other files inside {destination}" : "Kopierade {origin} och {nbfiles} andra filer i {destination}",
"{newName} already exists" : "{newName} existerar redan",
"Could not rename \"{fileName}\", it does not exist any more" : "Kunde inte döpa om \"{fileName}\", filen existerar inte mer",
- "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Vänligen välj ett annat namn.",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Välj ett annat namn.",
"Could not rename \"{fileName}\"" : "Kan inte döpa om \"{fileName}\"",
"Could not create file \"{file}\"" : "Kunde inte skapa fil \"{fileName}\"",
"Could not create file \"{file}\" because it already exists" : "Kunde inte skapa fil \"{file}\" därför att den redan existerar",
diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml
index ea8e29c0166..f9b2b8341ce 100644
--- a/apps/files_external/appinfo/info.xml
+++ b/apps/files_external/appinfo/info.xml
@@ -9,7 +9,7 @@ This application enables administrators to configure connections to external sto
External storage can be configured using the GUI or at the command line. This second option provides the advanced user with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation.
</description>
- <version>1.16.0</version>
+ <version>1.16.1</version>
<licence>agpl</licence>
<author>Robin Appelman</author>
<author>Michael Gapczynski</author>
diff --git a/apps/files_external/l10n/hu.js b/apps/files_external/l10n/hu.js
index 653d4717022..527dd726383 100644
--- a/apps/files_external/l10n/hu.js
+++ b/apps/files_external/l10n/hu.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Read only" : "Csak olvasható",
"Delete" : "Törlés",
"Admin defined" : "Rendszergazda által definiálva",
+ "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Az automatikus állapotellenőrzés a beállított tárolók nagy száma miatt ki van kapcsolva, kattintson az állapot ellenőrzéséhez",
"Are you sure you want to delete this external storage?" : "Biztos, hogy törli ezt a külső tárolót?",
"Delete storage?" : "Tároló törlése?",
"Saved" : "Mentve",
diff --git a/apps/files_external/l10n/hu.json b/apps/files_external/l10n/hu.json
index 5538e42226c..9323eee7cfc 100644
--- a/apps/files_external/l10n/hu.json
+++ b/apps/files_external/l10n/hu.json
@@ -20,6 +20,7 @@
"Read only" : "Csak olvasható",
"Delete" : "Törlés",
"Admin defined" : "Rendszergazda által definiálva",
+ "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Az automatikus állapotellenőrzés a beállított tárolók nagy száma miatt ki van kapcsolva, kattintson az állapot ellenőrzéséhez",
"Are you sure you want to delete this external storage?" : "Biztos, hogy törli ezt a külső tárolót?",
"Delete storage?" : "Tároló törlése?",
"Saved" : "Mentve",
diff --git a/apps/files_external/l10n/sv.js b/apps/files_external/l10n/sv.js
index a38f38f4bb4..d438d88e665 100644
--- a/apps/files_external/l10n/sv.js
+++ b/apps/files_external/l10n/sv.js
@@ -6,7 +6,7 @@ OC.L10N.register(
"System" : "System",
"Grant access" : "Bevilja åtkomst",
"Error configuring OAuth1" : "Misslyckades konfigurera OAuth1",
- "Please provide a valid app key and secret." : "Vänligen ange en giltig applikationsnyckel och hemlig fras.",
+ "Please provide a valid app key and secret." : "Ange en giltig applikationsnyckel och hemlig fras.",
"Error configuring OAuth2" : "Misslyckades konfigurera OAuth2",
"Generate keys" : "Generera nycklar",
"Error generating key pair" : "Fel vid generering av nyckelpar",
@@ -35,7 +35,7 @@ OC.L10N.register(
"External mount error" : "Fel vid extern montering",
"external-storage" : "extern-lagring",
"Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Kunde inte hämta lista med Windows nätverksmonteringspunkter: Tomt svar från servern",
- "Please enter the credentials for the {mount} mount" : "Vänligen ange uppgifterna för {mount} montering",
+ "Please enter the credentials for the {mount} mount" : "Ange uppgifterna för {mount} montering",
"Username" : "Användarnamn",
"Password" : "Lösenord",
"Credentials saved" : "Sparade uppgifter",
diff --git a/apps/files_external/l10n/sv.json b/apps/files_external/l10n/sv.json
index 52039a41548..11286b78c2d 100644
--- a/apps/files_external/l10n/sv.json
+++ b/apps/files_external/l10n/sv.json
@@ -4,7 +4,7 @@
"System" : "System",
"Grant access" : "Bevilja åtkomst",
"Error configuring OAuth1" : "Misslyckades konfigurera OAuth1",
- "Please provide a valid app key and secret." : "Vänligen ange en giltig applikationsnyckel och hemlig fras.",
+ "Please provide a valid app key and secret." : "Ange en giltig applikationsnyckel och hemlig fras.",
"Error configuring OAuth2" : "Misslyckades konfigurera OAuth2",
"Generate keys" : "Generera nycklar",
"Error generating key pair" : "Fel vid generering av nyckelpar",
@@ -33,7 +33,7 @@
"External mount error" : "Fel vid extern montering",
"external-storage" : "extern-lagring",
"Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Kunde inte hämta lista med Windows nätverksmonteringspunkter: Tomt svar från servern",
- "Please enter the credentials for the {mount} mount" : "Vänligen ange uppgifterna för {mount} montering",
+ "Please enter the credentials for the {mount} mount" : "Ange uppgifterna för {mount} montering",
"Username" : "Användarnamn",
"Password" : "Lösenord",
"Credentials saved" : "Sparade uppgifter",
diff --git a/apps/files_external/lib/Migration/Version1011Date20200630192246.php b/apps/files_external/lib/Migration/Version1011Date20200630192246.php
index 5ec289428fb..c2a53e346f1 100644
--- a/apps/files_external/lib/Migration/Version1011Date20200630192246.php
+++ b/apps/files_external/lib/Migration/Version1011Date20200630192246.php
@@ -116,7 +116,7 @@ class Version1011Date20200630192246 extends SimpleMigrationStep {
]);
$table->addColumn('value', Types::STRING, [
'notnull' => false,
- 'length' => 4096,
+ 'length' => 4000,
]);
$table->setPrimaryKey(['config_id']);
$table->addUniqueIndex(['mount_id', 'key'], 'config_mount_key');
diff --git a/apps/files_external/lib/Migration/Version1016Date20220324154536.php b/apps/files_external/lib/Migration/Version1016Date20220324154536.php
new file mode 100644
index 00000000000..a2a7ecaff17
--- /dev/null
+++ b/apps/files_external/lib/Migration/Version1016Date20220324154536.php
@@ -0,0 +1,54 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2022 Joas Schilling <coding@schilljs.com>
+ *
+ * @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/>.
+ */
+
+namespace OCA\Files_External\Migration;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version1016Date20220324154536 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('external_config');
+ $column = $table->getColumn('value');
+
+ if ($column->getLength() > 4000) {
+ $column->setLength(4000);
+ return $schema;
+ }
+
+ return null;
+ }
+}
diff --git a/apps/files_sharing/composer/composer/InstalledVersions.php b/apps/files_sharing/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/files_sharing/composer/composer/InstalledVersions.php
+++ b/apps/files_sharing/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php
index 1bd39d408bb..3a98cb4577f 100644
--- a/apps/files_sharing/composer/composer/autoload_classmap.php
+++ b/apps/files_sharing/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/files_sharing/composer/composer/autoload_namespaces.php b/apps/files_sharing/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/files_sharing/composer/composer/autoload_namespaces.php
+++ b/apps/files_sharing/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/files_sharing/composer/composer/autoload_psr4.php b/apps/files_sharing/composer/composer/autoload_psr4.php
index 9fb758e4059..5c83be8bb86 100644
--- a/apps/files_sharing/composer/composer/autoload_psr4.php
+++ b/apps/files_sharing/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/files_sharing/composer/composer/autoload_real.php b/apps/files_sharing/composer/composer/autoload_real.php
index 0b3bf55f31e..24054045984 100644
--- a/apps/files_sharing/composer/composer/autoload_real.php
+++ b/apps/files_sharing/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitFiles_Sharing
}
spl_autoload_register(array('ComposerAutoloaderInitFiles_Sharing', '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('ComposerAutoloaderInitFiles_Sharing', '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\ComposerStaticInitFiles_Sharing::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitFiles_Sharing::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js
index e80b06f1fb4..2ddac23ce5a 100644
--- a/apps/files_sharing/l10n/cs.js
+++ b/apps/files_sharing/l10n/cs.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "Nepodařilo se uzamknout popis umístění",
"Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů",
"Share must at least have READ or CREATE permissions" : "Je třeba, aby sdílení mělo alespoň oprávnění pro ČÍST nebo VYTVÁŘET",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Pokud je nastaveno oprávnění AKTUALIZOVAT nebo MAZAT je třeba, aby sdílení mělo oprávnění ČÍST.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Zaslání hesla prostřednictvím Nextcloud Talk“ pro sdílení souboru či složky se nezdařilo protože Nextcloud Talk není zapnuté.",
"shared by %s" : "sdílí %s",
"Download all files" : "Stáhnout všechny soubory",
diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json
index c88349d580d..38fb793fe63 100644
--- a/apps/files_sharing/l10n/cs.json
+++ b/apps/files_sharing/l10n/cs.json
@@ -122,7 +122,6 @@
"Could not lock path" : "Nepodařilo se uzamknout popis umístění",
"Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů",
"Share must at least have READ or CREATE permissions" : "Je třeba, aby sdílení mělo alespoň oprávnění pro ČÍST nebo VYTVÁŘET",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Pokud je nastaveno oprávnění AKTUALIZOVAT nebo MAZAT je třeba, aby sdílení mělo oprávnění ČÍST.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Zaslání hesla prostřednictvím Nextcloud Talk“ pro sdílení souboru či složky se nezdařilo protože Nextcloud Talk není zapnuté.",
"shared by %s" : "sdílí %s",
"Download all files" : "Stáhnout všechny soubory",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index b731cf03a84..6cc439d686e 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Could not lock path" : "Pfad konnte nicht gesperrt werden",
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens Lese- oder Erstell-Rechte haben",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Die Freigabe muss das Recht Lesen haben, wenn das Recht für Aktualisieren oder Löschen gesetzt ist.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.",
"shared by %s" : "von %s geteilt",
"Download all files" : "Alle Dateien herunterladen",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index 36790acd0a4..7840d3acbe2 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -121,7 +121,6 @@
"Could not lock path" : "Pfad konnte nicht gesperrt werden",
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens Lese- oder Erstell-Rechte haben",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Die Freigabe muss das Recht Lesen haben, wenn das Recht für Aktualisieren oder Löschen gesetzt ist.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.",
"shared by %s" : "von %s geteilt",
"Download all files" : "Alle Dateien herunterladen",
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index 1cb10b7704e..adf92d3c079 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "Pfad konnte nicht gesperrt werden",
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens LESEN- oder ERSTELLEN-Rechte haben",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Die Freigabe muss das Recht LESEN haben, wenn das Recht AKTUALISIEREN oder LÖSCHEN gesetzt ist.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.",
"shared by %s" : "von %s geteilt",
"Download all files" : "Alle Dateien herunterladen",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index f12c03e8be9..e3a82f7b8b1 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -122,7 +122,6 @@
"Could not lock path" : "Pfad konnte nicht gesperrt werden",
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens LESEN- oder ERSTELLEN-Rechte haben",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Die Freigabe muss das Recht LESEN haben, wenn das Recht AKTUALISIEREN oder LÖSCHEN gesetzt ist.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.",
"shared by %s" : "von %s geteilt",
"Download all files" : "Alle Dateien herunterladen",
diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js
index 2a59266c958..521d0fc79b1 100644
--- a/apps/files_sharing/l10n/el.js
+++ b/apps/files_sharing/l10n/el.js
@@ -101,7 +101,9 @@ OC.L10N.register(
"Wrong share ID, share doesn't exist" : "Λάθος ID διαμοιρασμού, διαμοιρασμός δεν υπάρχει",
"Could not delete share" : "Αδυναμία διαγραφής κοινόχρηστου φακέλου",
"Please specify a file or folder path" : "Παρακαλούμε καθορίστε την διαδρομή για το αρχείο ή τον φάκελο",
+ "Wrong path, file/folder does not exist" : "Λάθος διαδρομή, το αρχείο/φάκελος δεν υπάρχει",
"Could not create share" : "Αδυναμία δημιουργίας κοινόχρηστου",
+ "Invalid permissions" : "Μη έγκυρα δικαιώματα",
"Please specify a valid user" : "Παρακαλούμε καθορίστε έναν έγκυρο χρήστη",
"Group sharing is disabled by the administrator" : "Διαμοιρασμός σε ομάδες είναι απενεργοποιημένος από τον διαχειρηστή",
"Please specify a valid group" : "Παρακαλούμε καθορίστε μια έγκυρη ομάδα",
@@ -134,10 +136,22 @@ OC.L10N.register(
"This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Η εφαρμογή επιτρέπει στους χρήστες να διαμοιράζονται αρχεία μέσω του Nextcloud. Εάν ενεργοποιηθεί, ο διαχειριστής μπορεί να επιλέξει ποιές ομάδες μπορούν να διαμοιράζοντι αρχεία. υτοί οι χρήστες μπορούν τότε να διαμοιράζονται αρχεία και φακέλους με άλλους χρήστες και ομάδες μέσα στο Nextcloud. Επιπλέον, εάν ο διαχειριστής ενεργοποιήσει τη δυνατότητα συνδέσμου κοινής χρήσης, μπορεί να χρησιμοποιηθεί ένας εξωτερικός σύνδεσμος για την κοινή χρήση αρχείων με άλλους χρήστες εκτός του Nextcloud. Οι διαχειριστές μπορούν επίσης να επιβάλλουν κωδικούς πρόσβασης, ημερομηνίες λήξης και να επιτρέπουν την κοινή χρήση μεταξύ διακομιστών μέσω συνδέσμων κοινής χρήσης, καθώς και την κοινή χρήση από κινητές συσκευές.\nΗ απενεργοποίηση της λειτουργίας καταργεί τα κοινόχρηστα αρχεία και τους φακέλους στο διακομιστή για όλους τους παραλήπτες κοινής χρήσης, καθώς και για τους υπολογιστές-πελάτες συγχρονισμού και τις εφαρμογές για κινητά. Περισσότερες πληροφορίες διατίθενται στην Τεκμηρίωση Nextcloud.",
"Sharing" : "Διαμοιρασμός",
"Accept user and group shares by default" : "Αποδοχή διαμοιρασμών από χρήστες και ομάδες από προεπιλογή",
+ "Error while toggling options" : "Σφάλμα κατά την εναλλαγή επιλογών",
+ "Set default folder for accepted shares" : "Ορισμός προεπιλεγμένου φακέλου για αποδεκτά κοινόχρηστα στοιχεία",
+ "Reset" : "Επαναφορά",
+ "Reset folder to system default" : "Επαναφορά του φακέλου στις προεπιλογές συστήματος",
+ "Choose a default folder for accepted shares" : "Επιλέξτε έναν προεπιλεγμένο φάκελο για τα κοινόχρηστα στοιχεία που γίνονται αποδεκτά ",
+ "Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
+ "Unknown error" : "Άγνωστο σφάλμα",
"Allow editing" : "Επιτρέπεται η επεξεργασία",
"Read only" : "Μόνο για ανάγνωση",
"Allow upload and editing" : "Επέτρεψε την μεταφόρτωση και επεξεργασία",
"File drop (upload only)" : "Απόθεση αρχείου (μόνο μεταφόρτωση)",
+ "Custom permissions" : "Προσαρμοσμένα δικαιώματα",
+ "Read" : "Ανάγνωση",
+ "Upload" : "Μεταφόρτωση",
+ "Edit" : "Επεξεργασία",
+ "Bundled permissions" : "Ομαδοποιημένα δικαιώματα",
"Allow creating" : "Επιτρέπεται η δημιουργία",
"Allow deleting" : "Επιτρέπετε η διαγραφή",
"Allow resharing" : "Επιτρέπεται ο επαναδιαμοιρασμός",
@@ -233,6 +247,7 @@ OC.L10N.register(
"invalid permissions" : "μη έγκυρα δικαιώματα",
"Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους",
"Sharing sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Η αποστολή του κοινόχρηστου κωδικού πρόσβασης από το Nextcloud Talk απέτυχε επειδή δεν είναι ενεργοποιημένο το Nextcloud Talk",
- "Download %s" : "Λήψη %s"
+ "Download %s" : "Λήψη %s",
+ "Cannot change permissions for public share links" : "Δεν είναι δυνατή η αλλαγή των δικαιωμάτων για συνδέσμους δημόσιας κοινής χρήσης"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json
index 8c2c68cec71..daa1fabec33 100644
--- a/apps/files_sharing/l10n/el.json
+++ b/apps/files_sharing/l10n/el.json
@@ -99,7 +99,9 @@
"Wrong share ID, share doesn't exist" : "Λάθος ID διαμοιρασμού, διαμοιρασμός δεν υπάρχει",
"Could not delete share" : "Αδυναμία διαγραφής κοινόχρηστου φακέλου",
"Please specify a file or folder path" : "Παρακαλούμε καθορίστε την διαδρομή για το αρχείο ή τον φάκελο",
+ "Wrong path, file/folder does not exist" : "Λάθος διαδρομή, το αρχείο/φάκελος δεν υπάρχει",
"Could not create share" : "Αδυναμία δημιουργίας κοινόχρηστου",
+ "Invalid permissions" : "Μη έγκυρα δικαιώματα",
"Please specify a valid user" : "Παρακαλούμε καθορίστε έναν έγκυρο χρήστη",
"Group sharing is disabled by the administrator" : "Διαμοιρασμός σε ομάδες είναι απενεργοποιημένος από τον διαχειρηστή",
"Please specify a valid group" : "Παρακαλούμε καθορίστε μια έγκυρη ομάδα",
@@ -132,10 +134,22 @@
"This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Η εφαρμογή επιτρέπει στους χρήστες να διαμοιράζονται αρχεία μέσω του Nextcloud. Εάν ενεργοποιηθεί, ο διαχειριστής μπορεί να επιλέξει ποιές ομάδες μπορούν να διαμοιράζοντι αρχεία. υτοί οι χρήστες μπορούν τότε να διαμοιράζονται αρχεία και φακέλους με άλλους χρήστες και ομάδες μέσα στο Nextcloud. Επιπλέον, εάν ο διαχειριστής ενεργοποιήσει τη δυνατότητα συνδέσμου κοινής χρήσης, μπορεί να χρησιμοποιηθεί ένας εξωτερικός σύνδεσμος για την κοινή χρήση αρχείων με άλλους χρήστες εκτός του Nextcloud. Οι διαχειριστές μπορούν επίσης να επιβάλλουν κωδικούς πρόσβασης, ημερομηνίες λήξης και να επιτρέπουν την κοινή χρήση μεταξύ διακομιστών μέσω συνδέσμων κοινής χρήσης, καθώς και την κοινή χρήση από κινητές συσκευές.\nΗ απενεργοποίηση της λειτουργίας καταργεί τα κοινόχρηστα αρχεία και τους φακέλους στο διακομιστή για όλους τους παραλήπτες κοινής χρήσης, καθώς και για τους υπολογιστές-πελάτες συγχρονισμού και τις εφαρμογές για κινητά. Περισσότερες πληροφορίες διατίθενται στην Τεκμηρίωση Nextcloud.",
"Sharing" : "Διαμοιρασμός",
"Accept user and group shares by default" : "Αποδοχή διαμοιρασμών από χρήστες και ομάδες από προεπιλογή",
+ "Error while toggling options" : "Σφάλμα κατά την εναλλαγή επιλογών",
+ "Set default folder for accepted shares" : "Ορισμός προεπιλεγμένου φακέλου για αποδεκτά κοινόχρηστα στοιχεία",
+ "Reset" : "Επαναφορά",
+ "Reset folder to system default" : "Επαναφορά του φακέλου στις προεπιλογές συστήματος",
+ "Choose a default folder for accepted shares" : "Επιλέξτε έναν προεπιλεγμένο φάκελο για τα κοινόχρηστα στοιχεία που γίνονται αποδεκτά ",
+ "Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή",
+ "Unknown error" : "Άγνωστο σφάλμα",
"Allow editing" : "Επιτρέπεται η επεξεργασία",
"Read only" : "Μόνο για ανάγνωση",
"Allow upload and editing" : "Επέτρεψε την μεταφόρτωση και επεξεργασία",
"File drop (upload only)" : "Απόθεση αρχείου (μόνο μεταφόρτωση)",
+ "Custom permissions" : "Προσαρμοσμένα δικαιώματα",
+ "Read" : "Ανάγνωση",
+ "Upload" : "Μεταφόρτωση",
+ "Edit" : "Επεξεργασία",
+ "Bundled permissions" : "Ομαδοποιημένα δικαιώματα",
"Allow creating" : "Επιτρέπεται η δημιουργία",
"Allow deleting" : "Επιτρέπετε η διαγραφή",
"Allow resharing" : "Επιτρέπεται ο επαναδιαμοιρασμός",
@@ -231,6 +245,7 @@
"invalid permissions" : "μη έγκυρα δικαιώματα",
"Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους",
"Sharing sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Η αποστολή του κοινόχρηστου κωδικού πρόσβασης από το Nextcloud Talk απέτυχε επειδή δεν είναι ενεργοποιημένο το Nextcloud Talk",
- "Download %s" : "Λήψη %s"
+ "Download %s" : "Λήψη %s",
+ "Cannot change permissions for public share links" : "Δεν είναι δυνατή η αλλαγή των δικαιωμάτων για συνδέσμους δημόσιας κοινής χρήσης"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index 266f22ff6e7..db1fffb1546 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "No se ha podido bloquear la ruta",
"Wrong or no update parameter given" : "No se ha suministrado un parametro correcto",
"Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está activado.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"El envío de la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.",
"shared by %s" : "compartido por %s",
"Download all files" : "Descargar todos los archivos",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index 5eb24043838..cd4538810b7 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -122,7 +122,6 @@
"Could not lock path" : "No se ha podido bloquear la ruta",
"Wrong or no update parameter given" : "No se ha suministrado un parametro correcto",
"Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está activado.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"El envío de la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.",
"shared by %s" : "compartido por %s",
"Download all files" : "Descargar todos los archivos",
diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js
index 324ba68e720..015c99450f0 100644
--- a/apps/files_sharing/l10n/eu.js
+++ b/apps/files_sharing/l10n/eu.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "Ezin izan da bidea blokeatu",
"Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da",
"Share must at least have READ or CREATE permissions" : "Partekatzeak gutxienez IRAKURRI edo SORTU egiteko baimenak behar ditu",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Partekatzeak IRAKURRI egiteko baimenak behar ditu, EGUNERATU edo EZABATU baimenak baldin badauzka.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.",
"shared by %s" : "%s erabiltzaileak partekatua",
"Download all files" : "Deskargatu fitxategi guztiak",
diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json
index a0e3ec3713d..7a64bb164d6 100644
--- a/apps/files_sharing/l10n/eu.json
+++ b/apps/files_sharing/l10n/eu.json
@@ -122,7 +122,6 @@
"Could not lock path" : "Ezin izan da bidea blokeatu",
"Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da",
"Share must at least have READ or CREATE permissions" : "Partekatzeak gutxienez IRAKURRI edo SORTU egiteko baimenak behar ditu",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Partekatzeak IRAKURRI egiteko baimenak behar ditu, EGUNERATU edo EZABATU baimenak baldin badauzka.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.",
"shared by %s" : "%s erabiltzaileak partekatua",
"Download all files" : "Deskargatu fitxategi guztiak",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 6a57a95dfaf..ff4480866e0 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Could not lock path" : "Impossible de verrouiller le chemin",
"Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ",
"Share must at least have READ or CREATE permissions" : "Le partage nécessite de disposer à minima des permissions de LECTURE et de CREATION",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Le partage nécessite de disposer de la permission de LECTURE si les permissions de MODIFICATION et SUPPRESSION sont définies",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"L'envoi du mot de passe par Nextcloud Talk\" pour partager un fichier a échoué car Nextcloud Talk n'est pas activé",
"shared by %s" : "partagé par %s",
"Download all files" : "Télécharger tous les fichiers",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index af86ece4acc..bec5504c88d 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -121,7 +121,6 @@
"Could not lock path" : "Impossible de verrouiller le chemin",
"Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ",
"Share must at least have READ or CREATE permissions" : "Le partage nécessite de disposer à minima des permissions de LECTURE et de CREATION",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Le partage nécessite de disposer de la permission de LECTURE si les permissions de MODIFICATION et SUPPRESSION sont définies",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"L'envoi du mot de passe par Nextcloud Talk\" pour partager un fichier a échoué car Nextcloud Talk n'est pas activé",
"shared by %s" : "partagé par %s",
"Download all files" : "Télécharger tous les fichiers",
diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js
index 9539e51ffb0..68058b83832 100644
--- a/apps/files_sharing/l10n/hu.js
+++ b/apps/files_sharing/l10n/hu.js
@@ -101,6 +101,7 @@ OC.L10N.register(
"Wrong share ID, share doesn't exist" : "Hibás megosztási azonosító, a megosztás nem létezik",
"Could not delete share" : "A megosztás nem törölhető",
"Please specify a file or folder path" : "Adjon meg egy fájl- vagy mappaútvonalat",
+ "Wrong path, file/folder does not exist" : "Hibás útvonal, a fájl/mappa nem létezik",
"Could not create share" : "A megosztás nem hozható létre",
"Invalid permissions" : "Érvénytelen jogosultságok",
"Please specify a valid user" : "Adjon meg egy érvényes felhasználót",
@@ -123,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "Nem sikerült zárolni az útvonalat",
"Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter",
"Share must at least have READ or CREATE permissions" : "A megosztásnak legalább OLVASÁSI és LÉTREHOZÁSI engedéllyel kell rendelkeznie",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "A megosztásnak OLVASÁSI jogosultsággal kell rendelkeznie, ha a FRISSÍTÉSI vagy TÖRLÉSI jogosultság meg van adva.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "A „Jelszó kiküldése a Nextcloud Beszélgetéssel” nem sikerült a fájlnál vagy mappánál, mert a Nextcloud Beszélgetés nem engedélyezett.",
"shared by %s" : "megosztotta: %s",
"Download all files" : "Összes fájl letöltése",
diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json
index b76f8830fdd..fa7077dfbde 100644
--- a/apps/files_sharing/l10n/hu.json
+++ b/apps/files_sharing/l10n/hu.json
@@ -99,6 +99,7 @@
"Wrong share ID, share doesn't exist" : "Hibás megosztási azonosító, a megosztás nem létezik",
"Could not delete share" : "A megosztás nem törölhető",
"Please specify a file or folder path" : "Adjon meg egy fájl- vagy mappaútvonalat",
+ "Wrong path, file/folder does not exist" : "Hibás útvonal, a fájl/mappa nem létezik",
"Could not create share" : "A megosztás nem hozható létre",
"Invalid permissions" : "Érvénytelen jogosultságok",
"Please specify a valid user" : "Adjon meg egy érvényes felhasználót",
@@ -121,7 +122,6 @@
"Could not lock path" : "Nem sikerült zárolni az útvonalat",
"Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter",
"Share must at least have READ or CREATE permissions" : "A megosztásnak legalább OLVASÁSI és LÉTREHOZÁSI engedéllyel kell rendelkeznie",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "A megosztásnak OLVASÁSI jogosultsággal kell rendelkeznie, ha a FRISSÍTÉSI vagy TÖRLÉSI jogosultság meg van adva.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "A „Jelszó kiküldése a Nextcloud Beszélgetéssel” nem sikerült a fájlnál vagy mappánál, mert a Nextcloud Beszélgetés nem engedélyezett.",
"shared by %s" : "megosztotta: %s",
"Download all files" : "Összes fájl letöltése",
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index 584dc5046fb..7912a08ec42 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Could not lock path" : "Impossibile bloccare il percorso",
"Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento",
"Share must at least have READ or CREATE permissions" : "La condivisione deve disporre almeno delle autorizzazioni READ o CREATE",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "La condivisione deve disporre dell'autorizzazione READ se l'autorizzazione è impostata su UPDATE o DELETE.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Invio della password da Nextcloud Talk\" per condividere un file o una cartella non è riuscito poiché Nextcloud Talk non è attivato.",
"shared by %s" : "condiviso da %s",
"Download all files" : "Scarica tutti i file",
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index cd120855ba7..a854a69ea99 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -121,7 +121,6 @@
"Could not lock path" : "Impossibile bloccare il percorso",
"Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento",
"Share must at least have READ or CREATE permissions" : "La condivisione deve disporre almeno delle autorizzazioni READ o CREATE",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "La condivisione deve disporre dell'autorizzazione READ se l'autorizzazione è impostata su UPDATE o DELETE.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Invio della password da Nextcloud Talk\" per condividere un file o una cartella non è riuscito poiché Nextcloud Talk non è attivato.",
"shared by %s" : "condiviso da %s",
"Download all files" : "Scarica tutti i file",
diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js
index 0261570cb22..a38e873edbb 100644
--- a/apps/files_sharing/l10n/pl.js
+++ b/apps/files_sharing/l10n/pl.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "Nie można zablokować ścieżki",
"Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji",
"Share must at least have READ or CREATE permissions" : "Udostępnienie musi mieć co najmniej uprawnienia do ODCZYTU lub TWORZENIA",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Udostępnienie musi mieć uprawnienie do ODCZYTU, jeśli ustawiono uprawnienie do AKTUALIZACJI lub USUWANIA.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Wysyłanie hasła przez Nextcloud Talk\" w celu udostępnienia pliku lub katalogu nie powiodło się, ponieważ usługa Nextcloud Talk jest wyłączona.",
"shared by %s" : "udostępnione przez %s",
"Download all files" : "Pobierz wszystkie pliki",
diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json
index 3aa92821fea..89a33e6022a 100644
--- a/apps/files_sharing/l10n/pl.json
+++ b/apps/files_sharing/l10n/pl.json
@@ -122,7 +122,6 @@
"Could not lock path" : "Nie można zablokować ścieżki",
"Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji",
"Share must at least have READ or CREATE permissions" : "Udostępnienie musi mieć co najmniej uprawnienia do ODCZYTU lub TWORZENIA",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Udostępnienie musi mieć uprawnienie do ODCZYTU, jeśli ustawiono uprawnienie do AKTUALIZACJI lub USUWANIA.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Wysyłanie hasła przez Nextcloud Talk\" w celu udostępnienia pliku lub katalogu nie powiodło się, ponieważ usługa Nextcloud Talk jest wyłączona.",
"shared by %s" : "udostępnione przez %s",
"Download all files" : "Pobierz wszystkie pliki",
diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js
index 9e20225c05e..8416798aea4 100644
--- a/apps/files_sharing/l10n/sk.js
+++ b/apps/files_sharing/l10n/sk.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Could not lock path" : "Nie je možné uzamknúť cestu",
"Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
"Share must at least have READ or CREATE permissions" : "Zdieľanie musí mať aspoň povolenia READ alebo CREATE",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Ak je nastavené oprávnenie UPDATE alebo DELETE, zdieľanie musí mať povolenie READ.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Odoslanie hesla cez Nextcloud Talk\" pre zdieľanie súboru alebo priečinka zlyhalo, pretože Nextcloud Talk nie je zapnutý.",
"shared by %s" : "Sprístupnil %s",
"Download all files" : "Stiahnuť všetky súbory",
diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json
index 91f5c491822..174c967f203 100644
--- a/apps/files_sharing/l10n/sk.json
+++ b/apps/files_sharing/l10n/sk.json
@@ -121,7 +121,6 @@
"Could not lock path" : "Nie je možné uzamknúť cestu",
"Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
"Share must at least have READ or CREATE permissions" : "Zdieľanie musí mať aspoň povolenia READ alebo CREATE",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Ak je nastavené oprávnenie UPDATE alebo DELETE, zdieľanie musí mať povolenie READ.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Odoslanie hesla cez Nextcloud Talk\" pre zdieľanie súboru alebo priečinka zlyhalo, pretože Nextcloud Talk nie je zapnutý.",
"shared by %s" : "Sprístupnil %s",
"Download all files" : "Stiahnuť všetky súbory",
diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js
index 2a6c6c01a7d..c1de6977dcb 100644
--- a/apps/files_sharing/l10n/sv.js
+++ b/apps/files_sharing/l10n/sv.js
@@ -100,12 +100,12 @@ OC.L10N.register(
"Shared link" : "Delad länk",
"Wrong share ID, share doesn't exist" : "Fel delnings-ID, delningen finns inte",
"Could not delete share" : "Kunde inte ta bort delningen",
- "Please specify a file or folder path" : "Vänligen ange sökväg till filen eller mappen",
+ "Please specify a file or folder path" : "Ange sökväg till filen eller mappen",
"Could not create share" : "Kunde inte skapa delning",
"Invalid permissions" : "Ogiltiga behörigheter",
- "Please specify a valid user" : "Vänligen ange en giltig användare",
+ "Please specify a valid user" : "Ange en giltig användare",
"Group sharing is disabled by the administrator" : "Gruppdelning är avstängt",
- "Please specify a valid group" : "Vänligen ange en giltig grupp",
+ "Please specify a valid group" : "Ange en giltig grupp",
"Public link sharing is disabled by the administrator" : "Offentlig delningslänk är avstängt",
"Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt",
"Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar",
@@ -123,7 +123,6 @@ OC.L10N.register(
"Could not lock path" : "Kunde inte låsa sökvägen",
"Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven",
"Share must at least have READ or CREATE permissions" : "Delningen måste åtminstone ha LÄS- eller SKAPA-behörighet",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Delningen måste ha LÄS-behörighet om ÄNDRA- eller RADERA-behörighet är inställd.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Skicka lösenord via Nextcloud Talk\" för att dela en fil eller mapp misslyckades eftersom Nextcloud Talk inte är aktiverat.",
"shared by %s" : "delad av %s",
"Download all files" : "Hämta alla filer",
@@ -238,7 +237,7 @@ OC.L10N.register(
"the item was removed" : "objektet togs bort",
"the link expired" : "giltighet för länken har gått ut",
"sharing is disabled" : "delning är inaktiverat",
- "For more info, please ask the person who sent this link." : "För mer information, vänligen kontakta den person som skickade den här länken.",
+ "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.",
"Share note" : "Dela kommentar",
"Toggle grid view" : "Växla rutnätsvy",
"Upload files to %s" : "Ladda upp filer till %s",
diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json
index f6407d56142..a5abfa7de4d 100644
--- a/apps/files_sharing/l10n/sv.json
+++ b/apps/files_sharing/l10n/sv.json
@@ -98,12 +98,12 @@
"Shared link" : "Delad länk",
"Wrong share ID, share doesn't exist" : "Fel delnings-ID, delningen finns inte",
"Could not delete share" : "Kunde inte ta bort delningen",
- "Please specify a file or folder path" : "Vänligen ange sökväg till filen eller mappen",
+ "Please specify a file or folder path" : "Ange sökväg till filen eller mappen",
"Could not create share" : "Kunde inte skapa delning",
"Invalid permissions" : "Ogiltiga behörigheter",
- "Please specify a valid user" : "Vänligen ange en giltig användare",
+ "Please specify a valid user" : "Ange en giltig användare",
"Group sharing is disabled by the administrator" : "Gruppdelning är avstängt",
- "Please specify a valid group" : "Vänligen ange en giltig grupp",
+ "Please specify a valid group" : "Ange en giltig grupp",
"Public link sharing is disabled by the administrator" : "Offentlig delningslänk är avstängt",
"Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt",
"Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar",
@@ -121,7 +121,6 @@
"Could not lock path" : "Kunde inte låsa sökvägen",
"Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven",
"Share must at least have READ or CREATE permissions" : "Delningen måste åtminstone ha LÄS- eller SKAPA-behörighet",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Delningen måste ha LÄS-behörighet om ÄNDRA- eller RADERA-behörighet är inställd.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Skicka lösenord via Nextcloud Talk\" för att dela en fil eller mapp misslyckades eftersom Nextcloud Talk inte är aktiverat.",
"shared by %s" : "delad av %s",
"Download all files" : "Hämta alla filer",
@@ -236,7 +235,7 @@
"the item was removed" : "objektet togs bort",
"the link expired" : "giltighet för länken har gått ut",
"sharing is disabled" : "delning är inaktiverat",
- "For more info, please ask the person who sent this link." : "För mer information, vänligen kontakta den person som skickade den här länken.",
+ "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.",
"Share note" : "Dela kommentar",
"Toggle grid view" : "Växla rutnätsvy",
"Upload files to %s" : "Ladda upp filer till %s",
diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js
index 54e6a199e29..e10eaaac457 100644
--- a/apps/files_sharing/l10n/tr.js
+++ b/apps/files_sharing/l10n/tr.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "Yol kilitlenemedi",
"Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
"Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Paylaşım için GÜNCELLEME ya da SİLME izinleri ayarlanmış ise en az OKUMA izni olmalıdır.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk etkinleştirilmemiş olduğundan, paylaşım parolası Nextcloud Talk ile gönderilemedi.",
"shared by %s" : "%s tarafından paylaşıldı",
"Download all files" : "Tüm dosyaları indir",
diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json
index f21f07124ad..ce993bb678c 100644
--- a/apps/files_sharing/l10n/tr.json
+++ b/apps/files_sharing/l10n/tr.json
@@ -122,7 +122,6 @@
"Could not lock path" : "Yol kilitlenemedi",
"Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
"Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "Paylaşım için GÜNCELLEME ya da SİLME izinleri ayarlanmış ise en az OKUMA izni olmalıdır.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk etkinleştirilmemiş olduğundan, paylaşım parolası Nextcloud Talk ile gönderilemedi.",
"shared by %s" : "%s tarafından paylaşıldı",
"Download all files" : "Tüm dosyaları indir",
diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js
index bd30be52a8f..3c8f9526a48 100644
--- a/apps/files_sharing/l10n/zh_HK.js
+++ b/apps/files_sharing/l10n/zh_HK.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "無法鎖定路徑",
"Wrong or no update parameter given" : "更新參數不正確或未提供",
"Share must at least have READ or CREATE permissions" : "分享必須至少具有 READ 或 CREATE 權限",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "如果設置了 UPDATE 或 DELETE 權限,則分享必須具有 READ 權限。",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通過 Nextcloud Talk 發送密碼”共享檔案或資料夾失敗,因為 Nextcloud Talk 未啟用。",
"shared by %s" : "分享自 %s",
"Download all files" : "下載所有檔案",
diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json
index 140bd797a8b..c2cd64d609e 100644
--- a/apps/files_sharing/l10n/zh_HK.json
+++ b/apps/files_sharing/l10n/zh_HK.json
@@ -122,7 +122,6 @@
"Could not lock path" : "無法鎖定路徑",
"Wrong or no update parameter given" : "更新參數不正確或未提供",
"Share must at least have READ or CREATE permissions" : "分享必須至少具有 READ 或 CREATE 權限",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "如果設置了 UPDATE 或 DELETE 權限,則分享必須具有 READ 權限。",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通過 Nextcloud Talk 發送密碼”共享檔案或資料夾失敗,因為 Nextcloud Talk 未啟用。",
"shared by %s" : "分享自 %s",
"Download all files" : "下載所有檔案",
diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js
index 661445e743d..d756585a2f0 100644
--- a/apps/files_sharing/l10n/zh_TW.js
+++ b/apps/files_sharing/l10n/zh_TW.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Could not lock path" : "無法鎖定路徑",
"Wrong or no update parameter given" : "更新參數不正確或未提供",
"Share must at least have READ or CREATE permissions" : "分享必須至少有 READ 或 CREATE 權限",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "若設定了 UPDATE 或 DELETE 權限,則分享必須有 READ 權限。",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "「透過 Nextcloud Talk 傳送密碼」分享檔案或資料夾失敗,因為未啟用 Nextcloud Talk。",
"shared by %s" : "分享自 %s",
"Download all files" : "下載所有檔案",
diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json
index ec2124e9914..8496b415332 100644
--- a/apps/files_sharing/l10n/zh_TW.json
+++ b/apps/files_sharing/l10n/zh_TW.json
@@ -122,7 +122,6 @@
"Could not lock path" : "無法鎖定路徑",
"Wrong or no update parameter given" : "更新參數不正確或未提供",
"Share must at least have READ or CREATE permissions" : "分享必須至少有 READ 或 CREATE 權限",
- "Share must have READ permission if UPDATE or DELETE permission is set." : "若設定了 UPDATE 或 DELETE 權限,則分享必須有 READ 權限。",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "「透過 Nextcloud Talk 傳送密碼」分享檔案或資料夾失敗,因為未啟用 Nextcloud Talk。",
"shared by %s" : "分享自 %s",
"Download all files" : "下載所有檔案",
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index 6375ee3d703..35a01ccdd61 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -1119,7 +1119,7 @@ class ShareAPIController extends OCSController {
if (!$this->hasPermission($newPermissions, Constants::PERMISSION_READ) && (
$this->hasPermission($newPermissions, Constants::PERMISSION_UPDATE) || $this->hasPermission($newPermissions, Constants::PERMISSION_DELETE)
)) {
- throw new OCSBadRequestException($this->l->t('Share must have READ permission if UPDATE or DELETE permission is set.'));
+ throw new OCSBadRequestException($this->l->t('Share must have READ permission if UPDATE or DELETE permission is set'));
}
}
diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
index 324862a746d..c7c2b6d8757 100644
--- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
@@ -2881,7 +2881,7 @@ class ShareAPIControllerTest extends TestCase {
*/
public function testUpdateLinkShareSetInvalidCRUDPermissions2($permissions) {
$this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class);
- $this->expectExceptionMessage('Share must have READ permission if UPDATE or DELETE permission is set.');
+ $this->expectExceptionMessage('Share must have READ permission if UPDATE or DELETE permission is set');
$this->testUpdateLinkShareSetCRUDPermissions($permissions);
}
diff --git a/apps/files_trashbin/composer/composer/InstalledVersions.php b/apps/files_trashbin/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/files_trashbin/composer/composer/InstalledVersions.php
+++ b/apps/files_trashbin/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/files_trashbin/composer/composer/autoload_classmap.php b/apps/files_trashbin/composer/composer/autoload_classmap.php
index dca8cac83ce..7ce7e565c83 100644
--- a/apps/files_trashbin/composer/composer/autoload_classmap.php
+++ b/apps/files_trashbin/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/files_trashbin/composer/composer/autoload_namespaces.php b/apps/files_trashbin/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/files_trashbin/composer/composer/autoload_namespaces.php
+++ b/apps/files_trashbin/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/files_trashbin/composer/composer/autoload_psr4.php b/apps/files_trashbin/composer/composer/autoload_psr4.php
index f7585c671e1..13d8f92a72c 100644
--- a/apps/files_trashbin/composer/composer/autoload_psr4.php
+++ b/apps/files_trashbin/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/files_trashbin/composer/composer/autoload_real.php b/apps/files_trashbin/composer/composer/autoload_real.php
index 35ef7fdcfa7..b9a42591b0c 100644
--- a/apps/files_trashbin/composer/composer/autoload_real.php
+++ b/apps/files_trashbin/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitFiles_Trashbin
}
spl_autoload_register(array('ComposerAutoloaderInitFiles_Trashbin', '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('ComposerAutoloaderInitFiles_Trashbin', '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\ComposerStaticInitFiles_Trashbin::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitFiles_Trashbin::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/files_trashbin/l10n/sv.js b/apps/files_trashbin/l10n/sv.js
index 2a7da65340d..bad8f014050 100644
--- a/apps/files_trashbin/l10n/sv.js
+++ b/apps/files_trashbin/l10n/sv.js
@@ -13,7 +13,7 @@ OC.L10N.register(
"Error while emptying trash bin" : "Fel vid tömning av papperskorgen",
"Error while removing files from trash bin" : "Fel vid borttagning av filer från papperskorgen",
"This operation is forbidden" : "Denna åtgärd är förbjuden",
- "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, vänligen kontrollera loggarna eller kontakta administratören",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören",
"No deleted files" : "Inga borttagna filer",
"You will be able to recover deleted files from here" : "Du kommer kunna återskapa borttagna filer härifrån",
"No entries found in this folder" : "Inga filer hittades i denna mapp",
diff --git a/apps/files_trashbin/l10n/sv.json b/apps/files_trashbin/l10n/sv.json
index 0ea84f83f8b..dcaf229bd4e 100644
--- a/apps/files_trashbin/l10n/sv.json
+++ b/apps/files_trashbin/l10n/sv.json
@@ -11,7 +11,7 @@
"Error while emptying trash bin" : "Fel vid tömning av papperskorgen",
"Error while removing files from trash bin" : "Fel vid borttagning av filer från papperskorgen",
"This operation is forbidden" : "Denna åtgärd är förbjuden",
- "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, vänligen kontrollera loggarna eller kontakta administratören",
+ "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören",
"No deleted files" : "Inga borttagna filer",
"You will be able to recover deleted files from here" : "Du kommer kunna återskapa borttagna filer härifrån",
"No entries found in this folder" : "Inga filer hittades i denna mapp",
diff --git a/apps/files_versions/composer/composer/InstalledVersions.php b/apps/files_versions/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/files_versions/composer/composer/InstalledVersions.php
+++ b/apps/files_versions/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/files_versions/composer/composer/autoload_classmap.php b/apps/files_versions/composer/composer/autoload_classmap.php
index 324866700f4..43b678ef39c 100644
--- a/apps/files_versions/composer/composer/autoload_classmap.php
+++ b/apps/files_versions/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/files_versions/composer/composer/autoload_namespaces.php b/apps/files_versions/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/files_versions/composer/composer/autoload_namespaces.php
+++ b/apps/files_versions/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/files_versions/composer/composer/autoload_psr4.php b/apps/files_versions/composer/composer/autoload_psr4.php
index 09bc4395cfd..9630dd45b5a 100644
--- a/apps/files_versions/composer/composer/autoload_psr4.php
+++ b/apps/files_versions/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/files_versions/composer/composer/autoload_real.php b/apps/files_versions/composer/composer/autoload_real.php
index 7048e07160a..e9e2ad95149 100644
--- a/apps/files_versions/composer/composer/autoload_real.php
+++ b/apps/files_versions/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitFiles_Versions
}
spl_autoload_register(array('ComposerAutoloaderInitFiles_Versions', '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('ComposerAutoloaderInitFiles_Versions', '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\ComposerStaticInitFiles_Versions::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitFiles_Versions::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/lookup_server_connector/composer/composer/InstalledVersions.php b/apps/lookup_server_connector/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/lookup_server_connector/composer/composer/InstalledVersions.php
+++ b/apps/lookup_server_connector/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/lookup_server_connector/composer/composer/autoload_classmap.php b/apps/lookup_server_connector/composer/composer/autoload_classmap.php
index ada33bc3340..2028c0ebfc7 100644
--- a/apps/lookup_server_connector/composer/composer/autoload_classmap.php
+++ b/apps/lookup_server_connector/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/lookup_server_connector/composer/composer/autoload_namespaces.php b/apps/lookup_server_connector/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/lookup_server_connector/composer/composer/autoload_namespaces.php
+++ b/apps/lookup_server_connector/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/lookup_server_connector/composer/composer/autoload_psr4.php b/apps/lookup_server_connector/composer/composer/autoload_psr4.php
index 1532b4d9c52..654eeac0616 100644
--- a/apps/lookup_server_connector/composer/composer/autoload_psr4.php
+++ b/apps/lookup_server_connector/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/lookup_server_connector/composer/composer/autoload_real.php b/apps/lookup_server_connector/composer/composer/autoload_real.php
index 3f635cf99aa..798f093c6e8 100644
--- a/apps/lookup_server_connector/composer/composer/autoload_real.php
+++ b/apps/lookup_server_connector/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitLookupServerConnector
}
spl_autoload_register(array('ComposerAutoloaderInitLookupServerConnector', '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('ComposerAutoloaderInitLookupServerConnector', '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\ComposerStaticInitLookupServerConnector::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitLookupServerConnector::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/oauth2/composer/composer/InstalledVersions.php b/apps/oauth2/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/oauth2/composer/composer/InstalledVersions.php
+++ b/apps/oauth2/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/oauth2/composer/composer/autoload_classmap.php b/apps/oauth2/composer/composer/autoload_classmap.php
index 210d5073182..d760d7cd579 100644
--- a/apps/oauth2/composer/composer/autoload_classmap.php
+++ b/apps/oauth2/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/oauth2/composer/composer/autoload_namespaces.php b/apps/oauth2/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/oauth2/composer/composer/autoload_namespaces.php
+++ b/apps/oauth2/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/oauth2/composer/composer/autoload_psr4.php b/apps/oauth2/composer/composer/autoload_psr4.php
index 1164638c634..6c3c791a23c 100644
--- a/apps/oauth2/composer/composer/autoload_psr4.php
+++ b/apps/oauth2/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/oauth2/composer/composer/autoload_real.php b/apps/oauth2/composer/composer/autoload_real.php
index 7a5c7fdcaf5..4d9e729ac26 100644
--- a/apps/oauth2/composer/composer/autoload_real.php
+++ b/apps/oauth2/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitOAuth2
}
spl_autoload_register(array('ComposerAutoloaderInitOAuth2', '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('ComposerAutoloaderInitOAuth2', '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\ComposerStaticInitOAuth2::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitOAuth2::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/provisioning_api/composer/composer/InstalledVersions.php b/apps/provisioning_api/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/provisioning_api/composer/composer/InstalledVersions.php
+++ b/apps/provisioning_api/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/provisioning_api/composer/composer/autoload_classmap.php b/apps/provisioning_api/composer/composer/autoload_classmap.php
index 447f92afc8d..7f840d39729 100644
--- a/apps/provisioning_api/composer/composer/autoload_classmap.php
+++ b/apps/provisioning_api/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/provisioning_api/composer/composer/autoload_namespaces.php b/apps/provisioning_api/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/provisioning_api/composer/composer/autoload_namespaces.php
+++ b/apps/provisioning_api/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/provisioning_api/composer/composer/autoload_psr4.php b/apps/provisioning_api/composer/composer/autoload_psr4.php
index 46b5eb003d5..8b0d5ece1ad 100644
--- a/apps/provisioning_api/composer/composer/autoload_psr4.php
+++ b/apps/provisioning_api/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/provisioning_api/composer/composer/autoload_real.php b/apps/provisioning_api/composer/composer/autoload_real.php
index f5169309306..bada942777d 100644
--- a/apps/provisioning_api/composer/composer/autoload_real.php
+++ b/apps/provisioning_api/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitProvisioning_API
}
spl_autoload_register(array('ComposerAutoloaderInitProvisioning_API', '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('ComposerAutoloaderInitProvisioning_API', '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\ComposerStaticInitProvisioning_API::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitProvisioning_API::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/settings/composer/composer/InstalledVersions.php b/apps/settings/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/settings/composer/composer/InstalledVersions.php
+++ b/apps/settings/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/settings/composer/composer/autoload_classmap.php b/apps/settings/composer/composer/autoload_classmap.php
index bd092f3b401..baac88ea8c7 100644
--- a/apps/settings/composer/composer/autoload_classmap.php
+++ b/apps/settings/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/settings/composer/composer/autoload_namespaces.php b/apps/settings/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/settings/composer/composer/autoload_namespaces.php
+++ b/apps/settings/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/settings/composer/composer/autoload_psr4.php b/apps/settings/composer/composer/autoload_psr4.php
index fc41cfe6d65..016839fc8b2 100644
--- a/apps/settings/composer/composer/autoload_psr4.php
+++ b/apps/settings/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/settings/composer/composer/autoload_real.php b/apps/settings/composer/composer/autoload_real.php
index 11f0c1cdd44..0e9941ee04d 100644
--- a/apps/settings/composer/composer/autoload_real.php
+++ b/apps/settings/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitSettings
}
spl_autoload_register(array('ComposerAutoloaderInitSettings', '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('ComposerAutoloaderInitSettings', '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\ComposerStaticInitSettings::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitSettings::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js
index 366a2a12e83..c2b6a1167e1 100644
--- a/apps/settings/l10n/de.js
+++ b/apps/settings/l10n/de.js
@@ -219,7 +219,9 @@ OC.L10N.register(
"Copy" : "Kopieren",
"Could not copy app password. Please copy it manually." : "Das Passwort für die App konnte nicht kopiert werden. Bitte kopiere es manuell.",
"Profile" : "Profil",
+ "Enable or disable profile by default for new users." : "Profil für neue Benutzer standardmäßig aktivieren oder deaktivieren",
"Enable" : "Aktivieren",
+ "Unable to update profile default setting" : "Standardeinstellung des Profils kann nicht aktualisiert werden",
"Rename group" : "Gruppe umbenennen",
"Remove group" : "Gruppe entfernen",
"You are about to remove the group {group}. The users will NOT be deleted." : "Du bist dabei die Gruppe {group} zu löschen. Die Benutzer werden NICHT gelöscht.",
@@ -264,6 +266,7 @@ OC.L10N.register(
"Change scope level of {accountProperty}" : "Geltungsbereich von {accountProperty} ändern",
"Unable to update federation scope of the primary {accountProperty}" : "Der Federation-Bereich des primären {accountProperty} konnte nicht aktualisiert werden",
"Unable to update federation scope of additional {accountProperty}" : "Der Federation-Bereich des zusätzlichen {accountProperty} konnte nicht aktualisiert werden",
+ "Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen",
"Add" : "Hinzufügen",
"You do not have permissions to see the details of this user" : "Du hast keine Berechtigung, um auf die Details dieses Benutzers zu sehen",
"Add new password" : "Neues Passwort hinzufügen",
diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json
index cba1547b11b..45e1313dda4 100644
--- a/apps/settings/l10n/de.json
+++ b/apps/settings/l10n/de.json
@@ -217,7 +217,9 @@
"Copy" : "Kopieren",
"Could not copy app password. Please copy it manually." : "Das Passwort für die App konnte nicht kopiert werden. Bitte kopiere es manuell.",
"Profile" : "Profil",
+ "Enable or disable profile by default for new users." : "Profil für neue Benutzer standardmäßig aktivieren oder deaktivieren",
"Enable" : "Aktivieren",
+ "Unable to update profile default setting" : "Standardeinstellung des Profils kann nicht aktualisiert werden",
"Rename group" : "Gruppe umbenennen",
"Remove group" : "Gruppe entfernen",
"You are about to remove the group {group}. The users will NOT be deleted." : "Du bist dabei die Gruppe {group} zu löschen. Die Benutzer werden NICHT gelöscht.",
@@ -262,6 +264,7 @@
"Change scope level of {accountProperty}" : "Geltungsbereich von {accountProperty} ändern",
"Unable to update federation scope of the primary {accountProperty}" : "Der Federation-Bereich des primären {accountProperty} konnte nicht aktualisiert werden",
"Unable to update federation scope of additional {accountProperty}" : "Der Federation-Bereich des zusätzlichen {accountProperty} konnte nicht aktualisiert werden",
+ "Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen",
"Add" : "Hinzufügen",
"You do not have permissions to see the details of this user" : "Du hast keine Berechtigung, um auf die Details dieses Benutzers zu sehen",
"Add new password" : "Neues Passwort hinzufügen",
diff --git a/apps/settings/l10n/el.js b/apps/settings/l10n/el.js
index 366e017e472..7497004bf80 100644
--- a/apps/settings/l10n/el.js
+++ b/apps/settings/l10n/el.js
@@ -260,6 +260,7 @@ OC.L10N.register(
"Your role" : "Ο ρόλος σας",
"Unable to update role" : "Δεν είναι δυνατή η ενημέρωση του ρόλου",
"Change scope level of {accountProperty}" : "Αλλαγή επιπέδου εύρους του {accountProperty}",
+ "Add additional email" : "Προσθέστε επιπλέον email",
"Add" : "Προσθήκη",
"You do not have permissions to see the details of this user" : "Δεν έχετε δικαιώματα να δείτε λεπτομέρειες του χρήστη",
"Add new password" : "Προσθήκη νέου κωδικού πρόσβασης",
diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json
index d743683d105..1c5866ab995 100644
--- a/apps/settings/l10n/el.json
+++ b/apps/settings/l10n/el.json
@@ -258,6 +258,7 @@
"Your role" : "Ο ρόλος σας",
"Unable to update role" : "Δεν είναι δυνατή η ενημέρωση του ρόλου",
"Change scope level of {accountProperty}" : "Αλλαγή επιπέδου εύρους του {accountProperty}",
+ "Add additional email" : "Προσθέστε επιπλέον email",
"Add" : "Προσθήκη",
"You do not have permissions to see the details of this user" : "Δεν έχετε δικαιώματα να δείτε λεπτομέρειες του χρήστη",
"Add new password" : "Προσθήκη νέου κωδικού πρόσβασης",
diff --git a/apps/settings/l10n/hu.js b/apps/settings/l10n/hu.js
index 71098ba34f7..4072a4ea6a4 100644
--- a/apps/settings/l10n/hu.js
+++ b/apps/settings/l10n/hu.js
@@ -43,6 +43,7 @@ OC.L10N.register(
"You changed your email address" : "Megváltoztatta az e-mail címét",
"Your email address was changed by an administrator" : "Az e-mail címét megváltoztatta egy rendszergazda",
"You created app password \"{token}\"" : "Létrehozta a(z) „{token}” alkalmazásjelszót",
+ "An administrator created app password \"{token}\"" : "Egy rendszergazda létrehozta a(z) „{token}” alkalmazásjelszót",
"You deleted app password \"{token}\"" : "Törölte a(z) „{token}” alkalmazásjelszót",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Átnevezted a(z) „{token}” alkalmazásjelszót erre: „{newToken}”",
"You granted filesystem access to app password \"{token}\"" : "Fájlrendszer-hozzáférést adott a(z) „{token}” alkalmazásjelszónak",
@@ -66,6 +67,14 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Föderált felhőmegosztás",
"cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "A cURL elavult %1$s verziót (%2$s) használ. Frissítse az operációs rendszert, vagy az egyes funkciók (mint például a %3$s) megbízhatatlanul fognak működni.",
"Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nem sikerült megállapítani, hogy a cURL TLS-verziója elavult-e vagy sem, mert hiba történt a https://nextcloud.com felé küldött HTTPS-kérés során. További részletekért, ellenőrizze a Nextcloud naplófájlját.",
+ "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "A PHP OPcache modul nincs betöltve. A jobb teljesítmény érdekében javasoljuk, hogy töltse be a PHP telepítésébe.",
+ "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "Az OPcache ki van kapcsolva. A jobb teljesítmény érdekében ajánlatos, hogy beállítsa az <code>opcache.enable=1</code> értéket a PHP konfigurációjába.",
+ "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "Az OPcache úgy van beállítva, hogy eltávolítja a kódban lévő megjegyzéseket. Ha az OPcache be van kapcsolva, akkor be kell állítani az <code>opcache.save_comments=1</code> értéket, hogy a Nextcloud működjön.",
+ "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "A Nextcloud számára nem engedélyezett az OPcache API használata. Ha be van kapcsolva az OPcache, akkor erősen ajánlott, hogy a Nexcloud összes könyvtára szerepeljen az <code>opcache.restrict_api</code> beállításban, vagy kapcsolja ki, hogy letiltsa az OPcache API korlátozásait, hogy megakadályozza a Nextcloud magjának vagy alkalmazásainak frissítése során fellépő hibákat.",
+ "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "A Nextcloud számára nem engedélyezett az OPcache API használata. Erősen ajánlott, hogy a Nexcloud összes könyvtára szerepeljen az <code>opcache.restrict_api</code> beállításban, vagy kapcsolja ki, hogy letiltsa az OPcache API korlátozásait, hogy megakadályozza a Nextcloud magjának vagy alkalmazásainak frissítése során fellépő hibákat.",
+ "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Majdnem túllépte az OPcache kulcsok legnagyobb számát. Hogy biztosítsa, hogy az összes parancsfájl tárolható legyen a gyorsítótárban, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.max_accelerated_files</code> beállítást a PHP konfigurációjában.",
+ "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Az OPcache puffer majdnem megtelt. Hogy biztosítsa, hogy az összes parancsfájl tárolható legyen a gyorsítótárban, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.max_accelerated_files</code> beállítást a PHP konfigurációjában.",
+ "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Az OPcache internalizált karakterláncokat tartalmazó puffere majdnem megtelt. Hogy biztosítsa, hogy az ismétlődő karakterláncok hatásosan gyorsítótárazhatók legyenek, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.interned_strings_buffer</code> beállítást a PHP konfigurációjában.",
"Invalid SMTP password." : "Érvénytelen SMTP-jelszó.",
"Email setting test" : "E-mail beállítás tesztelése",
"Well done, %s!" : "Szép munka, %s!",
@@ -218,7 +227,9 @@ OC.L10N.register(
"Copy" : "Másolás",
"Could not copy app password. Please copy it manually." : "Nem lehet az alkalmazásjelszót másolni. Másolja át kézileg.",
"Profile" : "Profil",
+ "Enable or disable profile by default for new users." : "A profil alapértelmezett engedélyezése vagy letiltása az új felhasználók számára.",
"Enable" : "Engedélyezés",
+ "Unable to update profile default setting" : "A profil alapértelmezett beállítása nem frissíthető",
"Rename group" : "Csoport átnevezése",
"Remove group" : "Csoport eltávolítása",
"You are about to remove the group {group}. The users will NOT be deleted." : "A(z) {group} csoport eltávolítására készül. A felhasználók NEM lesznek törölve.",
@@ -263,6 +274,7 @@ OC.L10N.register(
"Change scope level of {accountProperty}" : "A(z) {accountProperty} hatókörszintjének módosítása",
"Unable to update federation scope of the primary {accountProperty}" : "Az elsődleges {accountProperty} föderációs hatóköre nem frissíthető",
"Unable to update federation scope of additional {accountProperty}" : "A további {accountProperty} föderációs hatóköre nem frissíthető",
+ "Add additional email" : "További e-mail hozzáadása",
"Add" : "Hozzáadás",
"You do not have permissions to see the details of this user" : "Nincs jogosultsága megnézni a felhasználó részletes adatait",
"Add new password" : "Új jelszó hozzáadása",
@@ -469,6 +481,7 @@ OC.L10N.register(
"Remove image" : "Kép eltávolítása",
"png or jpg, max. 20 MB" : "png vagy jpg, legfeljebb 20 MB",
"Picture provided by original account" : "Az eredeti fiók által biztosított kép.",
+ "Please note that it can take up to 24 hours for the avatar to get updated everywhere." : "Vegye figyelembe, hogy akár 24 óráig is eltarthat, amíg a profilkép mindenhol frissül.",
"Choose as profile picture" : "Kiválasztás profilképként",
"You are a member of the following groups:" : "Ön a következő csoportok tagja:",
"You are using <strong>%s</strong>" : "Jelenleg használt: <strong>%s</strong>",
diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json
index 4245091b0b5..eba92f19144 100644
--- a/apps/settings/l10n/hu.json
+++ b/apps/settings/l10n/hu.json
@@ -41,6 +41,7 @@
"You changed your email address" : "Megváltoztatta az e-mail címét",
"Your email address was changed by an administrator" : "Az e-mail címét megváltoztatta egy rendszergazda",
"You created app password \"{token}\"" : "Létrehozta a(z) „{token}” alkalmazásjelszót",
+ "An administrator created app password \"{token}\"" : "Egy rendszergazda létrehozta a(z) „{token}” alkalmazásjelszót",
"You deleted app password \"{token}\"" : "Törölte a(z) „{token}” alkalmazásjelszót",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Átnevezted a(z) „{token}” alkalmazásjelszót erre: „{newToken}”",
"You granted filesystem access to app password \"{token}\"" : "Fájlrendszer-hozzáférést adott a(z) „{token}” alkalmazásjelszónak",
@@ -64,6 +65,14 @@
"Federated Cloud Sharing" : "Föderált felhőmegosztás",
"cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "A cURL elavult %1$s verziót (%2$s) használ. Frissítse az operációs rendszert, vagy az egyes funkciók (mint például a %3$s) megbízhatatlanul fognak működni.",
"Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nem sikerült megállapítani, hogy a cURL TLS-verziója elavult-e vagy sem, mert hiba történt a https://nextcloud.com felé küldött HTTPS-kérés során. További részletekért, ellenőrizze a Nextcloud naplófájlját.",
+ "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "A PHP OPcache modul nincs betöltve. A jobb teljesítmény érdekében javasoljuk, hogy töltse be a PHP telepítésébe.",
+ "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "Az OPcache ki van kapcsolva. A jobb teljesítmény érdekében ajánlatos, hogy beállítsa az <code>opcache.enable=1</code> értéket a PHP konfigurációjába.",
+ "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "Az OPcache úgy van beállítva, hogy eltávolítja a kódban lévő megjegyzéseket. Ha az OPcache be van kapcsolva, akkor be kell állítani az <code>opcache.save_comments=1</code> értéket, hogy a Nextcloud működjön.",
+ "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "A Nextcloud számára nem engedélyezett az OPcache API használata. Ha be van kapcsolva az OPcache, akkor erősen ajánlott, hogy a Nexcloud összes könyvtára szerepeljen az <code>opcache.restrict_api</code> beállításban, vagy kapcsolja ki, hogy letiltsa az OPcache API korlátozásait, hogy megakadályozza a Nextcloud magjának vagy alkalmazásainak frissítése során fellépő hibákat.",
+ "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "A Nextcloud számára nem engedélyezett az OPcache API használata. Erősen ajánlott, hogy a Nexcloud összes könyvtára szerepeljen az <code>opcache.restrict_api</code> beállításban, vagy kapcsolja ki, hogy letiltsa az OPcache API korlátozásait, hogy megakadályozza a Nextcloud magjának vagy alkalmazásainak frissítése során fellépő hibákat.",
+ "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Majdnem túllépte az OPcache kulcsok legnagyobb számát. Hogy biztosítsa, hogy az összes parancsfájl tárolható legyen a gyorsítótárban, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.max_accelerated_files</code> beállítást a PHP konfigurációjában.",
+ "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Az OPcache puffer majdnem megtelt. Hogy biztosítsa, hogy az összes parancsfájl tárolható legyen a gyorsítótárban, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.max_accelerated_files</code> beállítást a PHP konfigurációjában.",
+ "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Az OPcache internalizált karakterláncokat tartalmazó puffere majdnem megtelt. Hogy biztosítsa, hogy az ismétlődő karakterláncok hatásosan gyorsítótárazhatók legyenek, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.interned_strings_buffer</code> beállítást a PHP konfigurációjában.",
"Invalid SMTP password." : "Érvénytelen SMTP-jelszó.",
"Email setting test" : "E-mail beállítás tesztelése",
"Well done, %s!" : "Szép munka, %s!",
@@ -216,7 +225,9 @@
"Copy" : "Másolás",
"Could not copy app password. Please copy it manually." : "Nem lehet az alkalmazásjelszót másolni. Másolja át kézileg.",
"Profile" : "Profil",
+ "Enable or disable profile by default for new users." : "A profil alapértelmezett engedélyezése vagy letiltása az új felhasználók számára.",
"Enable" : "Engedélyezés",
+ "Unable to update profile default setting" : "A profil alapértelmezett beállítása nem frissíthető",
"Rename group" : "Csoport átnevezése",
"Remove group" : "Csoport eltávolítása",
"You are about to remove the group {group}. The users will NOT be deleted." : "A(z) {group} csoport eltávolítására készül. A felhasználók NEM lesznek törölve.",
@@ -261,6 +272,7 @@
"Change scope level of {accountProperty}" : "A(z) {accountProperty} hatókörszintjének módosítása",
"Unable to update federation scope of the primary {accountProperty}" : "Az elsődleges {accountProperty} föderációs hatóköre nem frissíthető",
"Unable to update federation scope of additional {accountProperty}" : "A további {accountProperty} föderációs hatóköre nem frissíthető",
+ "Add additional email" : "További e-mail hozzáadása",
"Add" : "Hozzáadás",
"You do not have permissions to see the details of this user" : "Nincs jogosultsága megnézni a felhasználó részletes adatait",
"Add new password" : "Új jelszó hozzáadása",
@@ -467,6 +479,7 @@
"Remove image" : "Kép eltávolítása",
"png or jpg, max. 20 MB" : "png vagy jpg, legfeljebb 20 MB",
"Picture provided by original account" : "Az eredeti fiók által biztosított kép.",
+ "Please note that it can take up to 24 hours for the avatar to get updated everywhere." : "Vegye figyelembe, hogy akár 24 óráig is eltarthat, amíg a profilkép mindenhol frissül.",
"Choose as profile picture" : "Kiválasztás profilképként",
"You are a member of the following groups:" : "Ön a következő csoportok tagja:",
"You are using <strong>%s</strong>" : "Jelenleg használt: <strong>%s</strong>",
diff --git a/apps/settings/l10n/sv.js b/apps/settings/l10n/sv.js
index 05e83d3b901..06ad3e7c883 100644
--- a/apps/settings/l10n/sv.js
+++ b/apps/settings/l10n/sv.js
@@ -60,7 +60,7 @@ OC.L10N.register(
"No user supplied" : "Ingen användare angiven",
"Authentication error" : "Fel vid autentisering",
"Please provide an admin recovery password; otherwise, all user data will be lost." : "Vänligen ange ett administratörs återställningslösenord; annars kommer alla användardata att försvinna.",
- "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Vänligen kontrollera lösenordet och prova igen.",
+ "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Kontrollera lösenordet och prova igen.",
"Backend doesn't support password change, but the user's encryption key was updated." : "Backend stödjer inte att lösenord ändras men användarens krypteringsnyckel uppdaterades.",
"installing and updating apps via the App Store or Federated Cloud Sharing" : "installera och uppdatera appar via appbutiken eller federerad molndelning",
"Federated Cloud Sharing" : "Federerad Moln-delning",
@@ -71,7 +71,7 @@ OC.L10N.register(
"Well done, %s!" : "Bra gjort, %s!",
"If you received this email, the email configuration seems to be correct." : "Om du får detta e-postmeddelande så har du ställt in e-postinställningarna rätt.",
"Email could not be sent. Check your mail server log" : "E-post kunde inte skickas. Titta i din e-postserverlogg",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Vänligen kontrollera dina inställningar. (Fel: %s)",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Kontrollera dina inställningar. (Fel: %s)",
"Invalid user" : "Ogiltig användare",
"Invalid mail address" : "Ogiltig e-postadress",
"Settings saved" : "Inställningar sparade",
@@ -328,7 +328,7 @@ OC.L10N.register(
"Show user backend" : "Visa användar-backend",
"Show storage path" : "Visa lagringsväg",
"Send email to new user" : "Skicka e-post till ny användare",
- "Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänligen vänta tills migrationen är klar",
+ "Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänta tills migrationen är klar",
"Migration started …" : "Migrering påbörjad ...",
"Not saved" : "Inte sparad",
"Sending…" : "Skickar...",
@@ -393,16 +393,16 @@ OC.L10N.register(
"Server-side encryption" : "Serverkryptering",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Kryptering från servern möjliggör kryptering av filer som är uppladdade till servern. Detta innebär vissa begränsningar som prestandaförluster, så aktivera bara om det behövs.",
"Enable server-side encryption" : "Aktivera kryptering på server.",
- "Please read carefully before activating server-side encryption: " : "Vänligen läs noga innan du aktiverar kryptering på serversidan: ",
+ "Please read carefully before activating server-side encryption: " : "Läs noga innan du aktiverar kryptering på serversidan: ",
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "När kryptering är aktiverat, så kommer alla filer som laddas upp till servern från den tidpunkt och framåt bli krypterad på servern. Det kommer bara vara möjligt att inaktivera kryptering vid ett senare tillfälle om krypteringsmodulen stödjer den funktionen och alla förvillkor (exempelvis använder återställningsnyckel) är mötta.",
- "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Enbart kryptering garanterar inte säkerhet i systemet. Vänligen se dokumentationen för ytterligare information om hur krypteringsappen fungerar, och de supporterade användarfallen.",
+ "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Enbart kryptering garanterar inte säkerhet i systemet. Se dokumentationen för ytterligare information om hur krypteringsappen fungerar, och de supporterade användarfallen.",
"Be aware that encryption always increases the file size." : "OBS! Observera att kryptering alltid ökar filstorleken",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det är alltid en god ide att skapa regelbundna säkerhetskopior av din data, om kryptering används var säker på att även krypteringsnycklarna säkerhetskopieras tillsammans med din data.",
"This is the final warning: Do you really want to enable encryption?" : "Detta är en slutgiltig varning: Vill du verkligen aktivera kryptering?",
"Enable encryption" : "Aktivera kryptering",
- "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul inläst, vänligen aktivera krypteringsmodulen i applikationsmenyn.",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul inläst, aktivera krypteringsmodulen i applikationsmenyn.",
"Select default encryption module:" : "Välj krypteringsmodul:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya. Vänligen aktivera \"Standard krypteringsmodul\" och kör 'occ encryption:migrate'.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya. Aktivera \"Standard krypteringsmodul\" och kör 'occ encryption:migrate'.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya.",
"Start migration" : "Starta migrering",
"Last job execution ran %s. Something seems wrong." : "Sista jobbexekveringen körde %s. Något verkar vara fel.",
diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json
index 55a62fb0d1e..76b88882f72 100644
--- a/apps/settings/l10n/sv.json
+++ b/apps/settings/l10n/sv.json
@@ -58,7 +58,7 @@
"No user supplied" : "Ingen användare angiven",
"Authentication error" : "Fel vid autentisering",
"Please provide an admin recovery password; otherwise, all user data will be lost." : "Vänligen ange ett administratörs återställningslösenord; annars kommer alla användardata att försvinna.",
- "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Vänligen kontrollera lösenordet och prova igen.",
+ "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Kontrollera lösenordet och prova igen.",
"Backend doesn't support password change, but the user's encryption key was updated." : "Backend stödjer inte att lösenord ändras men användarens krypteringsnyckel uppdaterades.",
"installing and updating apps via the App Store or Federated Cloud Sharing" : "installera och uppdatera appar via appbutiken eller federerad molndelning",
"Federated Cloud Sharing" : "Federerad Moln-delning",
@@ -69,7 +69,7 @@
"Well done, %s!" : "Bra gjort, %s!",
"If you received this email, the email configuration seems to be correct." : "Om du får detta e-postmeddelande så har du ställt in e-postinställningarna rätt.",
"Email could not be sent. Check your mail server log" : "E-post kunde inte skickas. Titta i din e-postserverlogg",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Vänligen kontrollera dina inställningar. (Fel: %s)",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Kontrollera dina inställningar. (Fel: %s)",
"Invalid user" : "Ogiltig användare",
"Invalid mail address" : "Ogiltig e-postadress",
"Settings saved" : "Inställningar sparade",
@@ -326,7 +326,7 @@
"Show user backend" : "Visa användar-backend",
"Show storage path" : "Visa lagringsväg",
"Send email to new user" : "Skicka e-post till ny användare",
- "Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänligen vänta tills migrationen är klar",
+ "Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänta tills migrationen är klar",
"Migration started …" : "Migrering påbörjad ...",
"Not saved" : "Inte sparad",
"Sending…" : "Skickar...",
@@ -391,16 +391,16 @@
"Server-side encryption" : "Serverkryptering",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Kryptering från servern möjliggör kryptering av filer som är uppladdade till servern. Detta innebär vissa begränsningar som prestandaförluster, så aktivera bara om det behövs.",
"Enable server-side encryption" : "Aktivera kryptering på server.",
- "Please read carefully before activating server-side encryption: " : "Vänligen läs noga innan du aktiverar kryptering på serversidan: ",
+ "Please read carefully before activating server-side encryption: " : "Läs noga innan du aktiverar kryptering på serversidan: ",
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "När kryptering är aktiverat, så kommer alla filer som laddas upp till servern från den tidpunkt och framåt bli krypterad på servern. Det kommer bara vara möjligt att inaktivera kryptering vid ett senare tillfälle om krypteringsmodulen stödjer den funktionen och alla förvillkor (exempelvis använder återställningsnyckel) är mötta.",
- "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Enbart kryptering garanterar inte säkerhet i systemet. Vänligen se dokumentationen för ytterligare information om hur krypteringsappen fungerar, och de supporterade användarfallen.",
+ "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Enbart kryptering garanterar inte säkerhet i systemet. Se dokumentationen för ytterligare information om hur krypteringsappen fungerar, och de supporterade användarfallen.",
"Be aware that encryption always increases the file size." : "OBS! Observera att kryptering alltid ökar filstorleken",
"It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Det är alltid en god ide att skapa regelbundna säkerhetskopior av din data, om kryptering används var säker på att även krypteringsnycklarna säkerhetskopieras tillsammans med din data.",
"This is the final warning: Do you really want to enable encryption?" : "Detta är en slutgiltig varning: Vill du verkligen aktivera kryptering?",
"Enable encryption" : "Aktivera kryptering",
- "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul inläst, vänligen aktivera krypteringsmodulen i applikationsmenyn.",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul inläst, aktivera krypteringsmodulen i applikationsmenyn.",
"Select default encryption module:" : "Välj krypteringsmodul:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya. Vänligen aktivera \"Standard krypteringsmodul\" och kör 'occ encryption:migrate'.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya. Aktivera \"Standard krypteringsmodul\" och kör 'occ encryption:migrate'.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya.",
"Start migration" : "Starta migrering",
"Last job execution ran %s. Something seems wrong." : "Sista jobbexekveringen körde %s. Något verkar vara fel.",
diff --git a/apps/sharebymail/composer/composer/InstalledVersions.php b/apps/sharebymail/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/sharebymail/composer/composer/InstalledVersions.php
+++ b/apps/sharebymail/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/sharebymail/composer/composer/autoload_classmap.php b/apps/sharebymail/composer/composer/autoload_classmap.php
index 937b14ed4f9..38fec4de278 100644
--- a/apps/sharebymail/composer/composer/autoload_classmap.php
+++ b/apps/sharebymail/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/sharebymail/composer/composer/autoload_namespaces.php b/apps/sharebymail/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/sharebymail/composer/composer/autoload_namespaces.php
+++ b/apps/sharebymail/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/sharebymail/composer/composer/autoload_psr4.php b/apps/sharebymail/composer/composer/autoload_psr4.php
index 15fee669450..d06cafe6ae7 100644
--- a/apps/sharebymail/composer/composer/autoload_psr4.php
+++ b/apps/sharebymail/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/sharebymail/composer/composer/autoload_real.php b/apps/sharebymail/composer/composer/autoload_real.php
index 87493707619..47a2c20fd5e 100644
--- a/apps/sharebymail/composer/composer/autoload_real.php
+++ b/apps/sharebymail/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitShareByMail
}
spl_autoload_register(array('ComposerAutoloaderInitShareByMail', '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('ComposerAutoloaderInitShareByMail', '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\ComposerStaticInitShareByMail::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitShareByMail::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/systemtags/composer/composer/InstalledVersions.php b/apps/systemtags/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/systemtags/composer/composer/InstalledVersions.php
+++ b/apps/systemtags/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/systemtags/composer/composer/autoload_classmap.php b/apps/systemtags/composer/composer/autoload_classmap.php
index cafa7a2459a..c2fb4daa824 100644
--- a/apps/systemtags/composer/composer/autoload_classmap.php
+++ b/apps/systemtags/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/systemtags/composer/composer/autoload_namespaces.php b/apps/systemtags/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/systemtags/composer/composer/autoload_namespaces.php
+++ b/apps/systemtags/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/systemtags/composer/composer/autoload_psr4.php b/apps/systemtags/composer/composer/autoload_psr4.php
index cec8aaf3650..d0ed20b1bdb 100644
--- a/apps/systemtags/composer/composer/autoload_psr4.php
+++ b/apps/systemtags/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/systemtags/composer/composer/autoload_real.php b/apps/systemtags/composer/composer/autoload_real.php
index 81bbfbcd09c..f9bc1f2eaff 100644
--- a/apps/systemtags/composer/composer/autoload_real.php
+++ b/apps/systemtags/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitSystemTags
}
spl_autoload_register(array('ComposerAutoloaderInitSystemTags', '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('ComposerAutoloaderInitSystemTags', '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\ComposerStaticInitSystemTags::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitSystemTags::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/systemtags/l10n/hu.js b/apps/systemtags/l10n/hu.js
index fdcf2649cb7..a69c72bae7c 100644
--- a/apps/systemtags/l10n/hu.js
+++ b/apps/systemtags/l10n/hu.js
@@ -4,54 +4,54 @@ OC.L10N.register(
"Tag name is empty" : "A címke neve üres",
"Update" : "Frissítés",
"Create" : "Létrehozás",
- "Select tag …" : "Címke választás...",
+ "Select tag …" : "Válasszon címkét…",
"System tag %1$s added by the system" : "A rendszer hozzáadta a(z) %1$s rendszercímkét",
- "Added system tag {systemtag}" : "{systemtag} rendszer címke hozzáadva",
- "Added system tag %1$s" : "%1$s rendszer címke eltávolítva",
- "%1$s added system tag %2$s" : "%1$s hozzáadta a ezt a rendszer címkét: %2$s",
- "{actor} added system tag {systemtag}" : "{actor} hozzáadta a ezt a rendszer címkét: {systemtag}",
+ "Added system tag {systemtag}" : "{systemtag} rendszercímke hozzáadva",
+ "Added system tag %1$s" : "%1$s rendszercímke hozzáadva",
+ "%1$s added system tag %2$s" : "%1$s hozzáadta a(z) %2$s rendszercímkét",
+ "{actor} added system tag {systemtag}" : "{actor} hozzáadta a(z) {systemtag} rendszercímkét",
"System tag %1$s removed by the system" : "A rendszer eltávolította a(z) %1$s rendszercímkét",
- "Removed system tag {systemtag}" : "{systemtag} rendszer címke eltávolítva",
- "Removed system tag %1$s" : "%1$s rendszer címke eltávolítva",
- "%1$s removed system tag %2$s" : "%1$s eltávolította ezt a rendszer címkét: %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eltávolította ezt a rendszer címkét: {systemtag}",
- "You created system tag %1$s" : "Létrehoztad ezt a rendszer címkét: %1$s",
- "You created system tag {systemtag}" : "Létrehoztad ezt a rendszer címkét: {systemtag}",
+ "Removed system tag {systemtag}" : "{systemtag} rendszercímke eltávolítva",
+ "Removed system tag %1$s" : "%1$s rendszercímke eltávolítva",
+ "%1$s removed system tag %2$s" : "%1$s eltávolította a(z) %2$s rendszercímkét",
+ "{actor} removed system tag {systemtag}" : "{actor} eltávolította a(z) {systemtag} rendszercímkét",
+ "You created system tag %1$s" : "Létrehozta a(z) %1$s rendszercímkét",
+ "You created system tag {systemtag}" : "Létrehozta a(z) {systemtag} rendszercímkét",
"%1$s created system tag %2$s" : "%1$s létrehozta ezt a rendszer címkét: %2$s",
- "{actor} created system tag {systemtag}" : "{actor} létrehozta ezt a rendszer címkét: {systemtag}",
- "You deleted system tag %1$s" : "Törölted ezt a rendszer címkét: %1$s",
- "You deleted system tag {systemtag}" : "Törölted ezt a rendszer címkét: {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s törölte ezt a rendszer címkét: %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} törölte ezt a rendszer címkét: {systemtag}",
- "You updated system tag %2$s to %1$s" : "%2$s rendszer címke frissítve erre: %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "{oldsystemtag} rendszer címke frissítve erre: {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s frissítette ezt a rendszer címkét erről: %3$s erre: %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} frissítette ezt a rendszer címkét: {oldsystemtag} erre: {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "A rendszer hozzáadta a(z) %2$s rendszercímkét a következőhöz: %1$s",
+ "{actor} created system tag {systemtag}" : "{actor} létrehozta a(z) {systemtag} rendszercímkét",
+ "You deleted system tag %1$s" : "Törölte a(z) %1$s rendszercímkét",
+ "You deleted system tag {systemtag}" : "Törölte a(z) {systemtag} rendszercímkét",
+ "%1$s deleted system tag %2$s" : "%1$s törölte a(z) %2$s rendszercímkét",
+ "{actor} deleted system tag {systemtag}" : "{actor} törölte a(z) {systemtag} rendszercímkét",
+ "You updated system tag %2$s to %1$s" : "Frissítette a(z) %2$s rendszercímkét a következőre: %1$s",
+ "You updated system tag {oldsystemtag} to {newsystemtag}" : "Frissítette a(z) {oldsystemtag} rendszercímkét a következőre: {newsystemtag}",
+ "%1$s updated system tag %3$s to %2$s" : "%1$s erre frissítette a(z) %3$s rendszercímkét: %2$s",
+ "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} erre frissítette a(z) {oldsystemtag} rendszercímkét: {newsystemtag}",
+ "System tag %2$s was added to %1$s by the system" : "A rendszer hozzáadta a(z) %2$s rendszercímkét a(z) %1$s fájlhoz",
"System tag {systemtag} was added to {file} by the system" : "A rendszer hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz",
- "You added system tag %2$s to %1$s" : "Hozzáadtad ezt a rendszer címkét: %2$s ehhez: %1$s",
- "You added system tag {systemtag} to {file}" : "Hozzáadtad ezt a rendszer címkét: {systemtag} ehhez: {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s hozzáadta ezt a rendszer címkét: %3$s ehhez: %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} hozzáadta ezt a rendszer címkét: {systemtag} ehhez: {file}",
- "System tag %2$s was removed from %1$s by the system" : "A rendszer eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlból",
- "System tag {systemtag} was removed from {file} by the system" : "A rendszer eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlból",
- "You removed system tag %2$s from %1$s" : "Eltávolítottad ezt a rendszer címkét: %2$s innen: %1$s",
- "You removed system tag {systemtag} from {file}" : "Eltávolítottad ezt a rendszer címkét: {systemtag} innen: {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eltávolította ezt a rendszer címkét: %3$s innen: %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eltávolította ezt a rendszer címkét: {systemtag} innen: {file}",
+ "You added system tag %2$s to %1$s" : "Hozzáadta a(z) %2$s rendszercímkét a(z) %1$s fájlhoz",
+ "You added system tag {systemtag} to {file}" : "Hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz",
+ "%1$s added system tag %3$s to %2$s" : "%1$s hozzáadta a(z) %3$s rendszercímkét a(z) %2$s fájlhoz",
+ "{actor} added system tag {systemtag} to {file}" : "{actor} hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz",
+ "System tag %2$s was removed from %1$s by the system" : "A rendszer eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlról",
+ "System tag {systemtag} was removed from {file} by the system" : "A rendszer eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról",
+ "You removed system tag %2$s from %1$s" : "Eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlról",
+ "You removed system tag {systemtag} from {file}" : "Eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról",
+ "%1$s removed system tag %3$s from %2$s" : "%1$s eltávolította a(z) %3$s rendszercímkét a(z) %2$s fájlról",
+ "{actor} removed system tag {systemtag} from {file}" : "{actor} eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról",
"%s (restricted)" : "%s (korlátozott)",
"%s (invisible)" : "%s (láthatatlan)",
- "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszer címkéje</strong> módosítva lett",
+ "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszercímkéi</strong> módosítva lettek",
"Tags" : "Címkék",
"Collaborative tags" : "Együttműködési címkék",
"Collaborative tagging functionality which shares tags among users." : "Együttműködő címkézési funkció, amely megosztja a címkéket a felhasználók között.",
"Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Együttműködő címkézési funkció, amely megosztja a címkéket a felhasználók között. Nagyszerű a csapatok számára.\n\t(Ha Ön több szervezet számára szolgáltatást nyújtó szolgáltató, akkor ajánlott deaktiválni ezt az alkalmazást, mivel a címkék meg vannak osztva.)",
"Tagged files" : "Címkézett fájlok",
- "Select tags to filter by" : "Kiválasztott címkék a szűrő által:",
+ "Select tags to filter by" : "Válasszon címkéket a szűréshez:",
"No tags found" : "Nem találhatók címkék",
- "Please select tags to filter by" : "Kéjük, válasszon ki címkét a szűréshez:",
- "No files found for the selected tags" : "Nem található fájl a kiválasztott címkéhez.",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "A közreműködő címkék elérhetőek az összes felhasználó számára. A korlátozott címkék láthatóak a felhasználók által de nem rendelhetik azt semmihez. A láthatatlan címkék belső használatra vannak fenntartva, mivel a felhasználók nem látják ezeket és nem is tudják semmihez hozzárendelni őket.",
+ "Please select tags to filter by" : "Válasszon címkéket a szűréshez:",
+ "No files found for the selected tags" : "Nem található fájl a kiválasztott címkéhez",
+ "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Az együttműködési címkék elérhetők az összes felhasználó számára. A korlátozott címkék láthatók a felhasználók által, de nem rendelhetik azt semmihez. A láthatatlan címkék belső használatra vannak fenntartva, mivel a felhasználók nem látják ezeket, és nem is tudják semmihez hozzárendelni őket.",
"Create a new tag" : "Új címke létrehozása",
"Name" : "Név",
"Public" : "Nyilvános",
diff --git a/apps/systemtags/l10n/hu.json b/apps/systemtags/l10n/hu.json
index b8a9f8dbfb7..65cbbcb77db 100644
--- a/apps/systemtags/l10n/hu.json
+++ b/apps/systemtags/l10n/hu.json
@@ -2,54 +2,54 @@
"Tag name is empty" : "A címke neve üres",
"Update" : "Frissítés",
"Create" : "Létrehozás",
- "Select tag …" : "Címke választás...",
+ "Select tag …" : "Válasszon címkét…",
"System tag %1$s added by the system" : "A rendszer hozzáadta a(z) %1$s rendszercímkét",
- "Added system tag {systemtag}" : "{systemtag} rendszer címke hozzáadva",
- "Added system tag %1$s" : "%1$s rendszer címke eltávolítva",
- "%1$s added system tag %2$s" : "%1$s hozzáadta a ezt a rendszer címkét: %2$s",
- "{actor} added system tag {systemtag}" : "{actor} hozzáadta a ezt a rendszer címkét: {systemtag}",
+ "Added system tag {systemtag}" : "{systemtag} rendszercímke hozzáadva",
+ "Added system tag %1$s" : "%1$s rendszercímke hozzáadva",
+ "%1$s added system tag %2$s" : "%1$s hozzáadta a(z) %2$s rendszercímkét",
+ "{actor} added system tag {systemtag}" : "{actor} hozzáadta a(z) {systemtag} rendszercímkét",
"System tag %1$s removed by the system" : "A rendszer eltávolította a(z) %1$s rendszercímkét",
- "Removed system tag {systemtag}" : "{systemtag} rendszer címke eltávolítva",
- "Removed system tag %1$s" : "%1$s rendszer címke eltávolítva",
- "%1$s removed system tag %2$s" : "%1$s eltávolította ezt a rendszer címkét: %2$s",
- "{actor} removed system tag {systemtag}" : "{actor} eltávolította ezt a rendszer címkét: {systemtag}",
- "You created system tag %1$s" : "Létrehoztad ezt a rendszer címkét: %1$s",
- "You created system tag {systemtag}" : "Létrehoztad ezt a rendszer címkét: {systemtag}",
+ "Removed system tag {systemtag}" : "{systemtag} rendszercímke eltávolítva",
+ "Removed system tag %1$s" : "%1$s rendszercímke eltávolítva",
+ "%1$s removed system tag %2$s" : "%1$s eltávolította a(z) %2$s rendszercímkét",
+ "{actor} removed system tag {systemtag}" : "{actor} eltávolította a(z) {systemtag} rendszercímkét",
+ "You created system tag %1$s" : "Létrehozta a(z) %1$s rendszercímkét",
+ "You created system tag {systemtag}" : "Létrehozta a(z) {systemtag} rendszercímkét",
"%1$s created system tag %2$s" : "%1$s létrehozta ezt a rendszer címkét: %2$s",
- "{actor} created system tag {systemtag}" : "{actor} létrehozta ezt a rendszer címkét: {systemtag}",
- "You deleted system tag %1$s" : "Törölted ezt a rendszer címkét: %1$s",
- "You deleted system tag {systemtag}" : "Törölted ezt a rendszer címkét: {systemtag}",
- "%1$s deleted system tag %2$s" : "%1$s törölte ezt a rendszer címkét: %2$s",
- "{actor} deleted system tag {systemtag}" : "{actor} törölte ezt a rendszer címkét: {systemtag}",
- "You updated system tag %2$s to %1$s" : "%2$s rendszer címke frissítve erre: %1$s",
- "You updated system tag {oldsystemtag} to {newsystemtag}" : "{oldsystemtag} rendszer címke frissítve erre: {newsystemtag}",
- "%1$s updated system tag %3$s to %2$s" : "%1$s frissítette ezt a rendszer címkét erről: %3$s erre: %2$s",
- "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} frissítette ezt a rendszer címkét: {oldsystemtag} erre: {newsystemtag}",
- "System tag %2$s was added to %1$s by the system" : "A rendszer hozzáadta a(z) %2$s rendszercímkét a következőhöz: %1$s",
+ "{actor} created system tag {systemtag}" : "{actor} létrehozta a(z) {systemtag} rendszercímkét",
+ "You deleted system tag %1$s" : "Törölte a(z) %1$s rendszercímkét",
+ "You deleted system tag {systemtag}" : "Törölte a(z) {systemtag} rendszercímkét",
+ "%1$s deleted system tag %2$s" : "%1$s törölte a(z) %2$s rendszercímkét",
+ "{actor} deleted system tag {systemtag}" : "{actor} törölte a(z) {systemtag} rendszercímkét",
+ "You updated system tag %2$s to %1$s" : "Frissítette a(z) %2$s rendszercímkét a következőre: %1$s",
+ "You updated system tag {oldsystemtag} to {newsystemtag}" : "Frissítette a(z) {oldsystemtag} rendszercímkét a következőre: {newsystemtag}",
+ "%1$s updated system tag %3$s to %2$s" : "%1$s erre frissítette a(z) %3$s rendszercímkét: %2$s",
+ "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} erre frissítette a(z) {oldsystemtag} rendszercímkét: {newsystemtag}",
+ "System tag %2$s was added to %1$s by the system" : "A rendszer hozzáadta a(z) %2$s rendszercímkét a(z) %1$s fájlhoz",
"System tag {systemtag} was added to {file} by the system" : "A rendszer hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz",
- "You added system tag %2$s to %1$s" : "Hozzáadtad ezt a rendszer címkét: %2$s ehhez: %1$s",
- "You added system tag {systemtag} to {file}" : "Hozzáadtad ezt a rendszer címkét: {systemtag} ehhez: {file}",
- "%1$s added system tag %3$s to %2$s" : "%1$s hozzáadta ezt a rendszer címkét: %3$s ehhez: %2$s",
- "{actor} added system tag {systemtag} to {file}" : "{actor} hozzáadta ezt a rendszer címkét: {systemtag} ehhez: {file}",
- "System tag %2$s was removed from %1$s by the system" : "A rendszer eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlból",
- "System tag {systemtag} was removed from {file} by the system" : "A rendszer eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlból",
- "You removed system tag %2$s from %1$s" : "Eltávolítottad ezt a rendszer címkét: %2$s innen: %1$s",
- "You removed system tag {systemtag} from {file}" : "Eltávolítottad ezt a rendszer címkét: {systemtag} innen: {file}",
- "%1$s removed system tag %3$s from %2$s" : "%1$s eltávolította ezt a rendszer címkét: %3$s innen: %2$s",
- "{actor} removed system tag {systemtag} from {file}" : "{actor} eltávolította ezt a rendszer címkét: {systemtag} innen: {file}",
+ "You added system tag %2$s to %1$s" : "Hozzáadta a(z) %2$s rendszercímkét a(z) %1$s fájlhoz",
+ "You added system tag {systemtag} to {file}" : "Hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz",
+ "%1$s added system tag %3$s to %2$s" : "%1$s hozzáadta a(z) %3$s rendszercímkét a(z) %2$s fájlhoz",
+ "{actor} added system tag {systemtag} to {file}" : "{actor} hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz",
+ "System tag %2$s was removed from %1$s by the system" : "A rendszer eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlról",
+ "System tag {systemtag} was removed from {file} by the system" : "A rendszer eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról",
+ "You removed system tag %2$s from %1$s" : "Eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlról",
+ "You removed system tag {systemtag} from {file}" : "Eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról",
+ "%1$s removed system tag %3$s from %2$s" : "%1$s eltávolította a(z) %3$s rendszercímkét a(z) %2$s fájlról",
+ "{actor} removed system tag {systemtag} from {file}" : "{actor} eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról",
"%s (restricted)" : "%s (korlátozott)",
"%s (invisible)" : "%s (láthatatlan)",
- "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszer címkéje</strong> módosítva lett",
+ "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszercímkéi</strong> módosítva lettek",
"Tags" : "Címkék",
"Collaborative tags" : "Együttműködési címkék",
"Collaborative tagging functionality which shares tags among users." : "Együttműködő címkézési funkció, amely megosztja a címkéket a felhasználók között.",
"Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Együttműködő címkézési funkció, amely megosztja a címkéket a felhasználók között. Nagyszerű a csapatok számára.\n\t(Ha Ön több szervezet számára szolgáltatást nyújtó szolgáltató, akkor ajánlott deaktiválni ezt az alkalmazást, mivel a címkék meg vannak osztva.)",
"Tagged files" : "Címkézett fájlok",
- "Select tags to filter by" : "Kiválasztott címkék a szűrő által:",
+ "Select tags to filter by" : "Válasszon címkéket a szűréshez:",
"No tags found" : "Nem találhatók címkék",
- "Please select tags to filter by" : "Kéjük, válasszon ki címkét a szűréshez:",
- "No files found for the selected tags" : "Nem található fájl a kiválasztott címkéhez.",
- "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "A közreműködő címkék elérhetőek az összes felhasználó számára. A korlátozott címkék láthatóak a felhasználók által de nem rendelhetik azt semmihez. A láthatatlan címkék belső használatra vannak fenntartva, mivel a felhasználók nem látják ezeket és nem is tudják semmihez hozzárendelni őket.",
+ "Please select tags to filter by" : "Válasszon címkéket a szűréshez:",
+ "No files found for the selected tags" : "Nem található fájl a kiválasztott címkéhez",
+ "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Az együttműködési címkék elérhetők az összes felhasználó számára. A korlátozott címkék láthatók a felhasználók által, de nem rendelhetik azt semmihez. A láthatatlan címkék belső használatra vannak fenntartva, mivel a felhasználók nem látják ezeket, és nem is tudják semmihez hozzárendelni őket.",
"Create a new tag" : "Új címke létrehozása",
"Name" : "Név",
"Public" : "Nyilvános",
diff --git a/apps/testing/composer/composer/InstalledVersions.php b/apps/testing/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/testing/composer/composer/InstalledVersions.php
+++ b/apps/testing/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/testing/composer/composer/autoload_classmap.php b/apps/testing/composer/composer/autoload_classmap.php
index 96bc2b7b682..c4688abedf4 100644
--- a/apps/testing/composer/composer/autoload_classmap.php
+++ b/apps/testing/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/testing/composer/composer/autoload_namespaces.php b/apps/testing/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/testing/composer/composer/autoload_namespaces.php
+++ b/apps/testing/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/testing/composer/composer/autoload_psr4.php b/apps/testing/composer/composer/autoload_psr4.php
index 4ac8da6cc69..416052e6c12 100644
--- a/apps/testing/composer/composer/autoload_psr4.php
+++ b/apps/testing/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/testing/composer/composer/autoload_real.php b/apps/testing/composer/composer/autoload_real.php
index 220aa05db64..805c585644d 100644
--- a/apps/testing/composer/composer/autoload_real.php
+++ b/apps/testing/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitTesting
}
spl_autoload_register(array('ComposerAutoloaderInitTesting', '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('ComposerAutoloaderInitTesting', '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\ComposerStaticInitTesting::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitTesting::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/twofactor_backupcodes/composer/composer/InstalledVersions.php b/apps/twofactor_backupcodes/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/twofactor_backupcodes/composer/composer/InstalledVersions.php
+++ b/apps/twofactor_backupcodes/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php b/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php
index 93196a5a886..16dda3f615a 100644
--- a/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php
+++ b/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php b/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php
+++ b/apps/twofactor_backupcodes/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/twofactor_backupcodes/composer/composer/autoload_psr4.php b/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php
index c54d4c9819c..873cc7acf2f 100644
--- a/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php
+++ b/apps/twofactor_backupcodes/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/twofactor_backupcodes/composer/composer/autoload_real.php b/apps/twofactor_backupcodes/composer/composer/autoload_real.php
index 54580be4664..0c6e6b19f33 100644
--- a/apps/twofactor_backupcodes/composer/composer/autoload_real.php
+++ b/apps/twofactor_backupcodes/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitTwoFactorBackupCodes
}
spl_autoload_register(array('ComposerAutoloaderInitTwoFactorBackupCodes', '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('ComposerAutoloaderInitTwoFactorBackupCodes', '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\ComposerStaticInitTwoFactorBackupCodes::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitTwoFactorBackupCodes::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/updatenotification/composer/composer/InstalledVersions.php b/apps/updatenotification/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/updatenotification/composer/composer/InstalledVersions.php
+++ b/apps/updatenotification/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/updatenotification/composer/composer/autoload_classmap.php b/apps/updatenotification/composer/composer/autoload_classmap.php
index af7ec72d8e1..9d31d6c36db 100644
--- a/apps/updatenotification/composer/composer/autoload_classmap.php
+++ b/apps/updatenotification/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
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..89854cd42f4 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';
+ \Composer\Autoload\ComposerStaticInitUpdateNotification::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/updatenotification/l10n/cs.js b/apps/updatenotification/l10n/cs.js
index b10780960a7..172c2fc8584 100644
--- a/apps/updatenotification/l10n/cs.js
+++ b/apps/updatenotification/l10n/cs.js
@@ -16,6 +16,7 @@ OC.L10N.register(
"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 users! Please use the command line updater instead!" : "Prosím mějte na paměti, že pro instance s více než 100 uživateli 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í",
"Please use the command line updater to update." : "Aktualizaci proveďte nástrojem z příkazového řádku.",
@@ -23,6 +24,7 @@ OC.L10N.register(
"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:",
+ "You can change the update channel below which 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." : "Níže je možné změnit kanál aktualizací, což 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í.",
"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ího kanálu.",
"Notify members of the following groups about available updates:" : "Upozorňovat členy následujících skupin na dostupnost aktualizací:",
diff --git a/apps/updatenotification/l10n/cs.json b/apps/updatenotification/l10n/cs.json
index a870c2b0f5f..e53b0576977 100644
--- a/apps/updatenotification/l10n/cs.json
+++ b/apps/updatenotification/l10n/cs.json
@@ -14,6 +14,7 @@
"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 users! Please use the command line updater instead!" : "Prosím mějte na paměti, že pro instance s více než 100 uživateli 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í",
"Please use the command line updater to update." : "Aktualizaci proveďte nástrojem z příkazového řádku.",
@@ -21,6 +22,7 @@
"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:",
+ "You can change the update channel below which 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." : "Níže je možné změnit kanál aktualizací, což 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í.",
"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ího kanálu.",
"Notify members of the following groups about available updates:" : "Upozorňovat členy následujících skupin na dostupnost aktualizací:",
diff --git a/apps/updatenotification/l10n/de_DE.js b/apps/updatenotification/l10n/de_DE.js
index 58559faf459..f5af1009edc 100644
--- a/apps/updatenotification/l10n/de_DE.js
+++ b/apps/updatenotification/l10n/de_DE.js
@@ -16,6 +16,7 @@ OC.L10N.register(
"Apps missing compatible version" : "Für diese Apps fehlen kompatible Versionen",
"View in store" : "Im Store anzeigen",
"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 users! Please use the command line updater instead!" : "Bitte beachten Sie, dass der Web Updater bei mehr als 100 Benutzern nicht empfohlen wird! Bitte verwenden Sie stattdessen den Befehlszeilen-Updater!",
"Open updater" : "Updater öffnen",
"Download now" : "Jetzt herunterladen",
"Please use the command line updater to update." : "Verwenden Sie zum Aktualisieren den Befehlszeilen-Updater.",
@@ -23,6 +24,7 @@ OC.L10N.register(
"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:",
+ "You can change the update channel below which 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." : "Sie können den Aktualisierungskanal unten ändern, was sich auch auf die Verwaltungsseite der Apps auswirkt. Z.B. Nach dem Wechsel zum Beta-Kanal werden Ihnen Beta-App-Updates auf der App-Verwaltungsseite angeboten.",
"Update channel:" : "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:",
diff --git a/apps/updatenotification/l10n/de_DE.json b/apps/updatenotification/l10n/de_DE.json
index 2b54bb987bd..c8808c81e19 100644
--- a/apps/updatenotification/l10n/de_DE.json
+++ b/apps/updatenotification/l10n/de_DE.json
@@ -14,6 +14,7 @@
"Apps missing compatible version" : "Für diese Apps fehlen kompatible Versionen",
"View in store" : "Im Store anzeigen",
"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 users! Please use the command line updater instead!" : "Bitte beachten Sie, dass der Web Updater bei mehr als 100 Benutzern nicht empfohlen wird! Bitte verwenden Sie stattdessen den Befehlszeilen-Updater!",
"Open updater" : "Updater öffnen",
"Download now" : "Jetzt herunterladen",
"Please use the command line updater to update." : "Verwenden Sie zum Aktualisieren den Befehlszeilen-Updater.",
@@ -21,6 +22,7 @@
"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:",
+ "You can change the update channel below which 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." : "Sie können den Aktualisierungskanal unten ändern, was sich auch auf die Verwaltungsseite der Apps auswirkt. Z.B. Nach dem Wechsel zum Beta-Kanal werden Ihnen Beta-App-Updates auf der App-Verwaltungsseite angeboten.",
"Update channel:" : "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:",
diff --git a/apps/updatenotification/l10n/hu.js b/apps/updatenotification/l10n/hu.js
index fba74394c00..d535d99283e 100644
--- a/apps/updatenotification/l10n/hu.js
+++ b/apps/updatenotification/l10n/hu.js
@@ -16,6 +16,7 @@ OC.L10N.register(
"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",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Vegye figyelembe, hogy a webes frissítő több mint 100 felhasználóval nem ajánlott. Használja helyette a parancssoros frissítőt.",
"Open updater" : "Frissítő megnyitása",
"Download now" : "Letöltés most",
"Please use the command line updater to update." : "Az frissítéshez kérjük használja a parancssoros frissítéskezelőt.",
@@ -23,6 +24,7 @@ OC.L10N.register(
"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:",
+ "You can change the update channel below which 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ább módosíthatja a frissítési csatornát, amely érinti az alkalmazáskezelés oldalt is. Például ha a béta csatornára bált, akkor a béta alkalmazásfrissítések is fel lesznek kínálva az alkalmazáskezelés oldalon.",
"Update channel:" : "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:",
diff --git a/apps/updatenotification/l10n/hu.json b/apps/updatenotification/l10n/hu.json
index a8701d8b0e4..9b21c0b49d7 100644
--- a/apps/updatenotification/l10n/hu.json
+++ b/apps/updatenotification/l10n/hu.json
@@ -14,6 +14,7 @@
"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",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Vegye figyelembe, hogy a webes frissítő több mint 100 felhasználóval nem ajánlott. Használja helyette a parancssoros frissítőt.",
"Open updater" : "Frissítő megnyitása",
"Download now" : "Letöltés most",
"Please use the command line updater to update." : "Az frissítéshez kérjük használja a parancssoros frissítéskezelőt.",
@@ -21,6 +22,7 @@
"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:",
+ "You can change the update channel below which 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ább módosíthatja a frissítési csatornát, amely érinti az alkalmazáskezelés oldalt is. Például ha a béta csatornára bált, akkor a béta alkalmazásfrissítések is fel lesznek kínálva az alkalmazáskezelés oldalon.",
"Update channel:" : "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:",
diff --git a/apps/updatenotification/l10n/lt_LT.js b/apps/updatenotification/l10n/lt_LT.js
index 879f3377f30..835d04c6f95 100644
--- a/apps/updatenotification/l10n/lt_LT.js
+++ b/apps/updatenotification/l10n/lt_LT.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"updatenotification",
{
- "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai kaip atnaujinti.",
+ "{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.",
diff --git a/apps/updatenotification/l10n/lt_LT.json b/apps/updatenotification/l10n/lt_LT.json
index bf7df4f2c3d..9695c5ffefe 100644
--- a/apps/updatenotification/l10n/lt_LT.json
+++ b/apps/updatenotification/l10n/lt_LT.json
@@ -1,5 +1,5 @@
{ "translations": {
- "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai kaip atnaujinti.",
+ "{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.",
diff --git a/apps/updatenotification/l10n/pl.js b/apps/updatenotification/l10n/pl.js
index f979965cbd4..4c0a581e9a1 100644
--- a/apps/updatenotification/l10n/pl.js
+++ b/apps/updatenotification/l10n/pl.js
@@ -16,6 +16,7 @@ OC.L10N.register(
"Apps missing compatible version" : "W aplikacjach brakuje zgodnej wersji",
"View in store" : "Zobacz w sklepie",
"Apps with compatible version" : "Aplikacje z kompatybilną wersją",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Należy pamiętać, że aktualizacja sieciowa nie jest zalecana przy więcej niż 100 użytkownikach! Zamiast tego użyj narzędzia do aktualizacji wiersza poleceń!",
"Open updater" : "Otwórz aktualizator",
"Download now" : "Pobierz teraz",
"Please use the command line updater to update." : "Użyj wiersza poleceń do aktualizacji.",
@@ -23,6 +24,7 @@ OC.L10N.register(
"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:",
+ "You can change the update channel below which 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." : "Możesz zmienić kanał aktualizacji poniżej, co wpływa również na stronę zarządzania aplikacjami. Np. po przejściu na kanał beta aktualizacje aplikacji beta będą dostępne na stronie zarządzania aplikacjami.",
"Update channel:" : "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:",
diff --git a/apps/updatenotification/l10n/pl.json b/apps/updatenotification/l10n/pl.json
index 4a653ea5541..281cdbe998f 100644
--- a/apps/updatenotification/l10n/pl.json
+++ b/apps/updatenotification/l10n/pl.json
@@ -14,6 +14,7 @@
"Apps missing compatible version" : "W aplikacjach brakuje zgodnej wersji",
"View in store" : "Zobacz w sklepie",
"Apps with compatible version" : "Aplikacje z kompatybilną wersją",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Należy pamiętać, że aktualizacja sieciowa nie jest zalecana przy więcej niż 100 użytkownikach! Zamiast tego użyj narzędzia do aktualizacji wiersza poleceń!",
"Open updater" : "Otwórz aktualizator",
"Download now" : "Pobierz teraz",
"Please use the command line updater to update." : "Użyj wiersza poleceń do aktualizacji.",
@@ -21,6 +22,7 @@
"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:",
+ "You can change the update channel below which 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." : "Możesz zmienić kanał aktualizacji poniżej, co wpływa również na stronę zarządzania aplikacjami. Np. po przejściu na kanał beta aktualizacje aplikacji beta będą dostępne na stronie zarządzania aplikacjami.",
"Update channel:" : "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:",
diff --git a/apps/updatenotification/l10n/tr.js b/apps/updatenotification/l10n/tr.js
index d09d9f7df63..30dc1c81e84 100644
--- a/apps/updatenotification/l10n/tr.js
+++ b/apps/updatenotification/l10n/tr.js
@@ -16,6 +16,7 @@ OC.L10N.register(
"Apps missing compatible version" : "Uyumlu sürümü olmayan uygulamalar",
"View in store" : "Mağazada görüntüle",
"Apps with compatible version" : "Uyumlu sürümü olan uygulamalar",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "100 kullanıcı üzerinde web 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",
"Please use the command line updater to update." : "Lütfen güncellemek için komut satırı güncelleyiciyi kullanın.",
@@ -23,6 +24,7 @@ OC.L10N.register(
"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:",
+ "You can change the update channel below which 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." : "Uygulama yönetimi sayfasını da etkileyen aşağıdaki güncelleme kanalını değiştirebilirsiniz. Örneğin. beta kanalına geçtikten sonra, uygulama yönetimi sayfasında beta uygulama güncellemeleri sunulur.",
"Update channel:" : "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:",
diff --git a/apps/updatenotification/l10n/tr.json b/apps/updatenotification/l10n/tr.json
index 651f7e6765c..ca1c260bf21 100644
--- a/apps/updatenotification/l10n/tr.json
+++ b/apps/updatenotification/l10n/tr.json
@@ -14,6 +14,7 @@
"Apps missing compatible version" : "Uyumlu sürümü olmayan uygulamalar",
"View in store" : "Mağazada görüntüle",
"Apps with compatible version" : "Uyumlu sürümü olan uygulamalar",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "100 kullanıcı üzerinde web 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",
"Please use the command line updater to update." : "Lütfen güncellemek için komut satırı güncelleyiciyi kullanın.",
@@ -21,6 +22,7 @@
"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:",
+ "You can change the update channel below which 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." : "Uygulama yönetimi sayfasını da etkileyen aşağıdaki güncelleme kanalını değiştirebilirsiniz. Örneğin. beta kanalına geçtikten sonra, uygulama yönetimi sayfasında beta uygulama güncellemeleri sunulur.",
"Update channel:" : "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:",
diff --git a/apps/updatenotification/l10n/zh_HK.js b/apps/updatenotification/l10n/zh_HK.js
index 236b050ecde..8484706d735 100644
--- a/apps/updatenotification/l10n/zh_HK.js
+++ b/apps/updatenotification/l10n/zh_HK.js
@@ -16,6 +16,7 @@ OC.L10N.register(
"Apps missing compatible version" : "應用程式缺少兼容版本",
"View in store" : "在商店中檢視",
"Apps with compatible version" : "具有兼容版本的應用程式",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "請注意,不建議使用超過 100 個用戶的網絡更新程序! 請改用命令行更新程序!",
"Open updater" : "打開更新程式",
"Download now" : "立即下載",
"Please use the command line updater to update." : "請使用命令行更新程序進行更新。",
diff --git a/apps/updatenotification/l10n/zh_HK.json b/apps/updatenotification/l10n/zh_HK.json
index e8b1f71eb1f..fb4bb9d55d7 100644
--- a/apps/updatenotification/l10n/zh_HK.json
+++ b/apps/updatenotification/l10n/zh_HK.json
@@ -14,6 +14,7 @@
"Apps missing compatible version" : "應用程式缺少兼容版本",
"View in store" : "在商店中檢視",
"Apps with compatible version" : "具有兼容版本的應用程式",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "請注意,不建議使用超過 100 個用戶的網絡更新程序! 請改用命令行更新程序!",
"Open updater" : "打開更新程式",
"Download now" : "立即下載",
"Please use the command line updater to update." : "請使用命令行更新程序進行更新。",
diff --git a/apps/updatenotification/l10n/zh_TW.js b/apps/updatenotification/l10n/zh_TW.js
index b0d2c6bc1b7..6f85eccc8c4 100644
--- a/apps/updatenotification/l10n/zh_TW.js
+++ b/apps/updatenotification/l10n/zh_TW.js
@@ -16,6 +16,7 @@ OC.L10N.register(
"Apps missing compatible version" : "應用程式缺少相容的版本",
"View in store" : "在商店中檢視",
"Apps with compatible version" : "有相容版本的應用程式",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "請注意,不建議超過 100 個使用者的站台使用網頁更新程式!請改用命令列更新程式!",
"Open updater" : "打開更新程式",
"Download now" : "現在下載",
"Please use the command line updater to update." : "請使用命令列更新程式來更新。",
@@ -23,6 +24,7 @@ OC.L10N.register(
"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:" : "使用非預設的更新伺服器檢查更新:",
+ "You can change the update channel below which 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." : "您可以變更下方的更新頻道,這也會影響應用程式管理頁面。例如,切換到測試版頻道後,在應用程式管理頁更新應用程式時也會提供測試版。",
"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:" : "有可用更新時通知這些群組的成員:",
diff --git a/apps/updatenotification/l10n/zh_TW.json b/apps/updatenotification/l10n/zh_TW.json
index c23a320d644..6ba3b8ef7f1 100644
--- a/apps/updatenotification/l10n/zh_TW.json
+++ b/apps/updatenotification/l10n/zh_TW.json
@@ -14,6 +14,7 @@
"Apps missing compatible version" : "應用程式缺少相容的版本",
"View in store" : "在商店中檢視",
"Apps with compatible version" : "有相容版本的應用程式",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "請注意,不建議超過 100 個使用者的站台使用網頁更新程式!請改用命令列更新程式!",
"Open updater" : "打開更新程式",
"Download now" : "現在下載",
"Please use the command line updater to update." : "請使用命令列更新程式來更新。",
@@ -21,6 +22,7 @@
"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:" : "使用非預設的更新伺服器檢查更新:",
+ "You can change the update channel below which 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." : "您可以變更下方的更新頻道,這也會影響應用程式管理頁面。例如,切換到測試版頻道後,在應用程式管理頁更新應用程式時也會提供測試版。",
"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:" : "有可用更新時通知這些群組的成員:",
diff --git a/apps/updatenotification/src/components/UpdateNotification.vue b/apps/updatenotification/src/components/UpdateNotification.vue
index 0f978358e3f..6fc48978852 100644
--- a/apps/updatenotification/src/components/UpdateNotification.vue
+++ b/apps/updatenotification/src/components/UpdateNotification.vue
@@ -84,6 +84,10 @@
</template>
</div>
+ <div>
+ {{ t('updatenotification', 'You can change the update channel below which 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.') }}
+ </div>
+
<h3 class="update-channel-selector">
{{ t('updatenotification', 'Update channel:') }}
<div v-click-outside="closeUpdateChannelMenu" class="update-menu">
diff --git a/apps/user_ldap/composer/composer/InstalledVersions.php b/apps/user_ldap/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/user_ldap/composer/composer/InstalledVersions.php
+++ b/apps/user_ldap/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/user_ldap/composer/composer/autoload_classmap.php b/apps/user_ldap/composer/composer/autoload_classmap.php
index cffb2aaa9fe..12ede37a941 100644
--- a/apps/user_ldap/composer/composer/autoload_classmap.php
+++ b/apps/user_ldap/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
@@ -67,6 +67,7 @@ return array(
'OCA\\User_LDAP\\Migration\\Version1130Date20220110154717' => $baseDir . '/../lib/Migration/Version1130Date20220110154717.php',
'OCA\\User_LDAP\\Migration\\Version1130Date20220110154718' => $baseDir . '/../lib/Migration/Version1130Date20220110154718.php',
'OCA\\User_LDAP\\Migration\\Version1130Date20220110154719' => $baseDir . '/../lib/Migration/Version1130Date20220110154719.php',
+ 'OCA\\User_LDAP\\Migration\\Version1141Date20220323143801' => $baseDir . '/../lib/Migration/Version1141Date20220323143801.php',
'OCA\\User_LDAP\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php',
'OCA\\User_LDAP\\PagedResults\\IAdapter' => $baseDir . '/../lib/PagedResults/IAdapter.php',
'OCA\\User_LDAP\\PagedResults\\Php73' => $baseDir . '/../lib/PagedResults/Php73.php',
diff --git a/apps/user_ldap/composer/composer/autoload_namespaces.php b/apps/user_ldap/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/user_ldap/composer/composer/autoload_namespaces.php
+++ b/apps/user_ldap/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/user_ldap/composer/composer/autoload_psr4.php b/apps/user_ldap/composer/composer/autoload_psr4.php
index 5251e2c1f81..787eb338039 100644
--- a/apps/user_ldap/composer/composer/autoload_psr4.php
+++ b/apps/user_ldap/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/user_ldap/composer/composer/autoload_real.php b/apps/user_ldap/composer/composer/autoload_real.php
index 7cfd2b52370..0e1a6558e55 100644
--- a/apps/user_ldap/composer/composer/autoload_real.php
+++ b/apps/user_ldap/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitUser_LDAP
}
spl_autoload_register(array('ComposerAutoloaderInitUser_LDAP', '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('ComposerAutoloaderInitUser_LDAP', '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\ComposerStaticInitUser_LDAP::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitUser_LDAP::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/user_ldap/composer/composer/autoload_static.php b/apps/user_ldap/composer/composer/autoload_static.php
index 5928ff78ef0..ecf5e4167f6 100644
--- a/apps/user_ldap/composer/composer/autoload_static.php
+++ b/apps/user_ldap/composer/composer/autoload_static.php
@@ -82,6 +82,7 @@ class ComposerStaticInitUser_LDAP
'OCA\\User_LDAP\\Migration\\Version1130Date20220110154717' => __DIR__ . '/..' . '/../lib/Migration/Version1130Date20220110154717.php',
'OCA\\User_LDAP\\Migration\\Version1130Date20220110154718' => __DIR__ . '/..' . '/../lib/Migration/Version1130Date20220110154718.php',
'OCA\\User_LDAP\\Migration\\Version1130Date20220110154719' => __DIR__ . '/..' . '/../lib/Migration/Version1130Date20220110154719.php',
+ 'OCA\\User_LDAP\\Migration\\Version1141Date20220323143801' => __DIR__ . '/..' . '/../lib/Migration/Version1141Date20220323143801.php',
'OCA\\User_LDAP\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php',
'OCA\\User_LDAP\\PagedResults\\IAdapter' => __DIR__ . '/..' . '/../lib/PagedResults/IAdapter.php',
'OCA\\User_LDAP\\PagedResults\\Php73' => __DIR__ . '/..' . '/../lib/PagedResults/Php73.php',
diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css
index 54d0e2dbb0c..f99310118a9 100644
--- a/apps/user_ldap/css/settings.css
+++ b/apps/user_ldap/css/settings.css
@@ -9,7 +9,8 @@
}
.tablerow {
- display: table-row;
+ display: flex;
+ align-items: center;
white-space: nowrap;
text-align: left;
}
@@ -226,3 +227,8 @@ select[multiple=multiple] + button {
#ldapSettings div.ui-accordion-content {
background: white;
}
+
+ul.ui-multiselect-checkboxes label {
+ display: flex;
+ align-items: center;
+}
diff --git a/apps/user_ldap/js/vendor/ui-multiselect/jquery.multiselect.css b/apps/user_ldap/css/vendor/ui-multiselect/jquery.multiselect.css
index 9b81c3bdcfb..9b81c3bdcfb 100644
--- a/apps/user_ldap/js/vendor/ui-multiselect/jquery.multiselect.css
+++ b/apps/user_ldap/css/vendor/ui-multiselect/jquery.multiselect.css
diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js
index 7f4f7e62a26..314f8d6963c 100644
--- a/apps/user_ldap/l10n/pl.js
+++ b/apps/user_ldap/l10n/pl.js
@@ -44,7 +44,7 @@ OC.L10N.register(
"Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Zmiana trybu włączy automatyczne odpytywanie LDAP-a. W zależności od jego wielkości może to trochę potrwać. Nadal chcesz zmienić tryb?",
"Mode switch" : "Przełącznik trybów",
"Select attributes" : "Wybierz atrybuty",
- "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Użytkownik nie znaleziony. Sprawdź nazwę i atrybuty logowania. Filtr efektywny (aby skopiować i wkleić do wiersza poleceń): <br/>",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Użytkownik nie znaleziony. Sprawdź atrybuty logowania i nazwę użytkownika. Filtr efektywny (do kopiowania i wklejania w celu sprawdzenia poprawności w wierszu poleceń): <br/>",
"User found and settings verified." : "Znaleziono użytkownika i zweryfikowano ustawienia.",
"Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Rozważ zawężenie wyszukiwania, gdyż obejmuje ono wielu użytkowników, z tylko pierwszy będzie mógł się zalogować.",
"An unspecified error occurred. Please check log and settings." : "Wystąpił nieoczekiwany błąd. Sprawdź logi i ustawienia.",
diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json
index 3ee88adc88f..e052d5bcb44 100644
--- a/apps/user_ldap/l10n/pl.json
+++ b/apps/user_ldap/l10n/pl.json
@@ -42,7 +42,7 @@
"Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Zmiana trybu włączy automatyczne odpytywanie LDAP-a. W zależności od jego wielkości może to trochę potrwać. Nadal chcesz zmienić tryb?",
"Mode switch" : "Przełącznik trybów",
"Select attributes" : "Wybierz atrybuty",
- "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Użytkownik nie znaleziony. Sprawdź nazwę i atrybuty logowania. Filtr efektywny (aby skopiować i wkleić do wiersza poleceń): <br/>",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Użytkownik nie znaleziony. Sprawdź atrybuty logowania i nazwę użytkownika. Filtr efektywny (do kopiowania i wklejania w celu sprawdzenia poprawności w wierszu poleceń): <br/>",
"User found and settings verified." : "Znaleziono użytkownika i zweryfikowano ustawienia.",
"Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Rozważ zawężenie wyszukiwania, gdyż obejmuje ono wielu użytkowników, z tylko pierwszy będzie mógł się zalogować.",
"An unspecified error occurred. Please check log and settings." : "Wystąpił nieoczekiwany błąd. Sprawdź logi i ustawienia.",
diff --git a/apps/user_ldap/l10n/sv.js b/apps/user_ldap/l10n/sv.js
index 4f6055f4e41..6048151ac39 100644
--- a/apps/user_ldap/l10n/sv.js
+++ b/apps/user_ldap/l10n/sv.js
@@ -27,20 +27,20 @@ OC.L10N.register(
"Select object classes" : "Välj objekt-klasser",
"Please check the credentials, they seem to be wrong." : "Vänligen kontrollera dina uppgifter, de verkar vara fel.",
"Please specify the port, it could not be auto-detected." : "Vänligen ange porten, den kunde inte upptäckas automatiskt.",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "Grundläggande DN kunde inte upptäckas automatiskt, vänligen dubbelkolla dina uppgifter, värd och port.",
- "Could not detect Base DN, please enter it manually." : "Kunde inte upptäcka Base DN, vänligen ange det manuellt.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Grundläggande DN kunde inte upptäckas automatiskt, dubbelkolla dina uppgifter, värd och port.",
+ "Could not detect Base DN, please enter it manually." : "Kunde inte upptäcka Base DN, ange det manuellt.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "Inget objekt funnet i den givna Base DN. Vänligen granska.",
"More than 1,000 directory entries available." : "Mer än 1,000 katalogposter tillgängliga.",
"_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} post tillgänglig inom den medföljande Base DN","{objectsFound} poster tillgängliga inom den medföljande Base DN"],
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ett fel uppstod. Vänligen kontrollera Base DN, och även anslutningsinställningar och referenser.",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ett fel uppstod. Kontrollera Base DN, och även anslutningsinställningar och referenser.",
"Do you really want to delete the current Server Configuration?" : "Vill du verkligen ta bort den nuvarande serverinställningen?",
"Confirm Deletion" : "Bekräfta radering",
"Mappings cleared successfully!" : "Rensning av mappningar lyckades!",
"Error while clearing the mappings." : "Fel uppstod under rensning av mappningar",
- "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym bindning inte tillåten. Vänligen ange en användar-DN och lösenord.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym bindning inte tillåten. Ange en användar-DN och lösenord.",
"LDAP Operations error. Anonymous bind might not be allowed." : "LDAP Operations error. Anonym bindning kanske inte längre tillåts.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Sparandet misslyckades. Vänligen kontrollera att databasen är verksam. Uppdatera innan du fortsätter.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Sparandet misslyckades. Kontrollera att databasen är verksam. Uppdatera innan du fortsätter.",
"Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Byte av läge kommer aktivera automatiska LDAP förfrågningar. Beroende på din LDAP storlek kan de ta ett tag. Vill du fortfarande ändra läge?",
"Mode switch" : "Lägesändring",
"Select attributes" : "Välj attribut",
@@ -49,7 +49,7 @@ OC.L10N.register(
"Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Överväg att specificera din sökning eftersom den resulterade i många användare och bara den första kommer att kunna logga in.",
"An unspecified error occurred. Please check log and settings." : "Ett ospecificerat fel inträffade. Vänligen kontrollera loggen och inställningarna.",
"The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Sökfiltret är ogiltigt, troligen på grund av syntaxproblem som ojämnt antal öppna och slutna klamrar. Vänligen granska.",
- "Please provide a login name to test against" : "Vänligen ange ett inloggningsnamn att försöka ansluta med",
+ "Please provide a login name to test against" : "Ange ett inloggningsnamn att försöka ansluta med",
"Password change rejected. Hint: " : "Lösenordsbyte nekad. Anledning/tips: ",
"Please login with the new password" : "Vänligen logga in med det nya lösenordet",
"LDAP User backend" : "LDAP användarbackend",
@@ -102,7 +102,7 @@ OC.L10N.register(
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Undviker automatiska LDAP-förfrågningar. Bättre för större installationer, men kräver en del LDAP-kunskap.",
"Manually enter LDAP filters (recommended for large directories)" : "Ange LDAP-filter manuellt (rekommenderat för stora kataloger)",
"Listing and searching for users is constrained by these criteria:" : "Listning och sökning av användare är begränsade efter dessa kriterier:",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest vanliga objektklasserna för användare är organizationalPerson, person, user och inetOrgPerson. Om du inte är säker vilken objektklass som ska väljas, vänligen hör med din mappadministratör.",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest vanliga objektklasserna för användare är organizationalPerson, person, user och inetOrgPerson. Om du inte är säker vilken objektklass som ska väljas, hör med din mappadministratör.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Filtret specificerar vilka LDAP-användare som skall ha åtkomst till %s instans",
"Verify settings and count users" : "Verifiera inställningar och räkna användare",
"Saving" : "Sparar",
@@ -122,7 +122,7 @@ OC.L10N.register(
"Groups" : "Grupper",
"Expert" : "Expert",
"Advanced" : "Avancerad",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varning:</b> PHP LDAP-modulen är inte installerad, backend kommer inte att fungera. Vänligen be din systemadministratör att installera den.",
+ "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varning:</b> PHP LDAP-modulen är inte installerad, backend kommer inte att fungera. Be din systemadministratör att installera den.",
"Connection Settings" : "Uppkopplingsinställningar",
"Configuration Active" : "Konfiguration aktiv",
"When unchecked, this configuration will be skipped." : "Ifall denna är avbockad så kommer konfigurationen att skippas.",
@@ -182,7 +182,7 @@ OC.L10N.register(
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Användarnamn används för att lagra och tilldela metadata. För att exakt identifiera användare har varje LDAP-användare ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet är mappat till UUID för LDAP-användaren. Dessutom cachas DN för att minska LDAP-interaktion, men den används inte för identifiering. Om DN ändras kommer ändringarna att hittas. Det interna användarnamnet används på nytt. Att rensa mappningarna kommer att ha rester överallt. Att rensa mappningarna är inte konfigurationskänsligt, det påverkar alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i en test- eller experimentfas.",
"Clear Username-LDAP User Mapping" : "Rensa användarnamn-LDAP användarmappning",
"Clear Groupname-LDAP Group Mapping" : "Rensa gruppnamn-LDAP gruppmappning",
- "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Ett anslutningsfel till LDAP / AD uppstod. Vänligen granska värd, port och inloggningsuppgifter.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Ett anslutningsfel till LDAP / AD uppstod. Granska värd, port och inloggningsuppgifter.",
"The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : " \"%uid\"-platshållaren saknas. Den kommer bli ersatt med inloggningsnamn när LDAP / AD efterfrågas.",
"The group box was disabled, because the LDAP / AD server does not support memberOf." : "Grupplådan var inaktiverat eftersom LDAP/AD-servern inte stödjer memberOf.",
"LDAP / AD integration" : "LDAP / AD integration",
diff --git a/apps/user_ldap/l10n/sv.json b/apps/user_ldap/l10n/sv.json
index f2847e1d812..b8e7ca43ef2 100644
--- a/apps/user_ldap/l10n/sv.json
+++ b/apps/user_ldap/l10n/sv.json
@@ -25,20 +25,20 @@
"Select object classes" : "Välj objekt-klasser",
"Please check the credentials, they seem to be wrong." : "Vänligen kontrollera dina uppgifter, de verkar vara fel.",
"Please specify the port, it could not be auto-detected." : "Vänligen ange porten, den kunde inte upptäckas automatiskt.",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "Grundläggande DN kunde inte upptäckas automatiskt, vänligen dubbelkolla dina uppgifter, värd och port.",
- "Could not detect Base DN, please enter it manually." : "Kunde inte upptäcka Base DN, vänligen ange det manuellt.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Grundläggande DN kunde inte upptäckas automatiskt, dubbelkolla dina uppgifter, värd och port.",
+ "Could not detect Base DN, please enter it manually." : "Kunde inte upptäcka Base DN, ange det manuellt.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "Inget objekt funnet i den givna Base DN. Vänligen granska.",
"More than 1,000 directory entries available." : "Mer än 1,000 katalogposter tillgängliga.",
"_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} post tillgänglig inom den medföljande Base DN","{objectsFound} poster tillgängliga inom den medföljande Base DN"],
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ett fel uppstod. Vänligen kontrollera Base DN, och även anslutningsinställningar och referenser.",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ett fel uppstod. Kontrollera Base DN, och även anslutningsinställningar och referenser.",
"Do you really want to delete the current Server Configuration?" : "Vill du verkligen ta bort den nuvarande serverinställningen?",
"Confirm Deletion" : "Bekräfta radering",
"Mappings cleared successfully!" : "Rensning av mappningar lyckades!",
"Error while clearing the mappings." : "Fel uppstod under rensning av mappningar",
- "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym bindning inte tillåten. Vänligen ange en användar-DN och lösenord.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym bindning inte tillåten. Ange en användar-DN och lösenord.",
"LDAP Operations error. Anonymous bind might not be allowed." : "LDAP Operations error. Anonym bindning kanske inte längre tillåts.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Sparandet misslyckades. Vänligen kontrollera att databasen är verksam. Uppdatera innan du fortsätter.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Sparandet misslyckades. Kontrollera att databasen är verksam. Uppdatera innan du fortsätter.",
"Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Byte av läge kommer aktivera automatiska LDAP förfrågningar. Beroende på din LDAP storlek kan de ta ett tag. Vill du fortfarande ändra läge?",
"Mode switch" : "Lägesändring",
"Select attributes" : "Välj attribut",
@@ -47,7 +47,7 @@
"Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Överväg att specificera din sökning eftersom den resulterade i många användare och bara den första kommer att kunna logga in.",
"An unspecified error occurred. Please check log and settings." : "Ett ospecificerat fel inträffade. Vänligen kontrollera loggen och inställningarna.",
"The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Sökfiltret är ogiltigt, troligen på grund av syntaxproblem som ojämnt antal öppna och slutna klamrar. Vänligen granska.",
- "Please provide a login name to test against" : "Vänligen ange ett inloggningsnamn att försöka ansluta med",
+ "Please provide a login name to test against" : "Ange ett inloggningsnamn att försöka ansluta med",
"Password change rejected. Hint: " : "Lösenordsbyte nekad. Anledning/tips: ",
"Please login with the new password" : "Vänligen logga in med det nya lösenordet",
"LDAP User backend" : "LDAP användarbackend",
@@ -100,7 +100,7 @@
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Undviker automatiska LDAP-förfrågningar. Bättre för större installationer, men kräver en del LDAP-kunskap.",
"Manually enter LDAP filters (recommended for large directories)" : "Ange LDAP-filter manuellt (rekommenderat för stora kataloger)",
"Listing and searching for users is constrained by these criteria:" : "Listning och sökning av användare är begränsade efter dessa kriterier:",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest vanliga objektklasserna för användare är organizationalPerson, person, user och inetOrgPerson. Om du inte är säker vilken objektklass som ska väljas, vänligen hör med din mappadministratör.",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest vanliga objektklasserna för användare är organizationalPerson, person, user och inetOrgPerson. Om du inte är säker vilken objektklass som ska väljas, hör med din mappadministratör.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Filtret specificerar vilka LDAP-användare som skall ha åtkomst till %s instans",
"Verify settings and count users" : "Verifiera inställningar och räkna användare",
"Saving" : "Sparar",
@@ -120,7 +120,7 @@
"Groups" : "Grupper",
"Expert" : "Expert",
"Advanced" : "Avancerad",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varning:</b> PHP LDAP-modulen är inte installerad, backend kommer inte att fungera. Vänligen be din systemadministratör att installera den.",
+ "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varning:</b> PHP LDAP-modulen är inte installerad, backend kommer inte att fungera. Be din systemadministratör att installera den.",
"Connection Settings" : "Uppkopplingsinställningar",
"Configuration Active" : "Konfiguration aktiv",
"When unchecked, this configuration will be skipped." : "Ifall denna är avbockad så kommer konfigurationen att skippas.",
@@ -180,7 +180,7 @@
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Användarnamn används för att lagra och tilldela metadata. För att exakt identifiera användare har varje LDAP-användare ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet är mappat till UUID för LDAP-användaren. Dessutom cachas DN för att minska LDAP-interaktion, men den används inte för identifiering. Om DN ändras kommer ändringarna att hittas. Det interna användarnamnet används på nytt. Att rensa mappningarna kommer att ha rester överallt. Att rensa mappningarna är inte konfigurationskänsligt, det påverkar alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i en test- eller experimentfas.",
"Clear Username-LDAP User Mapping" : "Rensa användarnamn-LDAP användarmappning",
"Clear Groupname-LDAP Group Mapping" : "Rensa gruppnamn-LDAP gruppmappning",
- "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Ett anslutningsfel till LDAP / AD uppstod. Vänligen granska värd, port och inloggningsuppgifter.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Ett anslutningsfel till LDAP / AD uppstod. Granska värd, port och inloggningsuppgifter.",
"The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : " \"%uid\"-platshållaren saknas. Den kommer bli ersatt med inloggningsnamn när LDAP / AD efterfrågas.",
"The group box was disabled, because the LDAP / AD server does not support memberOf." : "Grupplådan var inaktiverat eftersom LDAP/AD-servern inte stödjer memberOf.",
"LDAP / AD integration" : "LDAP / AD integration",
diff --git a/apps/user_ldap/lib/Command/CreateEmptyConfig.php b/apps/user_ldap/lib/Command/CreateEmptyConfig.php
index 8b1736e3a53..f7f04e28e60 100644
--- a/apps/user_ldap/lib/Command/CreateEmptyConfig.php
+++ b/apps/user_ldap/lib/Command/CreateEmptyConfig.php
@@ -59,6 +59,7 @@ class CreateEmptyConfig extends Command {
protected function execute(InputInterface $input, OutputInterface $output): int {
$configPrefix = $this->helper->getNextServerConfigurationPrefix();
$configHolder = new Configuration($configPrefix);
+ $configHolder->ldapConfigurationActive = false;
$configHolder->saveConfiguration();
$prose = '';
diff --git a/apps/user_ldap/lib/Configuration.php b/apps/user_ldap/lib/Configuration.php
index 9ffb2a79781..c16823d39ee 100644
--- a/apps/user_ldap/lib/Configuration.php
+++ b/apps/user_ldap/lib/Configuration.php
@@ -56,10 +56,9 @@ class Configuration {
*/
protected $configRead = false;
/**
- * @var string[] pre-filled with one reference key so that at least one entry is written on save request and
- * the config ID is registered
+ * @var string[]
*/
- protected $unsavedChanges = ['ldapConfigurationActive' => 'ldapConfigurationActive'];
+ protected array $unsavedChanges = [];
/**
* @var array<string, mixed> settings
@@ -257,6 +256,7 @@ class Configuration {
*/
public function saveConfiguration(): void {
$cta = array_flip($this->getConfigTranslationArray());
+ $changed = false;
foreach ($this->unsavedChanges as $key) {
$value = $this->config[$key];
switch ($key) {
@@ -286,9 +286,12 @@ class Configuration {
if (is_null($value)) {
$value = '';
}
+ $changed = true;
$this->saveValue($cta[$key], $value);
}
- $this->saveValue('_lastChange', (string)time());
+ if ($changed) {
+ $this->saveValue('_lastChange', (string)time());
+ }
$this->unsavedChanges = [];
}
diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php
index 72ded754880..e408d03fcd5 100644
--- a/apps/user_ldap/lib/Controller/ConfigAPIController.php
+++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php
@@ -118,6 +118,7 @@ class ConfigAPIController extends OCSController {
try {
$configPrefix = $this->ldapHelper->getNextServerConfigurationPrefix();
$configHolder = new Configuration($configPrefix);
+ $configHolder->ldapConfigurationActive = false;
$configHolder->saveConfiguration();
} catch (\Exception $e) {
$this->logger->logException($e);
diff --git a/apps/user_ldap/lib/Mapping/AbstractMapping.php b/apps/user_ldap/lib/Mapping/AbstractMapping.php
index f26b54a37e8..9026b8cfb78 100644
--- a/apps/user_ldap/lib/Mapping/AbstractMapping.php
+++ b/apps/user_ldap/lib/Mapping/AbstractMapping.php
@@ -355,9 +355,9 @@ abstract class AbstractMapping {
* @return bool
*/
public function map($fdn, $name, $uuid) {
- if (mb_strlen($fdn) > 4096) {
+ if (mb_strlen($fdn) > 4000) {
\OC::$server->getLogger()->error(
- 'Cannot map, because the DN exceeds 4096 characters: {dn}',
+ 'Cannot map, because the DN exceeds 4000 characters: {dn}',
[
'app' => 'user_ldap',
'dn' => $fdn,
diff --git a/apps/user_ldap/lib/Migration/Version1010Date20200630192842.php b/apps/user_ldap/lib/Migration/Version1010Date20200630192842.php
index 939db69a6ab..5c7dc7db95c 100644
--- a/apps/user_ldap/lib/Migration/Version1010Date20200630192842.php
+++ b/apps/user_ldap/lib/Migration/Version1010Date20200630192842.php
@@ -47,7 +47,7 @@ class Version1010Date20200630192842 extends SimpleMigrationStep {
$table = $schema->createTable('ldap_user_mapping');
$table->addColumn('ldap_dn', Types::STRING, [
'notnull' => true,
- 'length' => 255,
+ 'length' => 4000,
'default' => '',
]);
$table->addColumn('owncloud_name', Types::STRING, [
@@ -73,7 +73,7 @@ class Version1010Date20200630192842 extends SimpleMigrationStep {
$table = $schema->createTable('ldap_group_mapping');
$table->addColumn('ldap_dn', Types::STRING, [
'notnull' => true,
- 'length' => 255,
+ 'length' => 4000,
'default' => '',
]);
$table->addColumn('owncloud_name', Types::STRING, [
diff --git a/apps/user_ldap/lib/Migration/Version1130Date20211102154716.php b/apps/user_ldap/lib/Migration/Version1130Date20211102154716.php
index 024c5801582..5c5ed44c899 100644
--- a/apps/user_ldap/lib/Migration/Version1130Date20211102154716.php
+++ b/apps/user_ldap/lib/Migration/Version1130Date20211102154716.php
@@ -95,8 +95,8 @@ class Version1130Date20211102154716 extends SimpleMigrationStep {
}
$column = $table->getColumn('ldap_dn');
if ($tableName === 'ldap_user_mapping') {
- if ($column->getLength() < 4096) {
- $column->setLength(4096);
+ if ($column->getLength() < 4000) {
+ $column->setLength(4000);
$changeSchema = true;
}
@@ -117,7 +117,7 @@ class Version1130Date20211102154716 extends SimpleMigrationStep {
$table2 = $schema->createTable('ldap_group_mapping_backup');
$table2->addColumn('ldap_dn', Types::STRING, [
'notnull' => true,
- 'length' => 4096,
+ 'length' => 4000,
'default' => '',
]);
$table2->addColumn('owncloud_name', Types::STRING, [
diff --git a/apps/user_ldap/lib/Migration/Version1130Date20220110154718.php b/apps/user_ldap/lib/Migration/Version1130Date20220110154718.php
index 5f146ab06a5..74dd2d873bc 100644
--- a/apps/user_ldap/lib/Migration/Version1130Date20220110154718.php
+++ b/apps/user_ldap/lib/Migration/Version1130Date20220110154718.php
@@ -54,7 +54,7 @@ class Version1130Date20220110154718 extends GroupMappingMigration {
$table = $schema->createTable('ldap_group_mapping');
$table->addColumn('ldap_dn', Types::STRING, [
'notnull' => true,
- 'length' => 4096,
+ 'length' => 4000,
'default' => '',
]);
$table->addColumn('owncloud_name', Types::STRING, [
diff --git a/apps/user_ldap/lib/Migration/Version1141Date20220323143801.php b/apps/user_ldap/lib/Migration/Version1141Date20220323143801.php
new file mode 100644
index 00000000000..be496d9215e
--- /dev/null
+++ b/apps/user_ldap/lib/Migration/Version1141Date20220323143801.php
@@ -0,0 +1,113 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2022 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.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/>.
+ *
+ */
+
+namespace OCA\User_LDAP\Migration;
+
+use Closure;
+use OCP\DB\ISchemaWrapper;
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\IDBConnection;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+
+class Version1141Date20220323143801 extends SimpleMigrationStep {
+
+ private IDBConnection $dbc;
+
+ public function __construct(IDBConnection $dbc) {
+ $this->dbc = $dbc;
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ */
+ public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ foreach (['ldap_user_mapping', 'ldap_group_mapping'] as $tableName) {
+ $qb = $this->dbc->getQueryBuilder();
+ $qb->select('ldap_dn')
+ ->from($tableName)
+ ->where($qb->expr()->gt($qb->func()->octetLength('ldap_dn'), '4000', IQueryBuilder::PARAM_INT));
+
+ $dnsTooLong = [];
+ $result = $qb->executeQuery();
+ while (($dn = $result->fetchOne()) !== false) {
+ $dnsTooLong[] = $dn;
+ }
+ $result->closeCursor();
+ $this->shortenDNs($dnsTooLong, $tableName);
+ }
+ }
+
+ protected function shortenDNs(array $dns, string $table): void {
+ $qb = $this->dbc->getQueryBuilder();
+ $qb->update($table)
+ ->set('ldap_dn', $qb->createParameter('shortenedDn'))
+ ->where($qb->expr()->eq('ldap_dn', $qb->createParameter('originalDn')));
+
+ $pageSize = 1000;
+ $page = 0;
+ do {
+ $subset = array_slice($dns, $page * $pageSize, $pageSize);
+ try {
+ $this->dbc->beginTransaction();
+ foreach ($subset as $dn) {
+ $shortenedDN = mb_substr($dn, 0, 4000);
+ $qb->setParameter('shortenedDn', $shortenedDN);
+ $qb->setParameter('originalDn', $dn);
+ $qb->executeStatement();
+ }
+ $this->dbc->commit();
+ } catch (\Throwable $t) {
+ $this->dbc->rollBack();
+ throw $t;
+ }
+ $page++;
+ } while (count($subset) === $pageSize);
+ }
+
+ /**
+ * @param IOutput $output
+ * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ foreach (['ldap_user_mapping', 'ldap_group_mapping'] as $tableName) {
+ $table = $schema->getTable($tableName);
+ $column = $table->getColumn('ldap_dn');
+ if ($column->getLength() > 4000) {
+ $column->setLength(4000);
+ }
+ }
+
+ return $schema;
+ }
+}
diff --git a/apps/user_ldap/lib/Wizard.php b/apps/user_ldap/lib/Wizard.php
index 98d399b77b9..ae9546be08b 100644
--- a/apps/user_ldap/lib/Wizard.php
+++ b/apps/user_ldap/lib/Wizard.php
@@ -1331,7 +1331,7 @@ class Wizard extends LDAPUtility {
$this->configuration->ldapAgentName,
$this->configuration->ldapAgentPassword);
if ($lo === true) {
- $this->$cr = $cr;
+ $this->cr = $cr;
return $cr;
}
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index b2b22c87891..7c0f31663f0 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -1,6 +1,6 @@
<?php
-vendor_style('user_ldap', 'ui-multiselect/jquery.multiselect');
+style('user_ldap', 'vendor/ui-multiselect/jquery.multiselect');
script('user_ldap', [
'vendor/ui-multiselect/src/jquery.multiselect',
diff --git a/apps/user_status/composer/composer/InstalledVersions.php b/apps/user_status/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/user_status/composer/composer/InstalledVersions.php
+++ b/apps/user_status/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/user_status/composer/composer/autoload_classmap.php b/apps/user_status/composer/composer/autoload_classmap.php
index a5fee21039d..64da04fb8ba 100644
--- a/apps/user_status/composer/composer/autoload_classmap.php
+++ b/apps/user_status/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/user_status/composer/composer/autoload_namespaces.php b/apps/user_status/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/user_status/composer/composer/autoload_namespaces.php
+++ b/apps/user_status/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/user_status/composer/composer/autoload_psr4.php b/apps/user_status/composer/composer/autoload_psr4.php
index 8b6df1360e8..746ed232b66 100644
--- a/apps/user_status/composer/composer/autoload_psr4.php
+++ b/apps/user_status/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/user_status/composer/composer/autoload_real.php b/apps/user_status/composer/composer/autoload_real.php
index 987d1dab4e6..4ffa4b4201b 100644
--- a/apps/user_status/composer/composer/autoload_real.php
+++ b/apps/user_status/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitUserStatus
}
spl_autoload_register(array('ComposerAutoloaderInitUserStatus', '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('ComposerAutoloaderInitUserStatus', '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\ComposerStaticInitUserStatus::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitUserStatus::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/weather_status/src/App.vue b/apps/weather_status/src/App.vue
index 78cbaadeb8d..8b96a520ef7 100644
--- a/apps/weather_status/src/App.vue
+++ b/apps/weather_status/src/App.vue
@@ -137,56 +137,56 @@ const weatherOptions = {
lightrain: {
icon: 'icon-lightrain',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} light rain later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} light rain', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} light rainfall later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} light rainfall', { temperature, unit }),
},
rain: {
icon: 'icon-rain',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} rain later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} rain', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} rainfall later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} rainfall', { temperature, unit }),
},
heavyrain: {
icon: 'icon-heavyrain',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} heavy rain later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} heavy rain', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} heavy rainfall later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} heavy rainfall', { temperature, unit }),
},
rainshowers_day: {
icon: 'icon-rainshowers-day',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} rain showers later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} rain showers', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} rainfall showers later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} rainfall showers', { temperature, unit }),
},
rainshowers_night: {
icon: 'icon-rainshowers-night',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} rain showers later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} rain showers', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} rainfall showers later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} rainfall showers', { temperature, unit }),
},
lightrainshowers_day: {
icon: 'icon-light-rainshowers-day',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} light rain showers later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} light rain showers', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} light rainfall showers later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} light rainfall showers', { temperature, unit }),
},
lightrainshowers_night: {
icon: 'icon-light-rainshowers-night',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} light rain showers later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} light rain showers', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} light rainfall showers later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} light rainfall showers', { temperature, unit }),
},
heavyrainshowers_day: {
icon: 'icon-heavy-rainshowers-day',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} heavy rain showers later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} heavy rain showers', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} heavy rainfall showers later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} heavy rainfall showers', { temperature, unit }),
},
heavyrainshowers_night: {
icon: 'icon-heavy-rainshowers-night',
text: (temperature, unit, later = false) => later
- ? t('weather_status', '{temperature} {unit} heavy rain showers later today', { temperature, unit })
- : t('weather_status', '{temperature} {unit} heavy rain showers', { temperature, unit }),
+ ? t('weather_status', '{temperature} {unit} heavy rainfall showers later today', { temperature, unit })
+ : t('weather_status', '{temperature} {unit} heavy rainfall showers', { temperature, unit }),
},
}
diff --git a/apps/workflowengine/composer/composer/InstalledVersions.php b/apps/workflowengine/composer/composer/InstalledVersions.php
index d50e0c9fcc4..41bc143c114 100644
--- a/apps/workflowengine/composer/composer/InstalledVersions.php
+++ b/apps/workflowengine/composer/composer/InstalledVersions.php
@@ -21,6 +21,8 @@ use Composer\Semver\VersionParser;
* 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
{
diff --git a/apps/workflowengine/composer/composer/autoload_classmap.php b/apps/workflowengine/composer/composer/autoload_classmap.php
index bb60023a02e..39a6c6c4703 100644
--- a/apps/workflowengine/composer/composer/autoload_classmap.php
+++ b/apps/workflowengine/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = $vendorDir;
return array(
diff --git a/apps/workflowengine/composer/composer/autoload_namespaces.php b/apps/workflowengine/composer/composer/autoload_namespaces.php
index 71c9e91858d..3f5c9296251 100644
--- a/apps/workflowengine/composer/composer/autoload_namespaces.php
+++ b/apps/workflowengine/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/workflowengine/composer/composer/autoload_psr4.php b/apps/workflowengine/composer/composer/autoload_psr4.php
index a627a713ddb..3bbfbe5e4b9 100644
--- a/apps/workflowengine/composer/composer/autoload_psr4.php
+++ b/apps/workflowengine/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/workflowengine/composer/composer/autoload_real.php b/apps/workflowengine/composer/composer/autoload_real.php
index 6c14ae97018..8ed8cb2a7b4 100644
--- a/apps/workflowengine/composer/composer/autoload_real.php
+++ b/apps/workflowengine/composer/composer/autoload_real.php
@@ -23,20 +23,11 @@ class ComposerAutoloaderInitWorkflowEngine
}
spl_autoload_register(array('ComposerAutoloaderInitWorkflowEngine', '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('ComposerAutoloaderInitWorkflowEngine', '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\ComposerStaticInitWorkflowEngine::getInitializer($loader));
- } else {
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInitWorkflowEngine::getInitializer($loader)();
$loader->setClassMapAuthoritative(true);
$loader->register(true);
diff --git a/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php b/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php
index 6c38051d41a..a3806799ff0 100644
--- a/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php
+++ b/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php
@@ -32,7 +32,7 @@ use OCP\EventDispatcher\IEventListener;
use OCP\Template;
use function class_exists;
use function function_exists;
-use function script;
+use OCP\Util;
class LoadAdditionalSettingsScriptsListener implements IEventListener {
public function handle(Event $event): void {
@@ -41,10 +41,9 @@ class LoadAdditionalSettingsScriptsListener implements IEventListener {
class_exists(Template::class, true);
}
- script('core', 'systemtags');
-
- script(Application::APP_ID, [
- 'workflowengine',
- ]);
+ Util::addScript('core', 'files_fileinfo');
+ Util::addScript('core', 'files_client');
+ Util::addScript('core', 'systemtags');
+ Util::addScript(Application::APP_ID, 'workflowengine');
}
}
diff --git a/build/integration/composer.json b/build/integration/composer.json
index a574d9cad28..0ab212b3cdf 100644
--- a/build/integration/composer.json
+++ b/build/integration/composer.json
@@ -2,7 +2,7 @@
"require-dev": {
"phpunit/phpunit": "~6.5",
"behat/behat": "~3.10.0",
- "guzzlehttp/guzzle": "7.4.1",
+ "guzzlehttp/guzzle": "7.4.2",
"jarnaiz/behat-junit-formatter": "^1.3",
"sabre/dav": "4.3.1",
"symfony/event-dispatcher": "~5.3"
diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js
index 7e97f1e832d..6fd6fce5dcf 100644
--- a/core/js/setupchecks.js
+++ b/core/js/setupchecks.js
@@ -240,17 +240,14 @@
if (data.cronErrors.length > 0) {
var listOfCronErrors = "";
data.cronErrors.forEach(function(element){
- listOfCronErrors += "<li>";
+ listOfCronErrors += '<li>';
listOfCronErrors += element.error;
listOfCronErrors += ' ';
listOfCronErrors += element.hint;
- listOfCronErrors += "</li>";
+ listOfCronErrors += '</li>';
});
messages.push({
- msg: t(
- 'core',
- 'It was not possible to execute the cron job via CLI. The following technical errors have appeared:'
- ) + "<ul>" + listOfCronErrors + "</ul>",
+ msg: t('core', 'It was not possible to execute the cron job via CLI. The following technical errors have appeared:') + '<ul>' + listOfCronErrors + '</ul>',
type: OC.SetupChecks.MESSAGE_TYPE_ERROR
})
}
@@ -339,7 +336,7 @@
if(data.OpcacheSetupRecommendations.length > 0) {
var listOfOPcacheRecommendations = "";
data.OpcacheSetupRecommendations.forEach(function(element){
- listOfOPcacheRecommendations += "<li>" + element + "</li>";
+ listOfOPcacheRecommendations += '<li>' + element + '</li>';
});
messages.push({
msg: t('core', 'The PHP OPcache module is not properly configured. See the {linkstart}documentation ↗{linkend} for more information.')
@@ -350,76 +347,59 @@
}
if(!data.isSettimelimitAvailable) {
messages.push({
- msg: t(
- 'core',
- 'The PHP function "set_time_limit" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended.'),
+ msg: t('core', 'The PHP function "set_time_limit" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended.'),
type: OC.SetupChecks.MESSAGE_TYPE_WARNING
});
}
if (!data.hasFreeTypeSupport) {
messages.push({
- msg: t(
- 'core',
- 'Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.'
- ),
+ msg: t('core', 'Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface.'),
type: OC.SetupChecks.MESSAGE_TYPE_INFO
})
}
if (data.missingIndexes.length > 0) {
var listOfMissingIndexes = "";
data.missingIndexes.forEach(function(element){
- listOfMissingIndexes += "<li>";
+ listOfMissingIndexes += '<li>';
listOfMissingIndexes += t('core', 'Missing index "{indexName}" in table "{tableName}".', element);
- listOfMissingIndexes += "</li>";
+ listOfMissingIndexes += '</li>';
});
messages.push({
- msg: t(
- 'core',
- 'The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running "occ db:add-missing-indices" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.'
- ) + "<ul>" + listOfMissingIndexes + "</ul>",
+ msg: t('core', 'The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running "occ db:add-missing-indices" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.') + '<ul>' + listOfMissingIndexes + '</ul>',
type: OC.SetupChecks.MESSAGE_TYPE_INFO
})
}
if (data.missingPrimaryKeys.length > 0) {
var listOfMissingPrimaryKeys = "";
data.missingPrimaryKeys.forEach(function(element){
- listOfMissingPrimaryKeys += "<li>";
+ listOfMissingPrimaryKeys += '<li>';
listOfMissingPrimaryKeys += t('core', 'Missing primary key on table "{tableName}".', element);
- listOfMissingPrimaryKeys += "</li>";
+ listOfMissingPrimaryKeys += '</li>';
});
messages.push({
- msg: t(
- 'core',
- 'The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running "occ db:add-missing-primary-keys" those missing primary keys could be added manually while the instance keeps running.'
- ) + "<ul>" + listOfMissingPrimaryKeys + "</ul>",
+ msg: t('core', 'The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running "occ db:add-missing-primary-keys" those missing primary keys could be added manually while the instance keeps running.') + '<ul>' + listOfMissingPrimaryKeys + '</ul>',
type: OC.SetupChecks.MESSAGE_TYPE_INFO
})
}
if (data.missingColumns.length > 0) {
var listOfMissingColumns = "";
data.missingColumns.forEach(function(element){
- listOfMissingColumns += "<li>";
+ listOfMissingColumns += '<li>';
listOfMissingColumns += t('core', 'Missing optional column "{columnName}" in table "{tableName}".', element);
- listOfMissingColumns += "</li>";
+ listOfMissingColumns += '</li>';
});
messages.push({
- msg: t(
- 'core',
- 'The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running "occ db:add-missing-columns" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.'
- ) + "<ul>" + listOfMissingColumns + "</ul>",
+ msg: t('core', 'The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running "occ db:add-missing-columns" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.') + '<ul>' + listOfMissingColumns + '</ul>',
type: OC.SetupChecks.MESSAGE_TYPE_INFO
})
}
if (data.recommendedPHPModules.length > 0) {
var listOfRecommendedPHPModules = "";
data.recommendedPHPModules.forEach(function(element){
- listOfRecommendedPHPModules += "<li>" + element + "</li>";
+ listOfRecommendedPHPModules += '<li>' + element + '</li>';
});
messages.push({
- msg: t(
- 'core',
- 'This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them.'
- ) + "<ul><code>" + listOfRecommendedPHPModules + "</code></ul>",
+ msg: t('core', 'This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them.') + '<ul><code>' + listOfRecommendedPHPModules + '</code></ul>',
type: OC.SetupChecks.MESSAGE_TYPE_INFO
})
}
@@ -443,32 +423,26 @@
}
if (data.imageMagickLacksSVGSupport) {
messages.push({
- msg: t(
- 'core',
- 'Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it.'
- ),
+ msg: t('core', 'Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it.'),
type: OC.SetupChecks.MESSAGE_TYPE_INFO
})
}
if (data.pendingBigIntConversionColumns.length > 0) {
var listOfPendingBigIntConversionColumns = "";
data.pendingBigIntConversionColumns.forEach(function(element){
- listOfPendingBigIntConversionColumns += "<li>" + element + "</li>";
+ listOfPendingBigIntConversionColumns += '<li>' + element + '</li>';
});
messages.push({
- msg: t('core', 'Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running \'occ db:convert-filecache-bigint\' those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read {linkstart}the documentation page about this ↗{linkend}.')
+ msg: t('core', 'Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running "occ db:convert-filecache-bigint" those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read {linkstart}the documentation page about this ↗{linkend}.')
.replace('{linkstart}', '<a target="_blank" rel="noreferrer noopener" class="external" href="' + OC.theme.docPlaceholderUrl.replace('PLACEHOLDER', 'admin-bigint-conversion') + '">')
- .replace('{linkend}', '</a>') + "<ul>" + listOfPendingBigIntConversionColumns + "</ul>",
+ .replace('{linkend}', '</a>') + '<ul>' + listOfPendingBigIntConversionColumns + '</ul>',
type: OC.SetupChecks.MESSAGE_TYPE_INFO
})
}
if (data.isSqliteUsed) {
messages.push({
- msg: t(
- 'core',
- 'SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend.'
- ) + ' ' + t('core', 'This is particularly recommended when using the desktop client for file synchronisation.') + ' ' +
- t('core', 'To migrate to another database use the command line tool: \'occ db:convert-type\', or see the {linkstart}documentation ↗{linkend}.')
+ msg: t('core', 'SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend.') + ' ' + t('core', 'This is particularly recommended when using the desktop client for file synchronisation.') + ' ' +
+ t('core', 'To migrate to another database use the command line tool: "occ db:convert-type", or see the {linkstart}documentation ↗{linkend}.')
.replace('{linkstart}', '<a target="_blank" rel="noreferrer noopener" class="external" href="' + data.databaseConversionDocumentation + '">')
.replace('{linkend}', '</a>'),
type: OC.SetupChecks.MESSAGE_TYPE_WARNING
@@ -476,10 +450,7 @@
}
if (!data.isMemoryLimitSufficient) {
messages.push({
- msg: t(
- 'core',
- 'The PHP memory limit is below the recommended value of 512MB.'
- ),
+ msg: t('core', 'The PHP memory limit is below the recommended value of 512MB.'),
type: OC.SetupChecks.MESSAGE_TYPE_ERROR
})
}
@@ -509,19 +480,13 @@
}
if (!data.isEnoughTempSpaceAvailableIfS3PrimaryStorageIsUsed) {
messages.push({
- msg: t(
- 'core',
- 'This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path.'
- ),
+ msg: t('core', 'This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path.'),
type: OC.SetupChecks.MESSAGE_TYPE_WARNING
})
}
if (!data.temporaryDirectoryWritable) {
messages.push({
- msg: t(
- 'core',
- 'The temporary directory of this instance points to an either non-existing or non-writable directory.'
- ),
+ msg: t('core', 'The temporary directory of this instance points to an either non-existing or non-writable directory.'),
type: OC.SetupChecks.MESSAGE_TYPE_WARNING
})
}
diff --git a/core/l10n/hu.js b/core/l10n/hu.js
index 896c3fcf926..622787ba879 100644
--- a/core/l10n/hu.js
+++ b/core/l10n/hu.js
@@ -74,6 +74,7 @@ OC.L10N.register(
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Az adatbázis nem „READ COMMITTED” tranzakció izolációs szinttel fut. Ez problémákat okozhat több egyidejű esemény végrehajtásakor.",
"The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "A „fileinfo” PHP modul hiányzik. Erősen javasolt a modul engedélyezése a MIME-típusok lehető legjobb felismeréséhez.",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the {linkstart}documentation ↗{linkend} for more information." : "A tranzakciós fájlok zárolása le van tiltva, ez problémákhoz vezethet, ha versenyhelyzet lép fel. A problémák elkerülése érdekében engedélyezze a „filelocking.enabled” beállítást a config.php fájlban. További információkért lásd a {linkstart}dokumentációt ↗{linkend}.",
+ "Please make sure to set the \"overwrite.cli.url\" option in your config.php file to the URL that your users mainly use to access this Nextcloud. Suggestion: \"{suggestedOverwriteCliURL}\". Otherwise there might be problems with the URL generation via cron. (It is possible though that the suggested URL is not the URL that your users mainly use to access this Nextcloud. Best is to double check this in any case.)" : "Győződjön meg róla, hogy beállította arra az URL-re az „overwrite.cli.url” lehetőséget a config.php fájlban, amelyen a felhasználók elérik ezt a Nextcloudot. Javaslat: „{suggestedOverwriteCliURL}”. Különben problémák lehetnek a cronnal történő URL-előállítással. (Lehetséges, hogy a javasolt URL nem az, amellyel a felhasználók elsődlegesen elérik a Nextcloudot. Jobb, ha a biztonság kedvéért még egyszer ellenőrzi.)",
"Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "A telepítéshez nincs megadva alapértelmezett telefonrégió. Erre a telefonszámok országkód nélküli hitelesítéséhez van szükség a profilbeállításokban. Ha országkód nélküli számokat szeretne engedélyezni, vegye fel a konfigurációs fájlba az „default_phone_region” szót a régió megfelelő {linkstart}ISO 3166-1 kódjával ↗{linkend}.",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Az ütemezett feladatot nem lehetett parancssorból futtatni. A következő műszaki hiba lépett fel:",
"Last background job execution ran {relativeTime}. Something seems wrong. {linkstart}Check the background job settings ↗{linkend}." : "Az utolsó háttérfeladat végrehajtása {relatívTime} óta fut. Valami rossznak tűnik. {linkstart}Ellenőrizze a háttérfeladat beállításait ↗{linkend}.",
@@ -86,6 +87,7 @@ OC.L10N.register(
"The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the {linkstart}documentation ↗{linkend}." : "A fordított proxy fejléc konfigurációja helytelen, vagy egy megbízható proxyból érhető el a Nextcloud. Ha nem, akkor ez biztonsági probléma, és lehetővé teheti a támadók számára, hogy a Nextcloud számára látható IP-címüket meghamisítsák. További információk a {linkstart}dokumentációban találhatók ↗{linkend}.",
"Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the {linkstart}memcached wiki about both modules ↗{linkend}." : "A Memcached elosztott gyorsítótárként van konfigurálva, de rossz „memcache” PHP modul van telepítve. Az OC\\Memcache\\Memcached csak a „memcached” modult támogatja, a „memcache”-t nem. Lásd a {linkstart}memcached wiki-t mindkét modulról ↗{linkend}.",
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the {linkstart1}documentation ↗{linkend}. ({linkstart2}List of invalid files…{linkend} / {linkstart3}Rescan…{linkend})" : "Néhány fájl elbukott az integritásellenőrzésen. További információk a probléma megoldásáról a {linkstart1}dokumentációban találhatók ↗{linkend}. ({linkstart2}Érvénytelen fájlok listája…{linkend} / {linkstart3}Újrakeresés…{linkend})",
+ "The PHP OPcache module is not properly configured. See the {linkstart}documentation ↗{linkend} for more information." : "A PHP OPcache modul nem helyesen van beállítva. További információkért nézze meg a {linkstart}dokumentációt ↗{linkend}.",
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "A „set_time_limit” PHP függvény nem érhető el. Emiatt egy szkript megszakadhat futás közben, a telepítés hibáját okozva. A függvény engedélyezése erősen javallott.",
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "A PHP-ból hiányzik a FreeType-támogatás. Ez a beállítási felület és a profilképek hibás megjelenítését okozhatja.",
"Missing index \"{indexName}\" in table \"{tableName}\"." : "A(z) „{indexName}” index hiányzik a(z) „{tableName}” táblában.",
@@ -95,6 +97,8 @@ OC.L10N.register(
"Missing optional column \"{columnName}\" in table \"{tableName}\"." : "A nem kötelező oszlop „{columnName}” hiányzik a „{tableName}” táblában.",
"The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "Az adatbázisból hiányzik néhány nem kötelező oszlop. Mivel az oszlopok hozzáadása sokáig tart a nagy tábláknál, ezért a nem kötelező oszlopok nem lettek automatikusan hozzáadva. A hiányzó oszlopokat az „occ db:add-missing-columns” paranccsal lehet kézileg hozzáadni a példány futása közben. Az oszlopok hozzáadása után bizonyos funkciók válaszideje és használhatósága javulni fog.",
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Ennél a példánynál hiányzik néhány javasolt PHP modul. A jobb teljesítmény és nagyobb kompatibilitás miatt ezek telepítése erősen javallott.",
+ "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Az „imagick” PHP-modul nem engedélyezett, de a témázó alkalmazás igen. A webhelyikonok előállításához telepítenie és engedélyeznie kell ezt a modult.",
+ "The PHP modules \"gmp\" and/or \"bcmath\" are not enabled. If you use WebAuthn passwordless authentication, these modules are required." : "A „gmp” vagy a „bcmath” PHP modulok nem engedélyezettek. Ha WebAuthn jelszó nélküli hitelesítést használ, akkor szükség van ezekre a modulokra.",
"Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "A php-imagick modul ebben az esetben nem rendelkezik SVG támogatással. A jobb kompatibilitás érdekében ajánlott telepíteni.",
"Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running 'occ db:convert-filecache-bigint' those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Az adatbázis egyes oszlopaiból hiányzik a big int átalakítás. MIvel a nagy táblák oszloptípusainak megváltoztatása eltarthat egy ideig, azok nem lettek automatikusan megváltoztatva. Az „occ db: convert-filecache-bigint” futtatásával ezek a függőben lévő módosítások kézileg is alkalmazhatók. Ezt a műveletet offline állapotban kell végrehajtani. További részletekért olvassa el a {linkstart}erről szóló dokumentációs oldalt ↗{linkend}.",
"SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Jelenleg SQLite van háttéradatbázisként használva. Nagyobb telepítésekhez javasoljuk, hogy váltson más háttéradatbázisra. ",
diff --git a/core/l10n/hu.json b/core/l10n/hu.json
index efc0cde13ad..de6c1e06987 100644
--- a/core/l10n/hu.json
+++ b/core/l10n/hu.json
@@ -72,6 +72,7 @@
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Az adatbázis nem „READ COMMITTED” tranzakció izolációs szinttel fut. Ez problémákat okozhat több egyidejű esemény végrehajtásakor.",
"The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "A „fileinfo” PHP modul hiányzik. Erősen javasolt a modul engedélyezése a MIME-típusok lehető legjobb felismeréséhez.",
"Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the {linkstart}documentation ↗{linkend} for more information." : "A tranzakciós fájlok zárolása le van tiltva, ez problémákhoz vezethet, ha versenyhelyzet lép fel. A problémák elkerülése érdekében engedélyezze a „filelocking.enabled” beállítást a config.php fájlban. További információkért lásd a {linkstart}dokumentációt ↗{linkend}.",
+ "Please make sure to set the \"overwrite.cli.url\" option in your config.php file to the URL that your users mainly use to access this Nextcloud. Suggestion: \"{suggestedOverwriteCliURL}\". Otherwise there might be problems with the URL generation via cron. (It is possible though that the suggested URL is not the URL that your users mainly use to access this Nextcloud. Best is to double check this in any case.)" : "Győződjön meg róla, hogy beállította arra az URL-re az „overwrite.cli.url” lehetőséget a config.php fájlban, amelyen a felhasználók elérik ezt a Nextcloudot. Javaslat: „{suggestedOverwriteCliURL}”. Különben problémák lehetnek a cronnal történő URL-előállítással. (Lehetséges, hogy a javasolt URL nem az, amellyel a felhasználók elsődlegesen elérik a Nextcloudot. Jobb, ha a biztonság kedvéért még egyszer ellenőrzi.)",
"Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add \"default_phone_region\" with the respective {linkstart}ISO 3166-1 code ↗{linkend} of the region to your config file." : "A telepítéshez nincs megadva alapértelmezett telefonrégió. Erre a telefonszámok országkód nélküli hitelesítéséhez van szükség a profilbeállításokban. Ha országkód nélküli számokat szeretne engedélyezni, vegye fel a konfigurációs fájlba az „default_phone_region” szót a régió megfelelő {linkstart}ISO 3166-1 kódjával ↗{linkend}.",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Az ütemezett feladatot nem lehetett parancssorból futtatni. A következő műszaki hiba lépett fel:",
"Last background job execution ran {relativeTime}. Something seems wrong. {linkstart}Check the background job settings ↗{linkend}." : "Az utolsó háttérfeladat végrehajtása {relatívTime} óta fut. Valami rossznak tűnik. {linkstart}Ellenőrizze a háttérfeladat beállításait ↗{linkend}.",
@@ -84,6 +85,7 @@
"The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the {linkstart}documentation ↗{linkend}." : "A fordított proxy fejléc konfigurációja helytelen, vagy egy megbízható proxyból érhető el a Nextcloud. Ha nem, akkor ez biztonsági probléma, és lehetővé teheti a támadók számára, hogy a Nextcloud számára látható IP-címüket meghamisítsák. További információk a {linkstart}dokumentációban találhatók ↗{linkend}.",
"Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the {linkstart}memcached wiki about both modules ↗{linkend}." : "A Memcached elosztott gyorsítótárként van konfigurálva, de rossz „memcache” PHP modul van telepítve. Az OC\\Memcache\\Memcached csak a „memcached” modult támogatja, a „memcache”-t nem. Lásd a {linkstart}memcached wiki-t mindkét modulról ↗{linkend}.",
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the {linkstart1}documentation ↗{linkend}. ({linkstart2}List of invalid files…{linkend} / {linkstart3}Rescan…{linkend})" : "Néhány fájl elbukott az integritásellenőrzésen. További információk a probléma megoldásáról a {linkstart1}dokumentációban találhatók ↗{linkend}. ({linkstart2}Érvénytelen fájlok listája…{linkend} / {linkstart3}Újrakeresés…{linkend})",
+ "The PHP OPcache module is not properly configured. See the {linkstart}documentation ↗{linkend} for more information." : "A PHP OPcache modul nem helyesen van beállítva. További információkért nézze meg a {linkstart}dokumentációt ↗{linkend}.",
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "A „set_time_limit” PHP függvény nem érhető el. Emiatt egy szkript megszakadhat futás közben, a telepítés hibáját okozva. A függvény engedélyezése erősen javallott.",
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "A PHP-ból hiányzik a FreeType-támogatás. Ez a beállítási felület és a profilképek hibás megjelenítését okozhatja.",
"Missing index \"{indexName}\" in table \"{tableName}\"." : "A(z) „{indexName}” index hiányzik a(z) „{tableName}” táblában.",
@@ -93,6 +95,8 @@
"Missing optional column \"{columnName}\" in table \"{tableName}\"." : "A nem kötelező oszlop „{columnName}” hiányzik a „{tableName}” táblában.",
"The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running \"occ db:add-missing-columns\" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability." : "Az adatbázisból hiányzik néhány nem kötelező oszlop. Mivel az oszlopok hozzáadása sokáig tart a nagy tábláknál, ezért a nem kötelező oszlopok nem lettek automatikusan hozzáadva. A hiányzó oszlopokat az „occ db:add-missing-columns” paranccsal lehet kézileg hozzáadni a példány futása közben. Az oszlopok hozzáadása után bizonyos funkciók válaszideje és használhatósága javulni fog.",
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Ennél a példánynál hiányzik néhány javasolt PHP modul. A jobb teljesítmény és nagyobb kompatibilitás miatt ezek telepítése erősen javallott.",
+ "The PHP module \"imagick\" is not enabled although the theming app is. For favicon generation to work correctly, you need to install and enable this module." : "Az „imagick” PHP-modul nem engedélyezett, de a témázó alkalmazás igen. A webhelyikonok előállításához telepítenie és engedélyeznie kell ezt a modult.",
+ "The PHP modules \"gmp\" and/or \"bcmath\" are not enabled. If you use WebAuthn passwordless authentication, these modules are required." : "A „gmp” vagy a „bcmath” PHP modulok nem engedélyezettek. Ha WebAuthn jelszó nélküli hitelesítést használ, akkor szükség van ezekre a modulokra.",
"Module php-imagick in this instance has no SVG support. For better compatibility it is recommended to install it." : "A php-imagick modul ebben az esetben nem rendelkezik SVG támogatással. A jobb kompatibilitás érdekében ajánlott telepíteni.",
"Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running 'occ db:convert-filecache-bigint' those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read {linkstart}the documentation page about this ↗{linkend}." : "Az adatbázis egyes oszlopaiból hiányzik a big int átalakítás. MIvel a nagy táblák oszloptípusainak megváltoztatása eltarthat egy ideig, azok nem lettek automatikusan megváltoztatva. Az „occ db: convert-filecache-bigint” futtatásával ezek a függőben lévő módosítások kézileg is alkalmazhatók. Ezt a műveletet offline állapotban kell végrehajtani. További részletekért olvassa el a {linkstart}erről szóló dokumentációs oldalt ↗{linkend}.",
"SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Jelenleg SQLite van háttéradatbázisként használva. Nagyobb telepítésekhez javasoljuk, hogy váltson más háttéradatbázisra. ",
diff --git a/core/l10n/sv.js b/core/l10n/sv.js
index 33eddb79bc4..1f87aba3d8a 100644
--- a/core/l10n/sv.js
+++ b/core/l10n/sv.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"core",
{
- "Please select a file." : "Vänligen välj en fil.",
+ "Please select a file." : "Välj en fil.",
"File is too big" : "Filen är för stor",
"The selected file is not an image." : "Den valda filen är ingen bild.",
"The selected file cannot be read." : "Den valda filen kan inte läsas.",
@@ -17,7 +17,7 @@ OC.L10N.register(
"No image or file provided" : "Ingen bild eller fil har tillhandahållits",
"Unknown filetype" : "Okänd filtyp",
"Invalid image" : "Ogiltig bild",
- "An error occurred. Please contact your admin." : "Ett fel har inträffat. Vänligen kontakta din administratör.",
+ "An error occurred. Please contact your admin." : "Ett fel har inträffat. Kontakta din administratör.",
"No temporary profile picture available, try again" : "Ingen temporär profilbild finns tillgänglig, försök igen",
"No crop data provided" : "Inga beskärningsdata har angivits",
"No valid crop data provided" : "Ingen giltig beskärningsdata tillhandahölls",
@@ -46,7 +46,7 @@ OC.L10N.register(
"Repair info:" : "Reparationsinfo:",
"Repair warning:" : "Reperationsvarning:",
"Repair error:" : "Reperationsfel:",
- "Please use the command line updater because automatic updating is disabled in the config.php." : "Vänligen uppdatera via kommandotolken då automatisk uppdatering är inaktiverat i config.php.",
+ "Please use the command line updater because automatic updating is disabled in the config.php." : "Uppdatera via kommandotolken då automatisk uppdatering är inaktiverat i config.php.",
"[%d / %d]: Checking table %s" : "[%d / %d]: Kontrollerar tabell %s",
"Turned on maintenance mode" : "Aktiverade underhållsläge",
"Turned off maintenance mode" : "Inaktivera underhållsläge",
@@ -111,17 +111,17 @@ OC.L10N.register(
"The update is in progress, leaving this page might interrupt the process in some environments." : "Uppdateringen pågår, om sidan lämnas kan uppdateringen misslyckas. ",
"Update to {version}" : "Uppdatera till {version}",
"An error occurred." : "Ett fel inträffade.",
- "Please reload the page." : "Vänligen uppdatera sidan.",
+ "Please reload the page." : "Uppdatera sidan.",
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Uppdateringen misslyckades. För mer information <a href=\"{url}\">se vår forumpost</a> angående problemet.",
- "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Uppdateringen misslyckades. Vänligen rapportera felet till <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud-gemenskapen</a>.",
+ "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Uppdateringen misslyckades. Rapportera felet till <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud-gemenskapen</a>.",
"Continue to {productName}" : "Fortsätt till {productName}",
"_The update was successful. Redirecting you to {productName} in %n second._::_The update was successful. Redirecting you to {productName} in %n seconds._" : ["Uppdateringen lyckades. Omdirigerar dig till {productName} om %n sekund.","Uppdateringen lyckades. Omdirigerar dig till {productName} om %n sekunder."],
"Log in" : "Logga in",
"Logging in …" : "Loggar in ...",
"Server side authentication failed!" : "Servern misslyckades med autentisering!",
- "Please contact your administrator." : "Vänligen kontakta din administratör.",
+ "Please contact your administrator." : "Kontakta din administratör.",
"An internal error occurred." : "Ett internt fel uppstod.",
- "Please try again or contact your administrator." : "Vänligen försök igen eller kontakta din administratör.",
+ "Please try again or contact your administrator." : "Försök igen eller kontakta din administratör.",
"Username or email" : "Användarnamn eller e-post",
"Password" : "Lösenord",
"Toggle password visibility" : "Växla lösenordsynlighet",
@@ -136,7 +136,7 @@ OC.L10N.register(
"Reset password" : "Återställ lösenord",
"A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Ett meddelande om lösenordsåterställning har skickats till e-postadressen för det här kontot. Om du får det, kontrollera dina spam/skräp -mappar eller fråga din lokala administratör om hjälp.",
"If it is not there ask your local administrator." : "Om det inte finns, fråga din lokala administratör.",
- "Couldn't send reset email. Please contact your administrator." : "Kunde inte skicka återställningsmejl. Vänligen kontakta din administratör.",
+ "Couldn't send reset email. Please contact your administrator." : "Kunde inte skicka återställningsmejl. Kontakta din administratör.",
"Password cannot be changed. Please contact your administrator." : "Lösenordet kan inte ändras. Vänligen kontakta din administratör.",
"Back to login" : "Tillbaka till inloggning",
"New password" : "Nytt lösenord",
@@ -307,7 +307,7 @@ OC.L10N.register(
"See the documentation" : "Se dokumentationen",
"It looks like you are trying to reinstall your Nextcloud. However the file CAN_INSTALL is missing from your config directory. Please create the file CAN_INSTALL in your config folder to continue." : "Det ser ut som att du försöker installera om Nextcloud. Men filen CAN_INSTALL saknas i din konfigurationskatalog. Skapa filen CAN_INSTALL i din konfigurationsmapp för att fortsätta.",
"Could not remove CAN_INSTALL from the config folder. Please remove this file manually." : "Det gick inte att ta bort CAN_INSTALL från konfigurationsmappen. Ta bort den här filen manuellt.",
- "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denna applikationen kräver JavaScript för att fungera korrekt. Vänligen {linkstart}aktivera JavaScript{linkend} och uppdatera sidan.",
+ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denna applikationen kräver JavaScript för att fungera korrekt. {linkstart}aktivera JavaScript{linkend} och uppdatera sidan.",
"Get your own free account" : "Skaffa ett eget gratiskonto",
"Skip to main content" : "Skippa till huvudinnehållet",
"Skip to navigation of app" : "Skippa till navigering av app",
@@ -352,7 +352,7 @@ OC.L10N.register(
"The following apps will be updated:" : "Följande appar kommer att uppdateras:",
"These incompatible apps will be disabled:" : "Dessa inkompatibla appar kommer att inaktiveras",
"The theme %s has been disabled." : "Temat %s har blivit inaktiverat.",
- "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Vänligen säkerställ att en säkerhetskopia har gjorts av databasen, konfigurations- och datamappen innan du fortsätter.",
+ "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Säkerställ att en säkerhetskopia har gjorts av databasen, konfigurations- och datamappen innan du fortsätter.",
"Start update" : "Påbörja uppdateringen",
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "För att undvika timeout vid större installationer kan du istället köra följande kommando från din installationskatalog:",
"Detailed logs" : "Detaljerade loggar",
@@ -397,7 +397,7 @@ OC.L10N.register(
"Continue to Nextcloud" : "Fortsätt till Nextcloud",
"_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Uppdateringen lyckades. Omdirigerar dig till molnet om %n sekund.","Uppdateringen lyckades. Omdirigerar dig till molnet om %n sekunder."],
"A password reset message has been sent to the e-mail address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Ett meddelande om lösenordsåterställning har skickats till e-postadressen för det här kontot. Om du får det, kontrollera dina spam/skräp -mappar eller fråga din lokala administratör om hjälp.",
- "Password can not be changed. Please contact your administrator." : "Lösenordet kan inte ändras. Vänligen kontakta din administratör.",
+ "Password can not be changed. Please contact your administrator." : "Lösenordet kan inte ändras. Kontakta din administratör.",
"Could not fetch list of apps from the app store." : "Kunde inte hämta listan över appar från butiken.",
"Can't install this app because it is not compatible" : "Appen kan inte installeras eftersom den inte är kompatibel",
"Can't install this app" : "Appen kan inte installeras",
diff --git a/core/l10n/sv.json b/core/l10n/sv.json
index 07774f9a8f8..239dba686d9 100644
--- a/core/l10n/sv.json
+++ b/core/l10n/sv.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Please select a file." : "Vänligen välj en fil.",
+ "Please select a file." : "Välj en fil.",
"File is too big" : "Filen är för stor",
"The selected file is not an image." : "Den valda filen är ingen bild.",
"The selected file cannot be read." : "Den valda filen kan inte läsas.",
@@ -15,7 +15,7 @@
"No image or file provided" : "Ingen bild eller fil har tillhandahållits",
"Unknown filetype" : "Okänd filtyp",
"Invalid image" : "Ogiltig bild",
- "An error occurred. Please contact your admin." : "Ett fel har inträffat. Vänligen kontakta din administratör.",
+ "An error occurred. Please contact your admin." : "Ett fel har inträffat. Kontakta din administratör.",
"No temporary profile picture available, try again" : "Ingen temporär profilbild finns tillgänglig, försök igen",
"No crop data provided" : "Inga beskärningsdata har angivits",
"No valid crop data provided" : "Ingen giltig beskärningsdata tillhandahölls",
@@ -44,7 +44,7 @@
"Repair info:" : "Reparationsinfo:",
"Repair warning:" : "Reperationsvarning:",
"Repair error:" : "Reperationsfel:",
- "Please use the command line updater because automatic updating is disabled in the config.php." : "Vänligen uppdatera via kommandotolken då automatisk uppdatering är inaktiverat i config.php.",
+ "Please use the command line updater because automatic updating is disabled in the config.php." : "Uppdatera via kommandotolken då automatisk uppdatering är inaktiverat i config.php.",
"[%d / %d]: Checking table %s" : "[%d / %d]: Kontrollerar tabell %s",
"Turned on maintenance mode" : "Aktiverade underhållsläge",
"Turned off maintenance mode" : "Inaktivera underhållsläge",
@@ -109,17 +109,17 @@
"The update is in progress, leaving this page might interrupt the process in some environments." : "Uppdateringen pågår, om sidan lämnas kan uppdateringen misslyckas. ",
"Update to {version}" : "Uppdatera till {version}",
"An error occurred." : "Ett fel inträffade.",
- "Please reload the page." : "Vänligen uppdatera sidan.",
+ "Please reload the page." : "Uppdatera sidan.",
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Uppdateringen misslyckades. För mer information <a href=\"{url}\">se vår forumpost</a> angående problemet.",
- "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Uppdateringen misslyckades. Vänligen rapportera felet till <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud-gemenskapen</a>.",
+ "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Uppdateringen misslyckades. Rapportera felet till <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud-gemenskapen</a>.",
"Continue to {productName}" : "Fortsätt till {productName}",
"_The update was successful. Redirecting you to {productName} in %n second._::_The update was successful. Redirecting you to {productName} in %n seconds._" : ["Uppdateringen lyckades. Omdirigerar dig till {productName} om %n sekund.","Uppdateringen lyckades. Omdirigerar dig till {productName} om %n sekunder."],
"Log in" : "Logga in",
"Logging in …" : "Loggar in ...",
"Server side authentication failed!" : "Servern misslyckades med autentisering!",
- "Please contact your administrator." : "Vänligen kontakta din administratör.",
+ "Please contact your administrator." : "Kontakta din administratör.",
"An internal error occurred." : "Ett internt fel uppstod.",
- "Please try again or contact your administrator." : "Vänligen försök igen eller kontakta din administratör.",
+ "Please try again or contact your administrator." : "Försök igen eller kontakta din administratör.",
"Username or email" : "Användarnamn eller e-post",
"Password" : "Lösenord",
"Toggle password visibility" : "Växla lösenordsynlighet",
@@ -134,7 +134,7 @@
"Reset password" : "Återställ lösenord",
"A password reset message has been sent to the email address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Ett meddelande om lösenordsåterställning har skickats till e-postadressen för det här kontot. Om du får det, kontrollera dina spam/skräp -mappar eller fråga din lokala administratör om hjälp.",
"If it is not there ask your local administrator." : "Om det inte finns, fråga din lokala administratör.",
- "Couldn't send reset email. Please contact your administrator." : "Kunde inte skicka återställningsmejl. Vänligen kontakta din administratör.",
+ "Couldn't send reset email. Please contact your administrator." : "Kunde inte skicka återställningsmejl. Kontakta din administratör.",
"Password cannot be changed. Please contact your administrator." : "Lösenordet kan inte ändras. Vänligen kontakta din administratör.",
"Back to login" : "Tillbaka till inloggning",
"New password" : "Nytt lösenord",
@@ -305,7 +305,7 @@
"See the documentation" : "Se dokumentationen",
"It looks like you are trying to reinstall your Nextcloud. However the file CAN_INSTALL is missing from your config directory. Please create the file CAN_INSTALL in your config folder to continue." : "Det ser ut som att du försöker installera om Nextcloud. Men filen CAN_INSTALL saknas i din konfigurationskatalog. Skapa filen CAN_INSTALL i din konfigurationsmapp för att fortsätta.",
"Could not remove CAN_INSTALL from the config folder. Please remove this file manually." : "Det gick inte att ta bort CAN_INSTALL från konfigurationsmappen. Ta bort den här filen manuellt.",
- "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denna applikationen kräver JavaScript för att fungera korrekt. Vänligen {linkstart}aktivera JavaScript{linkend} och uppdatera sidan.",
+ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denna applikationen kräver JavaScript för att fungera korrekt. {linkstart}aktivera JavaScript{linkend} och uppdatera sidan.",
"Get your own free account" : "Skaffa ett eget gratiskonto",
"Skip to main content" : "Skippa till huvudinnehållet",
"Skip to navigation of app" : "Skippa till navigering av app",
@@ -350,7 +350,7 @@
"The following apps will be updated:" : "Följande appar kommer att uppdateras:",
"These incompatible apps will be disabled:" : "Dessa inkompatibla appar kommer att inaktiveras",
"The theme %s has been disabled." : "Temat %s har blivit inaktiverat.",
- "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Vänligen säkerställ att en säkerhetskopia har gjorts av databasen, konfigurations- och datamappen innan du fortsätter.",
+ "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Säkerställ att en säkerhetskopia har gjorts av databasen, konfigurations- och datamappen innan du fortsätter.",
"Start update" : "Påbörja uppdateringen",
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "För att undvika timeout vid större installationer kan du istället köra följande kommando från din installationskatalog:",
"Detailed logs" : "Detaljerade loggar",
@@ -395,7 +395,7 @@
"Continue to Nextcloud" : "Fortsätt till Nextcloud",
"_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Uppdateringen lyckades. Omdirigerar dig till molnet om %n sekund.","Uppdateringen lyckades. Omdirigerar dig till molnet om %n sekunder."],
"A password reset message has been sent to the e-mail address of this account. If you do not receive it, check your spam/junk folders or ask your local administrator for help." : "Ett meddelande om lösenordsåterställning har skickats till e-postadressen för det här kontot. Om du får det, kontrollera dina spam/skräp -mappar eller fråga din lokala administratör om hjälp.",
- "Password can not be changed. Please contact your administrator." : "Lösenordet kan inte ändras. Vänligen kontakta din administratör.",
+ "Password can not be changed. Please contact your administrator." : "Lösenordet kan inte ändras. Kontakta din administratör.",
"Could not fetch list of apps from the app store." : "Kunde inte hämta listan över appar från butiken.",
"Can't install this app because it is not compatible" : "Appen kan inte installeras eftersom den inte är kompatibel",
"Can't install this app" : "Appen kan inte installeras",
diff --git a/dist/updatenotification-updatenotification.js b/dist/updatenotification-updatenotification.js
index 752cd376a48..93649619c08 100644
--- a/dist/updatenotification-updatenotification.js
+++ b/dist/updatenotification-updatenotification.js
@@ -1,3 +1,3 @@
/*! For license information please see updatenotification-updatenotification.js.LICENSE.txt */
-!function(){"use strict";var e,a={27604:function(e,a,i){var o=i(20144),s=i(79753),r=i(26533),c=i.n(r),l=i(7811),p=i.n(l),d=i(34741),u=i(2649),h=i.n(u);d.VTooltip.options.defaultHtml=!1;var f={name:"UpdateNotification",components:{Multiselect:p(),PopoverMenu:c()},directives:{ClickOutside:h(),tooltip:d.VTooltip},data:function(){return{newVersionString:"",lastCheckedDate:"",isUpdateChecked:!1,webUpdaterEnabled:!0,isWebUpdaterRecommended:!0,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 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."):0===this.missingAppUpdates.length?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):t("updatenotification","Checking apps for compatible versions")},whatsNew:function(){if(0===this.whatsNewData.length)return null;var n=[];for(var e in this.whatsNewData)n[e]={icon:"icon-checkmark",longtext:this.whatsNewData[e]};return this.changelogURL&&n.push({href:this.changelogURL,text:t("updatenotification","View changelog"),icon:"icon-link",target:"_blank",action:""}),n},channelList:function(){var n=[];return n.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}),n.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}),n.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&&n.push({text:this.currentChannel,icon:"icon-rename",active:!0}),n},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(n){if(this.enableChangeWatcher){var t=[];_.each(n,(function(n){t.push(n.value)})),OCP.AppConfig.setValue("updatenotification","notify_groups",JSON.stringify(t))}},isNewVersionAvailable:function(){this.isNewVersionAvailable&&$.ajax({url:(0,s.generateOcsUrl)("apps/updatenotification/api/v1/applist/{newVersion}",{newVersion:this.newVersion}),type:"GET",beforeSend:function(n){n.setRequestHeader("Accept","application/json")},success:function(n){this.availableAppUpdates=n.ocs.data.available,this.missingAppUpdates=n.ocs.data.missing,this.isListFetched=!0,this.appStoreFailed=!1}.bind(this),error:function(n){this.availableAppUpdates=[],this.missingAppUpdates=[],this.appStoreDisabled=n.responseJSON.ocs.data.appstore_disabled,this.isListFetched=!0,this.appStoreFailed=!0}.bind(this)})}},beforeMount:function(){var n=JSON.parse($("#updatenotification").attr("data-json"));this.newVersion=n.newVersion,this.newVersionString=n.newVersionString,this.lastCheckedDate=n.lastChecked,this.isUpdateChecked=n.isUpdateChecked,this.webUpdaterEnabled=n.webUpdaterEnabled,this.isWebUpdaterRecommended=n.isWebUpdaterRecommended,this.updaterEnabled=n.updaterEnabled,this.downloadLink=n.downloadLink,this.isNewVersionAvailable=n.isNewVersionAvailable,this.updateServerURL=n.updateServerURL,this.currentChannel=n.currentChannel,this.channels=n.channels,this.notifyGroups=n.notifyGroups,this.isDefaultUpdateServerURL=n.isDefaultUpdateServerURL,this.versionIsEol=n.versionIsEol,this.hasValidSubscription=n.hasValidSubscription,n.changes&&n.changes.changelogURL&&(this.changelogURL=n.changes.changelogURL),n.changes&&n.changes.whatsNew&&(n.changes.whatsNew.admin&&(this.whatsNewData=this.whatsNewData.concat(n.changes.whatsNew.admin)),this.whatsNewData=this.whatsNewData.concat(n.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:(0,s.generateOcsUrl)("cloud/groups"),dataType:"json",success:function(n){var t=[];$.each(n.ocs.data.groups,(function(n,e){t.push({value:e,label:e})})),this.availableGroups=t,this.enableChangeWatcher=!0}.bind(this)})},methods:{clickUpdaterButton:function(){$.ajax({url:(0,s.generateUrl)("/apps/updatenotification/credentials")}).success((function(n){var t=document.createElement("form");t.setAttribute("method","post"),t.setAttribute("action",(0,s.getRootUrl)()+"/updater/");var e=document.createElement("input");e.setAttribute("type","hidden"),e.setAttribute("name","updater-secret-input"),e.setAttribute("value",n),t.appendChild(e),document.body.appendChild(t),t.submit()}))},changeReleaseChannelToEnterprise:function(){this.changeReleaseChannel("enterprise")},changeReleaseChannelToStable:function(){this.changeReleaseChannel("stable")},changeReleaseChannelToBeta:function(){this.changeReleaseChannel("beta")},changeReleaseChannel:function(n){this.currentChannel=n,$.ajax({url:(0,s.generateUrl)("/apps/updatenotification/channel"),type:"POST",data:{channel:this.currentChannel},success:function(n){OC.msg.finishedAction("#channel_save_msg",n)}}),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}}},A=i(93379),v=i.n(A),m=i(7795),g=i.n(m),C=i(90569),b=i.n(C),w=i(3565),U=i.n(w),k=i(19216),y=i.n(k),x=i(44589),N=i.n(x),S=i(69890),E={};E.styleTagTransform=N(),E.setAttributes=U(),E.insert=b().bind(null,"head"),E.domAPI=g(),E.insertStyleElement=y(),v()(S.Z,E),S.Z&&S.Z.locals&&S.Z.locals;var D=i(16722),M={};M.styleTagTransform=N(),M.setAttributes=U(),M.insert=b().bind(null,"head"),M.domAPI=g(),M.insertStyleElement=y(),v()(D.Z,M),D.Z&&D.Z.locals&&D.Z.locals;var L=(0,i(51900).Z)(f,(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{staticClass:"followupsection",attrs:{id:"updatenotification"}},[e("div",{staticClass:"update"},[n.isNewVersionAvailable?[n.versionIsEol?e("p",[e("span",{staticClass:"warning"},[e("span",{staticClass:"icon icon-error-white"}),n._v("\n\t\t\t\t\t"+n._s(n.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")])]):n._e(),n._v(" "),e("p",[e("span",{domProps:{innerHTML:n._s(n.newVersionAvailableString)}}),e("br"),n._v(" "),n.isListFetched?n._e():e("span",{staticClass:"icon icon-loading-small"}),n._v(" "),e("span",{domProps:{innerHTML:n._s(n.statusText)}})]),n._v(" "),n.missingAppUpdates.length?[e("h3",{on:{click:n.toggleHideMissingUpdates}},[n._v("\n\t\t\t\t\t"+n._s(n.t("updatenotification","Apps missing compatible version"))+"\n\t\t\t\t\t"),n.hideMissingUpdates?n._e():e("span",{staticClass:"icon icon-triangle-n"}),n._v(" "),n.hideMissingUpdates?e("span",{staticClass:"icon icon-triangle-s"}):n._e()]),n._v(" "),n.hideMissingUpdates?n._e():e("ul",{staticClass:"applist"},n._l(n.missingAppUpdates,(function(t,a){return e("li",{key:a},[e("a",{attrs:{href:"https://apps.nextcloud.com/apps/"+t.appId,title:n.t("settings","View in store")}},[n._v(n._s(t.appName)+" ↗")])])})),0)]:n._e(),n._v(" "),n.availableAppUpdates.length?[e("h3",{on:{click:n.toggleHideAvailableUpdates}},[n._v("\n\t\t\t\t\t"+n._s(n.t("updatenotification","Apps with compatible version"))+"\n\t\t\t\t\t"),n.hideAvailableUpdates?n._e():e("span",{staticClass:"icon icon-triangle-n"}),n._v(" "),n.hideAvailableUpdates?e("span",{staticClass:"icon icon-triangle-s"}):n._e()]),n._v(" "),n.hideAvailableUpdates?n._e():e("ul",{staticClass:"applist"},n._l(n.availableAppUpdates,(function(t,a){return e("li",{key:a},[e("a",{attrs:{href:"https://apps.nextcloud.com/apps/"+t.appId,title:n.t("settings","View in store")}},[n._v(n._s(t.appName)+" ↗")])])})),0)]:n._e(),n._v(" "),!n.isWebUpdaterRecommended&&n.updaterEnabled&&n.webUpdaterEnabled?[e("h3",{staticClass:"warning"},[n._v("\n\t\t\t\t\t"+n._s(n.t("updatenotification","Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!"))+"\n\t\t\t\t")])]:n._e(),n._v(" "),e("div",[n.updaterEnabled&&n.webUpdaterEnabled?e("a",{staticClass:"button primary",attrs:{href:"#"},on:{click:n.clickUpdaterButton}},[n._v(n._s(n.t("updatenotification","Open updater")))]):n._e(),n._v(" "),n.downloadLink?e("a",{staticClass:"button",class:{hidden:!n.updaterEnabled},attrs:{href:n.downloadLink}},[n._v(n._s(n.t("updatenotification","Download now")))]):n._e(),n._v(" "),n.updaterEnabled&&!n.webUpdaterEnabled?e("span",[n._v("\n\t\t\t\t\t"+n._s(n.t("updatenotification","Please use the command line updater to update."))+"\n\t\t\t\t")]):n._e(),n._v(" "),n.whatsNew?e("div",{staticClass:"whatsNew"},[e("div",{staticClass:"toggleWhatsNew"},[e("a",{directives:[{name:"click-outside",rawName:"v-click-outside",value:n.hideMenu,expression:"hideMenu"}],staticClass:"button",on:{click:n.toggleMenu}},[n._v(n._s(n.t("updatenotification","What's new?")))]),n._v(" "),e("div",{staticClass:"popovermenu",class:{"menu-center":!0,open:n.openedWhatsNew}},[e("PopoverMenu",{attrs:{menu:n.whatsNew}})],1)])]):n._e()])]:n.isUpdateChecked?[n._v("\n\t\t\t"+n._s(n.t("updatenotification","Your version is up to date."))+"\n\t\t\t"),e("span",{directives:[{name:"tooltip",rawName:"v-tooltip.auto",value:n.lastCheckedOnString,expression:"lastCheckedOnString",modifiers:{auto:!0}}],staticClass:"icon-info svg"})]:[n._v("\n\t\t\t"+n._s(n.t("updatenotification","The update check is not yet finished. Please refresh the page."))+"\n\t\t")],n._v(" "),n.isDefaultUpdateServerURL?n._e():[e("p",{staticClass:"topMargin"},[e("em",[n._v(n._s(n.t("updatenotification","A non-default update server is in use to be checked for updates:"))+" "),e("code",[n._v(n._s(n.updateServerURL))])])])]],2),n._v(" "),e("h3",{staticClass:"update-channel-selector"},[n._v("\n\t\t"+n._s(n.t("updatenotification","Update channel:"))+"\n\t\t"),e("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:n.closeUpdateChannelMenu,expression:"closeUpdateChannelMenu"}],staticClass:"update-menu"},[e("span",{staticClass:"icon-update-menu",on:{click:n.toggleUpdateChannelMenu}},[n._v("\n\t\t\t\t"+n._s(n.localizedChannelName)+"\n\t\t\t\t"),e("span",{staticClass:"icon-triangle-s"})]),n._v(" "),e("div",{staticClass:"popovermenu menu menu-center",class:{"show-menu":n.openedUpdateChannelMenu}},[e("PopoverMenu",{attrs:{menu:n.channelList}})],1)])]),n._v(" "),e("span",{staticClass:"msg",attrs:{id:"channel_save_msg"}}),e("br"),n._v(" "),e("p",[e("em",[n._v(n._s(n.t("updatenotification","You can always update to a newer version. But you can never downgrade to a more stable version.")))]),e("br"),n._v(" "),e("em",{domProps:{innerHTML:n._s(n.noteDelayedStableString)}})]),n._v(" "),e("p",{attrs:{id:"oca_updatenotification_groups"}},[n._v("\n\t\t"+n._s(n.t("updatenotification","Notify members of the following groups about available updates:"))+"\n\t\t"),e("Multiselect",{attrs:{options:n.availableGroups,multiple:!0,label:"label","track-by":"value","tag-width":75},model:{value:n.notifyGroups,callback:function(t){n.notifyGroups=t},expression:"notifyGroups"}}),e("br"),n._v(" "),"daily"===n.currentChannel||"git"===n.currentChannel?e("em",[n._v(n._s(n.t("updatenotification","Only notifications for app updates are available.")))]):n._e(),n._v(" "),"daily"===n.currentChannel?e("em",[n._v(n._s(n.t("updatenotification","The selected update channel makes dedicated notifications for the server obsolete.")))]):n._e(),n._v(" "),"git"===n.currentChannel?e("em",[n._v(n._s(n.t("updatenotification","The selected update channel does not support updates of the server.")))]):n._e()],1)])}),[],!1,null,"95adc75a",null).exports;o.default.mixin({methods:{t:function(n,t,e,a,i){return OC.L10N.translate(n,t,e,a,i)},n:function(n,t,e,a,i,o){return OC.L10N.translatePlural(n,t,e,a,i,o)}}}),new o.default({el:"#updatenotification",render:function(n){return n(L)}})},69890:function(n,t,e){var a=e(87537),i=e.n(a),o=e(23645),s=e.n(o)()(i());s.push([n.id,"#updatenotification[data-v-95adc75a]{margin-top:-25px;margin-bottom:200px}#updatenotification div.update[data-v-95adc75a],#updatenotification p[data-v-95adc75a]:not(.inlineblock){margin-bottom:25px}#updatenotification h2.inlineblock[data-v-95adc75a]{margin-top:25px}#updatenotification h3[data-v-95adc75a]{cursor:pointer}#updatenotification h3 .icon[data-v-95adc75a]{cursor:pointer}#updatenotification h3[data-v-95adc75a]:first-of-type{margin-top:0}#updatenotification h3.update-channel-selector[data-v-95adc75a]{display:inline-block;cursor:inherit}#updatenotification .icon[data-v-95adc75a]{display:inline-block;margin-bottom:-3px}#updatenotification .icon-triangle-s[data-v-95adc75a],#updatenotification .icon-triangle-n[data-v-95adc75a]{opacity:.5}#updatenotification .whatsNew[data-v-95adc75a]{display:inline-block}#updatenotification .toggleWhatsNew[data-v-95adc75a]{position:relative}#updatenotification .popovermenu[data-v-95adc75a]{margin-top:5px;width:300px}#updatenotification .popovermenu p[data-v-95adc75a]{margin-bottom:0;width:100%}#updatenotification .applist[data-v-95adc75a]{margin-bottom:25px}#updatenotification .update-menu[data-v-95adc75a]{position:relative;cursor:pointer;margin-left:3px;display:inline-block}#updatenotification .update-menu .icon-update-menu[data-v-95adc75a]{cursor:inherit}#updatenotification .update-menu .icon-update-menu .icon-triangle-s[data-v-95adc75a]{display:inline-block;vertical-align:middle;cursor:inherit;opacity:1}#updatenotification .update-menu .popovermenu[data-v-95adc75a]{display:none;top:28px}#updatenotification .update-menu .popovermenu.show-menu[data-v-95adc75a]{display:block}","",{version:3,sources:["webpack://./apps/updatenotification/src/components/UpdateNotification.vue"],names:[],mappings:"AAocA,qCACC,gBAAA,CACA,mBAAA,CACA,yGAEC,kBAAA,CAED,oDACC,eAAA,CAED,wCACC,cAAA,CACA,8CACC,cAAA,CAED,sDACC,YAAA,CAED,gEACC,oBAAA,CACA,cAAA,CAGF,2CACC,oBAAA,CACA,kBAAA,CAED,4GACC,UAAA,CAED,+CACC,oBAAA,CAED,qDACC,iBAAA,CAED,kDAKC,cAAA,CACA,WAAA,CALA,oDACC,eAAA,CACA,UAAA,CAKF,8CACC,kBAAA,CAGD,kDACC,iBAAA,CACA,cAAA,CACA,eAAA,CACA,oBAAA,CACA,oEACC,cAAA,CACA,qFACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,SAAA,CAGF,+DACC,YAAA,CACA,QAAA,CACA,yEACC,aAAA",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#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:""}]),t.Z=s},16722:function(n,t,e){var a=e(87537),i=e.n(a),o=e(23645),s=e.n(o)()(i());s.push([n.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}","",{version:3,sources:["webpack://./apps/updatenotification/src/components/UpdateNotification.vue"],names:[],mappings:"AA8gBA,iCAKC,cAAA,CACA,WAAA,CALA,mCACC,cAAA,CACA,UAAA,CAMF,oGAEC,qCAAA,CAED,+BACC,eAAA",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\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:""}]),t.Z=s}},i={};function o(n){var t=i[n];if(void 0!==t)return t.exports;var e=i[n]={id:n,loaded:!1,exports:{}};return a[n].call(e.exports,e,e.exports,o),e.loaded=!0,e.exports}o.m=a,o.amdD=function(){throw new Error("define cannot be used indirect")},o.amdO={},e=[],o.O=function(n,t,a,i){if(!t){var s=1/0;for(p=0;p<e.length;p++){t=e[p][0],a=e[p][1],i=e[p][2];for(var r=!0,c=0;c<t.length;c++)(!1&i||s>=i)&&Object.keys(o.O).every((function(n){return o.O[n](t[c])}))?t.splice(c--,1):(r=!1,i<s&&(s=i));if(r){e.splice(p--,1);var l=a();void 0!==l&&(n=l)}}return n}i=i||0;for(var p=e.length;p>0&&e[p-1][2]>i;p--)e[p]=e[p-1];e[p]=[t,a,i]},o.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return o.d(t,{a:t}),t},o.d=function(n,t){for(var e in t)o.o(t,e)&&!o.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:t[e]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),o.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},o.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},o.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n},o.j=7292,function(){o.b=document.baseURI||self.location.href;var n={7292:0};o.O.j=function(t){return 0===n[t]};var t=function(t,e){var a,i,s=e[0],r=e[1],c=e[2],l=0;if(s.some((function(t){return 0!==n[t]}))){for(a in r)o.o(r,a)&&(o.m[a]=r[a]);if(c)var p=c(o)}for(t&&t(e);l<s.length;l++)i=s[l],o.o(n,i)&&n[i]&&n[i][0](),n[i]=0;return o.O(p)},e=self.webpackChunknextcloud=self.webpackChunknextcloud||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))}();var s=o.O(void 0,[7874],(function(){return o(27604)}));s=o.O(s)}();
-//# sourceMappingURL=updatenotification-updatenotification.js.map?v=d59e9f9df7209c4fdb31 \ No newline at end of file
+!function(){"use strict";var e,a={36267:function(e,a,i){var o=i(20144),s=i(79753),r=i(26533),p=i.n(r),l=i(7811),c=i.n(l),d=i(34741),u=i(2649),h=i.n(u);d.VTooltip.options.defaultHtml=!1;var f={name:"UpdateNotification",components:{Multiselect:c(),PopoverMenu:p()},directives:{ClickOutside:h(),tooltip:d.VTooltip},data:function(){return{newVersionString:"",lastCheckedDate:"",isUpdateChecked:!1,webUpdaterEnabled:!0,isWebUpdaterRecommended:!0,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 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."):0===this.missingAppUpdates.length?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):t("updatenotification","Checking apps for compatible versions")},whatsNew:function(){if(0===this.whatsNewData.length)return null;var n=[];for(var e in this.whatsNewData)n[e]={icon:"icon-checkmark",longtext:this.whatsNewData[e]};return this.changelogURL&&n.push({href:this.changelogURL,text:t("updatenotification","View changelog"),icon:"icon-link",target:"_blank",action:""}),n},channelList:function(){var n=[];return n.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}),n.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}),n.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&&n.push({text:this.currentChannel,icon:"icon-rename",active:!0}),n},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(n){if(this.enableChangeWatcher){var t=[];_.each(n,(function(n){t.push(n.value)})),OCP.AppConfig.setValue("updatenotification","notify_groups",JSON.stringify(t))}},isNewVersionAvailable:function(){this.isNewVersionAvailable&&$.ajax({url:(0,s.generateOcsUrl)("apps/updatenotification/api/v1/applist/{newVersion}",{newVersion:this.newVersion}),type:"GET",beforeSend:function(n){n.setRequestHeader("Accept","application/json")},success:function(n){this.availableAppUpdates=n.ocs.data.available,this.missingAppUpdates=n.ocs.data.missing,this.isListFetched=!0,this.appStoreFailed=!1}.bind(this),error:function(n){this.availableAppUpdates=[],this.missingAppUpdates=[],this.appStoreDisabled=n.responseJSON.ocs.data.appstore_disabled,this.isListFetched=!0,this.appStoreFailed=!0}.bind(this)})}},beforeMount:function(){var n=JSON.parse($("#updatenotification").attr("data-json"));this.newVersion=n.newVersion,this.newVersionString=n.newVersionString,this.lastCheckedDate=n.lastChecked,this.isUpdateChecked=n.isUpdateChecked,this.webUpdaterEnabled=n.webUpdaterEnabled,this.isWebUpdaterRecommended=n.isWebUpdaterRecommended,this.updaterEnabled=n.updaterEnabled,this.downloadLink=n.downloadLink,this.isNewVersionAvailable=n.isNewVersionAvailable,this.updateServerURL=n.updateServerURL,this.currentChannel=n.currentChannel,this.channels=n.channels,this.notifyGroups=n.notifyGroups,this.isDefaultUpdateServerURL=n.isDefaultUpdateServerURL,this.versionIsEol=n.versionIsEol,this.hasValidSubscription=n.hasValidSubscription,n.changes&&n.changes.changelogURL&&(this.changelogURL=n.changes.changelogURL),n.changes&&n.changes.whatsNew&&(n.changes.whatsNew.admin&&(this.whatsNewData=this.whatsNewData.concat(n.changes.whatsNew.admin)),this.whatsNewData=this.whatsNewData.concat(n.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:(0,s.generateOcsUrl)("cloud/groups"),dataType:"json",success:function(n){var t=[];$.each(n.ocs.data.groups,(function(n,e){t.push({value:e,label:e})})),this.availableGroups=t,this.enableChangeWatcher=!0}.bind(this)})},methods:{clickUpdaterButton:function(){$.ajax({url:(0,s.generateUrl)("/apps/updatenotification/credentials")}).success((function(n){var t=document.createElement("form");t.setAttribute("method","post"),t.setAttribute("action",(0,s.getRootUrl)()+"/updater/");var e=document.createElement("input");e.setAttribute("type","hidden"),e.setAttribute("name","updater-secret-input"),e.setAttribute("value",n),t.appendChild(e),document.body.appendChild(t),t.submit()}))},changeReleaseChannelToEnterprise:function(){this.changeReleaseChannel("enterprise")},changeReleaseChannelToStable:function(){this.changeReleaseChannel("stable")},changeReleaseChannelToBeta:function(){this.changeReleaseChannel("beta")},changeReleaseChannel:function(n){this.currentChannel=n,$.ajax({url:(0,s.generateUrl)("/apps/updatenotification/channel"),type:"POST",data:{channel:this.currentChannel},success:function(n){OC.msg.finishedAction("#channel_save_msg",n)}}),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}}},v=i(93379),A=i.n(v),m=i(7795),g=i.n(m),C=i(90569),b=i.n(C),w=i(3565),U=i.n(w),k=i(19216),y=i.n(k),x=i(44589),N=i.n(x),S=i(41044),E={};E.styleTagTransform=N(),E.setAttributes=U(),E.insert=b().bind(null,"head"),E.domAPI=g(),E.insertStyleElement=y(),A()(S.Z,E),S.Z&&S.Z.locals&&S.Z.locals;var D=i(16722),M={};M.styleTagTransform=N(),M.setAttributes=U(),M.insert=b().bind(null,"head"),M.domAPI=g(),M.insertStyleElement=y(),A()(D.Z,M),D.Z&&D.Z.locals&&D.Z.locals;var L=(0,i(51900).Z)(f,(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{staticClass:"followupsection",attrs:{id:"updatenotification"}},[e("div",{staticClass:"update"},[n.isNewVersionAvailable?[n.versionIsEol?e("p",[e("span",{staticClass:"warning"},[e("span",{staticClass:"icon icon-error-white"}),n._v("\n\t\t\t\t\t"+n._s(n.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")])]):n._e(),n._v(" "),e("p",[e("span",{domProps:{innerHTML:n._s(n.newVersionAvailableString)}}),e("br"),n._v(" "),n.isListFetched?n._e():e("span",{staticClass:"icon icon-loading-small"}),n._v(" "),e("span",{domProps:{innerHTML:n._s(n.statusText)}})]),n._v(" "),n.missingAppUpdates.length?[e("h3",{on:{click:n.toggleHideMissingUpdates}},[n._v("\n\t\t\t\t\t"+n._s(n.t("updatenotification","Apps missing compatible version"))+"\n\t\t\t\t\t"),n.hideMissingUpdates?n._e():e("span",{staticClass:"icon icon-triangle-n"}),n._v(" "),n.hideMissingUpdates?e("span",{staticClass:"icon icon-triangle-s"}):n._e()]),n._v(" "),n.hideMissingUpdates?n._e():e("ul",{staticClass:"applist"},n._l(n.missingAppUpdates,(function(t,a){return e("li",{key:a},[e("a",{attrs:{href:"https://apps.nextcloud.com/apps/"+t.appId,title:n.t("settings","View in store")}},[n._v(n._s(t.appName)+" ↗")])])})),0)]:n._e(),n._v(" "),n.availableAppUpdates.length?[e("h3",{on:{click:n.toggleHideAvailableUpdates}},[n._v("\n\t\t\t\t\t"+n._s(n.t("updatenotification","Apps with compatible version"))+"\n\t\t\t\t\t"),n.hideAvailableUpdates?n._e():e("span",{staticClass:"icon icon-triangle-n"}),n._v(" "),n.hideAvailableUpdates?e("span",{staticClass:"icon icon-triangle-s"}):n._e()]),n._v(" "),n.hideAvailableUpdates?n._e():e("ul",{staticClass:"applist"},n._l(n.availableAppUpdates,(function(t,a){return e("li",{key:a},[e("a",{attrs:{href:"https://apps.nextcloud.com/apps/"+t.appId,title:n.t("settings","View in store")}},[n._v(n._s(t.appName)+" ↗")])])})),0)]:n._e(),n._v(" "),!n.isWebUpdaterRecommended&&n.updaterEnabled&&n.webUpdaterEnabled?[e("h3",{staticClass:"warning"},[n._v("\n\t\t\t\t\t"+n._s(n.t("updatenotification","Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!"))+"\n\t\t\t\t")])]:n._e(),n._v(" "),e("div",[n.updaterEnabled&&n.webUpdaterEnabled?e("a",{staticClass:"button primary",attrs:{href:"#"},on:{click:n.clickUpdaterButton}},[n._v(n._s(n.t("updatenotification","Open updater")))]):n._e(),n._v(" "),n.downloadLink?e("a",{staticClass:"button",class:{hidden:!n.updaterEnabled},attrs:{href:n.downloadLink}},[n._v(n._s(n.t("updatenotification","Download now")))]):n._e(),n._v(" "),n.updaterEnabled&&!n.webUpdaterEnabled?e("span",[n._v("\n\t\t\t\t\t"+n._s(n.t("updatenotification","Please use the command line updater to update."))+"\n\t\t\t\t")]):n._e(),n._v(" "),n.whatsNew?e("div",{staticClass:"whatsNew"},[e("div",{staticClass:"toggleWhatsNew"},[e("a",{directives:[{name:"click-outside",rawName:"v-click-outside",value:n.hideMenu,expression:"hideMenu"}],staticClass:"button",on:{click:n.toggleMenu}},[n._v(n._s(n.t("updatenotification","What's new?")))]),n._v(" "),e("div",{staticClass:"popovermenu",class:{"menu-center":!0,open:n.openedWhatsNew}},[e("PopoverMenu",{attrs:{menu:n.whatsNew}})],1)])]):n._e()])]:n.isUpdateChecked?[n._v("\n\t\t\t"+n._s(n.t("updatenotification","Your version is up to date."))+"\n\t\t\t"),e("span",{directives:[{name:"tooltip",rawName:"v-tooltip.auto",value:n.lastCheckedOnString,expression:"lastCheckedOnString",modifiers:{auto:!0}}],staticClass:"icon-info svg"})]:[n._v("\n\t\t\t"+n._s(n.t("updatenotification","The update check is not yet finished. Please refresh the page."))+"\n\t\t")],n._v(" "),n.isDefaultUpdateServerURL?n._e():[e("p",{staticClass:"topMargin"},[e("em",[n._v(n._s(n.t("updatenotification","A non-default update server is in use to be checked for updates:"))+" "),e("code",[n._v(n._s(n.updateServerURL))])])])]],2),n._v(" "),e("div",[n._v("\n\t\t"+n._s(n.t("updatenotification","You can change the update channel below which 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."))+"\n\t")]),n._v(" "),e("h3",{staticClass:"update-channel-selector"},[n._v("\n\t\t"+n._s(n.t("updatenotification","Update channel:"))+"\n\t\t"),e("div",{directives:[{name:"click-outside",rawName:"v-click-outside",value:n.closeUpdateChannelMenu,expression:"closeUpdateChannelMenu"}],staticClass:"update-menu"},[e("span",{staticClass:"icon-update-menu",on:{click:n.toggleUpdateChannelMenu}},[n._v("\n\t\t\t\t"+n._s(n.localizedChannelName)+"\n\t\t\t\t"),e("span",{staticClass:"icon-triangle-s"})]),n._v(" "),e("div",{staticClass:"popovermenu menu menu-center",class:{"show-menu":n.openedUpdateChannelMenu}},[e("PopoverMenu",{attrs:{menu:n.channelList}})],1)])]),n._v(" "),e("span",{staticClass:"msg",attrs:{id:"channel_save_msg"}}),e("br"),n._v(" "),e("p",[e("em",[n._v(n._s(n.t("updatenotification","You can always update to a newer version. But you can never downgrade to a more stable version.")))]),e("br"),n._v(" "),e("em",{domProps:{innerHTML:n._s(n.noteDelayedStableString)}})]),n._v(" "),e("p",{attrs:{id:"oca_updatenotification_groups"}},[n._v("\n\t\t"+n._s(n.t("updatenotification","Notify members of the following groups about available updates:"))+"\n\t\t"),e("Multiselect",{attrs:{options:n.availableGroups,multiple:!0,label:"label","track-by":"value","tag-width":75},model:{value:n.notifyGroups,callback:function(t){n.notifyGroups=t},expression:"notifyGroups"}}),e("br"),n._v(" "),"daily"===n.currentChannel||"git"===n.currentChannel?e("em",[n._v(n._s(n.t("updatenotification","Only notifications for app updates are available.")))]):n._e(),n._v(" "),"daily"===n.currentChannel?e("em",[n._v(n._s(n.t("updatenotification","The selected update channel makes dedicated notifications for the server obsolete.")))]):n._e(),n._v(" "),"git"===n.currentChannel?e("em",[n._v(n._s(n.t("updatenotification","The selected update channel does not support updates of the server.")))]):n._e()],1)])}),[],!1,null,"418946e4",null).exports;o.default.mixin({methods:{t:function(n,t,e,a,i){return OC.L10N.translate(n,t,e,a,i)},n:function(n,t,e,a,i,o){return OC.L10N.translatePlural(n,t,e,a,i,o)}}}),new o.default({el:"#updatenotification",render:function(n){return n(L)}})},41044:function(n,t,e){var a=e(87537),i=e.n(a),o=e(23645),s=e.n(o)()(i());s.push([n.id,"#updatenotification[data-v-418946e4]{margin-top:-25px;margin-bottom:200px}#updatenotification div.update[data-v-418946e4],#updatenotification p[data-v-418946e4]:not(.inlineblock){margin-bottom:25px}#updatenotification h2.inlineblock[data-v-418946e4]{margin-top:25px}#updatenotification h3[data-v-418946e4]{cursor:pointer}#updatenotification h3 .icon[data-v-418946e4]{cursor:pointer}#updatenotification h3[data-v-418946e4]:first-of-type{margin-top:0}#updatenotification h3.update-channel-selector[data-v-418946e4]{display:inline-block;cursor:inherit}#updatenotification .icon[data-v-418946e4]{display:inline-block;margin-bottom:-3px}#updatenotification .icon-triangle-s[data-v-418946e4],#updatenotification .icon-triangle-n[data-v-418946e4]{opacity:.5}#updatenotification .whatsNew[data-v-418946e4]{display:inline-block}#updatenotification .toggleWhatsNew[data-v-418946e4]{position:relative}#updatenotification .popovermenu[data-v-418946e4]{margin-top:5px;width:300px}#updatenotification .popovermenu p[data-v-418946e4]{margin-bottom:0;width:100%}#updatenotification .applist[data-v-418946e4]{margin-bottom:25px}#updatenotification .update-menu[data-v-418946e4]{position:relative;cursor:pointer;margin-left:3px;display:inline-block}#updatenotification .update-menu .icon-update-menu[data-v-418946e4]{cursor:inherit}#updatenotification .update-menu .icon-update-menu .icon-triangle-s[data-v-418946e4]{display:inline-block;vertical-align:middle;cursor:inherit;opacity:1}#updatenotification .update-menu .popovermenu[data-v-418946e4]{display:none;top:28px}#updatenotification .update-menu .popovermenu.show-menu[data-v-418946e4]{display:block}","",{version:3,sources:["webpack://./apps/updatenotification/src/components/UpdateNotification.vue"],names:[],mappings:"AAwcA,qCACC,gBAAA,CACA,mBAAA,CACA,yGAEC,kBAAA,CAED,oDACC,eAAA,CAED,wCACC,cAAA,CACA,8CACC,cAAA,CAED,sDACC,YAAA,CAED,gEACC,oBAAA,CACA,cAAA,CAGF,2CACC,oBAAA,CACA,kBAAA,CAED,4GACC,UAAA,CAED,+CACC,oBAAA,CAED,qDACC,iBAAA,CAED,kDAKC,cAAA,CACA,WAAA,CALA,oDACC,eAAA,CACA,UAAA,CAKF,8CACC,kBAAA,CAGD,kDACC,iBAAA,CACA,cAAA,CACA,eAAA,CACA,oBAAA,CACA,oEACC,cAAA,CACA,qFACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,SAAA,CAGF,+DACC,YAAA,CACA,QAAA,CACA,yEACC,aAAA",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#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:""}]),t.Z=s},16722:function(n,t,e){var a=e(87537),i=e.n(a),o=e(23645),s=e.n(o)()(i());s.push([n.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}","",{version:3,sources:["webpack://./apps/updatenotification/src/components/UpdateNotification.vue"],names:[],mappings:"AAkhBA,iCAKC,cAAA,CACA,WAAA,CALA,mCACC,cAAA,CACA,UAAA,CAMF,oGAEC,qCAAA,CAED,+BACC,eAAA",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\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:""}]),t.Z=s}},i={};function o(n){var t=i[n];if(void 0!==t)return t.exports;var e=i[n]={id:n,loaded:!1,exports:{}};return a[n].call(e.exports,e,e.exports,o),e.loaded=!0,e.exports}o.m=a,o.amdD=function(){throw new Error("define cannot be used indirect")},o.amdO={},e=[],o.O=function(n,t,a,i){if(!t){var s=1/0;for(c=0;c<e.length;c++){t=e[c][0],a=e[c][1],i=e[c][2];for(var r=!0,p=0;p<t.length;p++)(!1&i||s>=i)&&Object.keys(o.O).every((function(n){return o.O[n](t[p])}))?t.splice(p--,1):(r=!1,i<s&&(s=i));if(r){e.splice(c--,1);var l=a();void 0!==l&&(n=l)}}return n}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[t,a,i]},o.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return o.d(t,{a:t}),t},o.d=function(n,t){for(var e in t)o.o(t,e)&&!o.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:t[e]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),o.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},o.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},o.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n},o.j=7292,function(){o.b=document.baseURI||self.location.href;var n={7292:0};o.O.j=function(t){return 0===n[t]};var t=function(t,e){var a,i,s=e[0],r=e[1],p=e[2],l=0;if(s.some((function(t){return 0!==n[t]}))){for(a in r)o.o(r,a)&&(o.m[a]=r[a]);if(p)var c=p(o)}for(t&&t(e);l<s.length;l++)i=s[l],o.o(n,i)&&n[i]&&n[i][0](),n[i]=0;return o.O(c)},e=self.webpackChunknextcloud=self.webpackChunknextcloud||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))}();var s=o.O(void 0,[7874],(function(){return o(36267)}));s=o.O(s)}();
+//# sourceMappingURL=updatenotification-updatenotification.js.map?v=d45c580623911e9ec4d6 \ No newline at end of file
diff --git a/dist/updatenotification-updatenotification.js.map b/dist/updatenotification-updatenotification.js.map
index 90a84241fe2..bc497b41fac 100644
--- a/dist/updatenotification-updatenotification.js.map
+++ b/dist/updatenotification-updatenotification.js.map
@@ -1 +1 @@
-{"version":3,"file":"updatenotification-updatenotification.js?v=d59e9f9df7209c4fdb31","mappings":";6BAAIA,0HC8HJ,EAAAC,SAAA,uBAEA,IChI+L,EDgI/L,CACA,0BACA,YACA,gBACA,iBAEA,YACA,iBACA,oBAEA,KAVA,WAWA,OACA,oBACA,mBACA,mBACA,qBACA,2BACA,kBACA,gBACA,gBACA,yBACA,wBACA,mBACA,gBACA,gBACA,kBACA,YACA,gBACA,mBACA,4BACA,uBAEA,uBACA,qBACA,kBACA,oBACA,iBACA,sBACA,wBACA,kBACA,6BAIA,UACA,oBAEA,UACA,0BADA,WAEA,iGACA,0CAIA,wBAPA,WAQA,uSACA,mHAGA,oBAZA,WAaA,8DACA,wCAIA,WAlBA,WAmBA,0BAIA,sBACA,+GAGA,oBACA,wNAGA,kCACA,yHACA,4OAbA,iEAgBA,SApCA,WAqCA,gCACA,YAEA,SACA,+BACA,2DAWA,OATA,mBACA,QACA,uBACA,8CACA,iBACA,gBACA,YAGA,GAGA,YAxDA,WAyDA,SAmCA,OAjCA,QACA,0CACA,yXACA,iBACA,0CACA,oCACA,+CAGA,QACA,sCACA,oJACA,sBACA,sCACA,2CAGA,QACA,oCACA,yHACA,mCACA,oCACA,yCAGA,0BACA,QACA,yBACA,mBACA,YAIA,GAGA,oBA/FA,WAgGA,wGAGA,qBAnGA,WAoGA,4BACA,iBACA,4CACA,aACA,wCACA,WACA,sCACA,QACA,8BAKA,OACA,aADA,SACA,GACA,6BAIA,SACA,sBACA,mBAGA,iFAEA,sBAbA,WAcA,4BAIA,QACA,6GACA,WACA,WAHA,SAGA,GACA,iDAEA,oBACA,8CACA,0CACA,sBACA,wBACA,WACA,kBACA,4BACA,0BACA,gEACA,sBACA,wBACA,eAIA,YAxMA,WA0MA,6DAEA,6BACA,yCACA,mCACA,uCACA,2CACA,uDACA,qCACA,iCACA,mDACA,uCACA,qCACA,yBACA,iCACA,yDACA,iCACA,iDACA,oCACA,0CAEA,gCACA,2BACA,sEAEA,yEAGA,QAtOA,WAuOA,sBACA,0EACA,2CACA,qBACA,YAEA,QACA,yCACA,gBACA,oBACA,SACA,wCACA,6BAGA,uBACA,6BACA,cAIA,SAIA,mB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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/updatenotification/src/components/UpdateNotification.vue?5191","webpack://nextcloud/./apps/updatenotification/src/components/UpdateNotification.vue?fbe8","webpack://nextcloud/./apps/updatenotification/src/components/UpdateNotification.vue?1fb0","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue?vue&type=template&id=95adc75a&scoped=true&","webpack:///nextcloud/apps/updatenotification/src/init.js","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue?vue&type=style&index=0&id=95adc75a&lang=scss&scoped=true&","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue?vue&type=style&index=1&lang=scss&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<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 compatible version') }}\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 compatible version') }}\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<template v-if=\"!isWebUpdaterRecommended && updaterEnabled && webUpdaterEnabled\">\n\t\t\t\t\t<h3 class=\"warning\">\n\t\t\t\t\t\t{{ t('updatenotification', 'Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!') }}\n\t\t\t\t\t</h3>\n\t\t\t\t</template>\n\n\t\t\t\t<div>\n\t\t\t\t\t<a v-if=\"updaterEnabled && webUpdaterEnabled\"\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<span v-if=\"updaterEnabled && !webUpdaterEnabled\">\n\t\t\t\t\t\t{{ t('updatenotification', 'Please use the command line updater to update.') }}\n\t\t\t\t\t</span>\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\" />\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 notifications 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\twebUpdaterEnabled: true,\n\t\t\tisWebUpdaterRecommended: true,\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}')\n\t\t\t\t.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 versions')\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 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\t\t\t}\n\n\t\t\treturn this.missingAppUpdates.length === 0\n\t\t\t\t? t('updatenotification', '<strong>All</strong> apps have a compatible version for this Nextcloud version available.', this)\n\t\t\t\t: 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)\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/{newVersion}', { newVersion: 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.webUpdaterEnabled = data.webUpdaterEnabled\n\t\tthis.isWebUpdaterRecommended = data.isWebUpdaterRecommended\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/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 * Creates a new authentication token and loads the updater URL\n\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&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=0&id=95adc75a&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=0&id=95adc75a&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=1&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=1&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UpdateNotification.vue?vue&type=template&id=95adc75a&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=95adc75a&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 \"95adc75a\",\n null\n \n)\n\nexport default component.exports","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 compatible version'))+\"\\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 compatible version'))+\"\\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(\" \"),(!_vm.isWebUpdaterRecommended && _vm.updaterEnabled && _vm.webUpdaterEnabled)?[_c('h3',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('div',[(_vm.updaterEnabled && _vm.webUpdaterEnabled)?_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.updaterEnabled && !_vm.webUpdaterEnabled)?_c('span',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Please use the command line updater to update.'))+\"\\n\\t\\t\\t\\t\")]):_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 notifications 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 * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#updatenotification[data-v-95adc75a]{margin-top:-25px;margin-bottom:200px}#updatenotification div.update[data-v-95adc75a],#updatenotification p[data-v-95adc75a]:not(.inlineblock){margin-bottom:25px}#updatenotification h2.inlineblock[data-v-95adc75a]{margin-top:25px}#updatenotification h3[data-v-95adc75a]{cursor:pointer}#updatenotification h3 .icon[data-v-95adc75a]{cursor:pointer}#updatenotification h3[data-v-95adc75a]:first-of-type{margin-top:0}#updatenotification h3.update-channel-selector[data-v-95adc75a]{display:inline-block;cursor:inherit}#updatenotification .icon[data-v-95adc75a]{display:inline-block;margin-bottom:-3px}#updatenotification .icon-triangle-s[data-v-95adc75a],#updatenotification .icon-triangle-n[data-v-95adc75a]{opacity:.5}#updatenotification .whatsNew[data-v-95adc75a]{display:inline-block}#updatenotification .toggleWhatsNew[data-v-95adc75a]{position:relative}#updatenotification .popovermenu[data-v-95adc75a]{margin-top:5px;width:300px}#updatenotification .popovermenu p[data-v-95adc75a]{margin-bottom:0;width:100%}#updatenotification .applist[data-v-95adc75a]{margin-bottom:25px}#updatenotification .update-menu[data-v-95adc75a]{position:relative;cursor:pointer;margin-left:3px;display:inline-block}#updatenotification .update-menu .icon-update-menu[data-v-95adc75a]{cursor:inherit}#updatenotification .update-menu .icon-update-menu .icon-triangle-s[data-v-95adc75a]{display:inline-block;vertical-align:middle;cursor:inherit;opacity:1}#updatenotification .update-menu .popovermenu[data-v-95adc75a]{display:none;top:28px}#updatenotification .update-menu .popovermenu.show-menu[data-v-95adc75a]{display:block}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/updatenotification/src/components/UpdateNotification.vue\"],\"names\":[],\"mappings\":\"AAocA,qCACC,gBAAA,CACA,mBAAA,CACA,yGAEC,kBAAA,CAED,oDACC,eAAA,CAED,wCACC,cAAA,CACA,8CACC,cAAA,CAED,sDACC,YAAA,CAED,gEACC,oBAAA,CACA,cAAA,CAGF,2CACC,oBAAA,CACA,kBAAA,CAED,4GACC,UAAA,CAED,+CACC,oBAAA,CAED,qDACC,iBAAA,CAED,kDAKC,cAAA,CACA,WAAA,CALA,oDACC,eAAA,CACA,UAAA,CAKF,8CACC,kBAAA,CAGD,kDACC,iBAAA,CACA,cAAA,CACA,eAAA,CACA,oBAAA,CACA,oEACC,cAAA,CACA,qFACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,SAAA,CAGF,+DACC,YAAA,CACA,QAAA,CACA,yEACC,aAAA\",\"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#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/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#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}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/updatenotification/src/components/UpdateNotification.vue\"],\"names\":[],\"mappings\":\"AA8gBA,iCAKC,cAAA,CACA,WAAA,CALA,mCACC,cAAA,CACA,UAAA,CAMF,oGAEC,qCAAA,CAED,+BACC,eAAA\",\"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\\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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7292;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7292: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(27604); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","VTooltip","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","_s","t","_e","domProps","newVersionAvailableString","isListFetched","statusText","missingAppUpdates","on","toggleHideMissingUpdates","hideMissingUpdates","_l","app","index","key","appId","appName","availableAppUpdates","toggleHideAvailableUpdates","hideAvailableUpdates","isWebUpdaterRecommended","updaterEnabled","webUpdaterEnabled","clickUpdaterButton","class","hidden","downloadLink","directives","name","rawName","value","expression","toggleMenu","open","openedWhatsNew","whatsNew","isUpdateChecked","modifiers","isDefaultUpdateServerURL","updateServerURL","toggleUpdateChannelMenu","localizedChannelName","openedUpdateChannelMenu","channelList","noteDelayedStableString","availableGroups","model","callback","$$v","notifyGroups","currentChannel","Vue","methods","text","vars","count","OC","L10N","translate","n","textSingular","textPlural","translatePlural","el","render","h","Root","___CSS_LOADER_EXPORT___","push","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"updatenotification-updatenotification.js?v=d45c580623911e9ec4d6","mappings":";6BAAIA,0HCkIJ,EAAAC,SAAA,uBAEA,ICpI+L,EDoI/L,CACA,0BACA,YACA,gBACA,iBAEA,YACA,iBACA,oBAEA,KAVA,WAWA,OACA,oBACA,mBACA,mBACA,qBACA,2BACA,kBACA,gBACA,gBACA,yBACA,wBACA,mBACA,gBACA,gBACA,kBACA,YACA,gBACA,mBACA,4BACA,uBAEA,uBACA,qBACA,kBACA,oBACA,iBACA,sBACA,wBACA,kBACA,6BAIA,UACA,oBAEA,UACA,0BADA,WAEA,iGACA,0CAIA,wBAPA,WAQA,uSACA,mHAGA,oBAZA,WAaA,8DACA,wCAIA,WAlBA,WAmBA,0BAIA,sBACA,+GAGA,oBACA,wNAGA,kCACA,yHACA,4OAbA,iEAgBA,SApCA,WAqCA,gCACA,YAEA,SACA,+BACA,2DAWA,OATA,mBACA,QACA,uBACA,8CACA,iBACA,gBACA,YAGA,GAGA,YAxDA,WAyDA,SAmCA,OAjCA,QACA,0CACA,yXACA,iBACA,0CACA,oCACA,+CAGA,QACA,sCACA,oJACA,sBACA,sCACA,2CAGA,QACA,oCACA,yHACA,mCACA,oCACA,yCAGA,0BACA,QACA,yBACA,mBACA,YAIA,GAGA,oBA/FA,WAgGA,wGAGA,qBAnGA,WAoGA,4BACA,iBACA,4CACA,aACA,wCACA,WACA,sCACA,QACA,8BAKA,OACA,aADA,SACA,GACA,6BAIA,SACA,sBACA,mBAGA,iFAEA,sBAbA,WAcA,4BAIA,QACA,6GACA,WACA,WAHA,SAGA,GACA,iDAEA,oBACA,8CACA,0CACA,sBACA,wBACA,WACA,kBACA,4BACA,0BACA,gEACA,sBACA,wBACA,eAIA,YAxMA,WA0MA,6DAEA,6BACA,yCACA,mCACA,uCACA,2CACA,uDACA,qCACA,iCACA,mDACA,uCACA,qCACA,yBACA,iCACA,yDACA,iCACA,iDACA,oCACA,0CAEA,gCACA,2BACA,sEAEA,yEAGA,QAtOA,WAuOA,sBACA,0EACA,2CACA,qBACA,YAEA,QACA,yCACA,gBACA,oBACA,SACA,wCACA,6BAGA,uBACA,6BACA,cAIA,SAIA,mBAJA,WAKA,QACA,gEACA,qBAEA,qCACA,gCACA,wDAEA,sCACA,gCACA,8CACA,0BAEA,iBAEA,6BACA,eAGA,iCAxBA,WAyBA,yCAEA,6BA3BA,WA4BA,qCAEA,2BA9BA,WA+BA,mCAEA,qBAjCA,SAiCA,GACA,sBAEA,QACA,0DACA,YACA,MACA,6BAEA,QANA,SAMA,GACA,gDAIA,iCAEA,wBAjDA,WAkDA,4DAEA,yBApDA,WAqDA,kDAEA,2BAvDA,WAwDA,sDAEA,WA1DA,WA2DA,0CAEA,uBA7DA,WA8DA,iCAEA,SAhEA,WAiEA,2JEtbIC,EAAU,GAEdA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,YAAiB,WALlD,eCVI,EAAU,GAEd,EAAQC,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,YAAiB,WALlD,ICDA,GAXgB,cACd,GCVW,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,kBAAkBC,MAAM,CAAC,GAAK,uBAAuB,CAACH,EAAG,MAAM,CAACE,YAAY,UAAU,CAAEN,EAAyB,sBAAE,CAAEA,EAAgB,aAAEI,EAAG,IAAI,CAACA,EAAG,OAAO,CAACE,YAAY,WAAW,CAACF,EAAG,OAAO,CAACE,YAAY,0BAA0BN,EAAIQ,GAAG,eAAeR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,kIAAkI,kBAAkBV,EAAIW,KAAKX,EAAIQ,GAAG,KAAKJ,EAAG,IAAI,CAACA,EAAG,OAAO,CAACQ,SAAS,CAAC,UAAYZ,EAAIS,GAAGT,EAAIa,8BAA8BT,EAAG,MAAMJ,EAAIQ,GAAG,KAAOR,EAAIc,cAAkEd,EAAIW,KAAvDP,EAAG,OAAO,CAACE,YAAY,4BAAqCN,EAAIQ,GAAG,KAAKJ,EAAG,OAAO,CAACQ,SAAS,CAAC,UAAYZ,EAAIS,GAAGT,EAAIe,iBAAiBf,EAAIQ,GAAG,KAAMR,EAAIgB,kBAAwB,OAAE,CAACZ,EAAG,KAAK,CAACa,GAAG,CAAC,MAAQjB,EAAIkB,2BAA2B,CAAClB,EAAIQ,GAAG,eAAeR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,oCAAoC,gBAAkBV,EAAImB,mBAAoEnB,EAAIW,KAApDP,EAAG,OAAO,CAACE,YAAY,yBAAkCN,EAAIQ,GAAG,KAAMR,EAAsB,mBAAEI,EAAG,OAAO,CAACE,YAAY,yBAAyBN,EAAIW,OAAOX,EAAIQ,GAAG,KAAOR,EAAImB,mBAAgSnB,EAAIW,KAAhRP,EAAG,KAAK,CAACE,YAAY,WAAWN,EAAIoB,GAAIpB,EAAqB,mBAAE,SAASqB,EAAIC,GAAO,OAAOlB,EAAG,KAAK,CAACmB,IAAID,GAAO,CAAClB,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,mCAAqCc,EAAIG,MAAM,MAAQxB,EAAIU,EAAE,WAAY,mBAAmB,CAACV,EAAIQ,GAAGR,EAAIS,GAAGY,EAAII,SAAS,aAAY,IAAazB,EAAIW,KAAKX,EAAIQ,GAAG,KAAMR,EAAI0B,oBAA0B,OAAE,CAACtB,EAAG,KAAK,CAACa,GAAG,CAAC,MAAQjB,EAAI2B,6BAA6B,CAAC3B,EAAIQ,GAAG,eAAeR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,iCAAiC,gBAAkBV,EAAI4B,qBAAsE5B,EAAIW,KAApDP,EAAG,OAAO,CAACE,YAAY,yBAAkCN,EAAIQ,GAAG,KAAMR,EAAwB,qBAAEI,EAAG,OAAO,CAACE,YAAY,yBAAyBN,EAAIW,OAAOX,EAAIQ,GAAG,KAAOR,EAAI4B,qBAAoS5B,EAAIW,KAAlRP,EAAG,KAAK,CAACE,YAAY,WAAWN,EAAIoB,GAAIpB,EAAuB,qBAAE,SAASqB,EAAIC,GAAO,OAAOlB,EAAG,KAAK,CAACmB,IAAID,GAAO,CAAClB,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,mCAAqCc,EAAIG,MAAM,MAAQxB,EAAIU,EAAE,WAAY,mBAAmB,CAACV,EAAIQ,GAAGR,EAAIS,GAAGY,EAAII,SAAS,aAAY,IAAazB,EAAIW,KAAKX,EAAIQ,GAAG,MAAOR,EAAI6B,yBAA2B7B,EAAI8B,gBAAkB9B,EAAI+B,kBAAmB,CAAC3B,EAAG,KAAK,CAACE,YAAY,WAAW,CAACN,EAAIQ,GAAG,eAAeR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,+HAA+H,iBAAiBV,EAAIW,KAAKX,EAAIQ,GAAG,KAAKJ,EAAG,MAAM,CAAEJ,EAAI8B,gBAAkB9B,EAAI+B,kBAAmB3B,EAAG,IAAI,CAACE,YAAY,iBAAiBC,MAAM,CAAC,KAAO,KAAKU,GAAG,CAAC,MAAQjB,EAAIgC,qBAAqB,CAAChC,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,oBAAoBV,EAAIW,KAAKX,EAAIQ,GAAG,KAAMR,EAAgB,aAAEI,EAAG,IAAI,CAACE,YAAY,SAAS2B,MAAM,CAAEC,QAASlC,EAAI8B,gBAAiBvB,MAAM,CAAC,KAAOP,EAAImC,eAAe,CAACnC,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,oBAAoBV,EAAIW,KAAKX,EAAIQ,GAAG,KAAMR,EAAI8B,iBAAmB9B,EAAI+B,kBAAmB3B,EAAG,OAAO,CAACJ,EAAIQ,GAAG,eAAeR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,mDAAmD,gBAAgBV,EAAIW,KAAKX,EAAIQ,GAAG,KAAMR,EAAY,SAAEI,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,IAAI,CAACgC,WAAW,CAAC,CAACC,KAAK,gBAAgBC,QAAQ,kBAAkBC,MAAOvC,EAAY,SAAEwC,WAAW,aAAalC,YAAY,SAASW,GAAG,CAAC,MAAQjB,EAAIyC,aAAa,CAACzC,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,mBAAoBV,EAAIQ,GAAG,KAAKJ,EAAG,MAAM,CAACE,YAAY,cAAc2B,MAAM,CAAE,eAAe,EAAMS,KAAM1C,EAAI2C,iBAAkB,CAACvC,EAAG,cAAc,CAACG,MAAM,CAAC,KAAOP,EAAI4C,aAAa,OAAO5C,EAAIW,QAAUX,EAAI6C,gBAAqJ,CAAC7C,EAAIQ,GAAG,WAAWR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,gCAAgC,YAAYN,EAAG,OAAO,CAACgC,WAAW,CAAC,CAACC,KAAK,UAAUC,QAAQ,iBAAiBC,MAAOvC,EAAuB,oBAAEwC,WAAW,sBAAsBM,UAAU,CAAC,MAAO,KAAQxC,YAAY,mBAA7Y,CAACN,EAAIQ,GAAG,WAAWR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,mEAAmE,WAAuSV,EAAIQ,GAAG,KAAOR,EAAI+C,yBAAgP/C,EAAIW,KAA1N,CAACP,EAAG,IAAI,CAACE,YAAY,aAAa,CAACF,EAAG,KAAK,CAACJ,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,qEAAqE,KAAKN,EAAG,OAAO,CAACJ,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIgD,0BAAmC,GAAGhD,EAAIQ,GAAG,KAAKJ,EAAG,MAAM,CAACJ,EAAIQ,GAAG,SAASR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,wMAAwM,UAAUV,EAAIQ,GAAG,KAAKJ,EAAG,KAAK,CAACE,YAAY,2BAA2B,CAACN,EAAIQ,GAAG,SAASR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,oBAAoB,UAAUN,EAAG,MAAM,CAACgC,WAAW,CAAC,CAACC,KAAK,gBAAgBC,QAAQ,kBAAkBC,MAAOvC,EAA0B,uBAAEwC,WAAW,2BAA2BlC,YAAY,eAAe,CAACF,EAAG,OAAO,CAACE,YAAY,mBAAmBW,GAAG,CAAC,MAAQjB,EAAIiD,0BAA0B,CAACjD,EAAIQ,GAAG,aAAaR,EAAIS,GAAGT,EAAIkD,sBAAsB,cAAc9C,EAAG,OAAO,CAACE,YAAY,sBAAsBN,EAAIQ,GAAG,KAAKJ,EAAG,MAAM,CAACE,YAAY,+BAA+B2B,MAAM,CAAE,YAAajC,EAAImD,0BAA0B,CAAC/C,EAAG,cAAc,CAACG,MAAM,CAAC,KAAOP,EAAIoD,gBAAgB,OAAOpD,EAAIQ,GAAG,KAAKJ,EAAG,OAAO,CAACE,YAAY,MAAMC,MAAM,CAAC,GAAK,sBAAsBH,EAAG,MAAMJ,EAAIQ,GAAG,KAAKJ,EAAG,IAAI,CAACA,EAAG,KAAK,CAACJ,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,uGAAuGN,EAAG,MAAMJ,EAAIQ,GAAG,KAAKJ,EAAG,KAAK,CAACQ,SAAS,CAAC,UAAYZ,EAAIS,GAAGT,EAAIqD,8BAA8BrD,EAAIQ,GAAG,KAAKJ,EAAG,IAAI,CAACG,MAAM,CAAC,GAAK,kCAAkC,CAACP,EAAIQ,GAAG,SAASR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,oEAAoE,UAAUN,EAAG,cAAc,CAACG,MAAM,CAAC,QAAUP,EAAIsD,gBAAgB,UAAW,EAAK,MAAQ,QAAQ,WAAW,QAAQ,YAAY,IAAIC,MAAM,CAAChB,MAAOvC,EAAgB,aAAEwD,SAAS,SAAUC,GAAMzD,EAAI0D,aAAaD,GAAKjB,WAAW,kBAAkBpC,EAAG,MAAMJ,EAAIQ,GAAG,KAA6B,UAAvBR,EAAI2D,gBAAqD,QAAvB3D,EAAI2D,eAA0BvD,EAAG,KAAK,CAACJ,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,yDAAyDV,EAAIW,KAAKX,EAAIQ,GAAG,KAA6B,UAAvBR,EAAI2D,eAA4BvD,EAAG,KAAK,CAACJ,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,0FAA0FV,EAAIW,KAAKX,EAAIQ,GAAG,KAA6B,QAAvBR,EAAI2D,eAA0BvD,EAAG,KAAK,CAACJ,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIU,EAAE,qBAAsB,2EAA2EV,EAAIW,MAAM,OACxlN,IDYpB,EACA,KACA,WACA,MAI8B,QEMhCiD,EAAAA,QAAAA,MAAU,CACTC,QAAS,CACRnD,EADQ,SACNW,EAAKyC,EAAMC,EAAMC,EAAOtE,GACzB,OAAOuE,GAAGC,KAAKC,UAAU9C,EAAKyC,EAAMC,EAAMC,EAAOtE,IAElD0E,EAJQ,SAIN/C,EAAKgD,EAAcC,EAAYN,EAAOD,EAAMrE,GAC7C,OAAOuE,GAAGC,KAAKK,gBAAgBlD,EAAKgD,EAAcC,EAAYN,EAAOD,EAAMrE,OAM9E,IAAIkE,EAAAA,QAAI,CACPY,GAAI,sBACJC,OAAQ,SAAAC,GAAC,OAAIA,EAAEC,gECrCZC,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,0mDAA2mD,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6EAA6E,MAAQ,GAAG,SAAW,wbAAwb,eAAiB,CAAC,woEAAwoE,WAAa,MAEj3I,gECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,qTAAsT,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6EAA6E,MAAQ,GAAG,SAAW,yFAAyF,eAAiB,CAAC,s+CAAs+C,WAAa,MAE3jE,QCNIC,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIP,EAASE,EAAyBE,GAAY,CACjDH,GAAIG,EACJI,QAAQ,EACRD,QAAS,IAUV,OANAE,EAAoBL,GAAUM,KAAKV,EAAOO,QAASP,EAAQA,EAAOO,QAASJ,GAG3EH,EAAOQ,QAAS,EAGTR,EAAOO,QAIfJ,EAAoBQ,EAAIF,EC5BxBN,EAAoBS,KAAO,WAC1B,MAAM,IAAIC,MAAM,mCCDjBV,EAAoBW,KAAO,GZAvBpG,EAAW,GACfyF,EAAoBY,EAAI,SAASC,EAAQC,EAAUC,EAAIC,GACtD,IAAGF,EAAH,CAMA,IAAIG,EAAeC,EAAAA,EACnB,IAASC,EAAI,EAAGA,EAAI5G,EAAS6G,OAAQD,IAAK,CACrCL,EAAWvG,EAAS4G,GAAG,GACvBJ,EAAKxG,EAAS4G,GAAG,GACjBH,EAAWzG,EAAS4G,GAAG,GAE3B,IAJA,IAGIE,GAAY,EACPC,EAAI,EAAGA,EAAIR,EAASM,OAAQE,MACpB,EAAXN,GAAsBC,GAAgBD,IAAaO,OAAOC,KAAKxB,EAAoBY,GAAGa,OAAM,SAASnF,GAAO,OAAO0D,EAAoBY,EAAEtE,GAAKwE,EAASQ,OAC3JR,EAASY,OAAOJ,IAAK,IAErBD,GAAY,EACTL,EAAWC,IAAcA,EAAeD,IAG7C,GAAGK,EAAW,CACb9G,EAASmH,OAAOP,IAAK,GACrB,IAAIQ,EAAIZ,SACEZ,IAANwB,IAAiBd,EAASc,IAGhC,OAAOd,EAzBNG,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAI5G,EAAS6G,OAAQD,EAAI,GAAK5G,EAAS4G,EAAI,GAAG,GAAKH,EAAUG,IAAK5G,EAAS4G,GAAK5G,EAAS4G,EAAI,GACrG5G,EAAS4G,GAAK,CAACL,EAAUC,EAAIC,IaJ/BhB,EAAoBb,EAAI,SAASU,GAChC,IAAI+B,EAAS/B,GAAUA,EAAOgC,WAC7B,WAAa,OAAOhC,EAAgB,SACpC,WAAa,OAAOA,GAErB,OADAG,EAAoB8B,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,GCLR5B,EAAoB8B,EAAI,SAAS1B,EAAS4B,GACzC,IAAI,IAAI1F,KAAO0F,EACXhC,EAAoBiC,EAAED,EAAY1F,KAAS0D,EAAoBiC,EAAE7B,EAAS9D,IAC5EiF,OAAOW,eAAe9B,EAAS9D,EAAK,CAAE6F,YAAY,EAAMC,IAAKJ,EAAW1F,MCJ3E0D,EAAoBqC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOtH,MAAQ,IAAIuH,SAAS,cAAb,GACd,MAAOC,GACR,GAAsB,iBAAXC,OAAqB,OAAOA,QALjB,GCAxBzC,EAAoBiC,EAAI,SAASS,EAAKC,GAAQ,OAAOpB,OAAOqB,UAAUC,eAAetC,KAAKmC,EAAKC,ICC/F3C,EAAoB2B,EAAI,SAASvB,GACX,oBAAX0C,QAA0BA,OAAOC,aAC1CxB,OAAOW,eAAe9B,EAAS0C,OAAOC,YAAa,CAAEzF,MAAO,WAE7DiE,OAAOW,eAAe9B,EAAS,aAAc,CAAE9C,OAAO,KCLvD0C,EAAoBgD,IAAM,SAASnD,GAGlC,OAFAA,EAAOoD,MAAQ,GACVpD,EAAOqD,WAAUrD,EAAOqD,SAAW,IACjCrD,GCHRG,EAAoBsB,EAAI,gBCAxBtB,EAAoBmD,EAAIC,SAASC,SAAWC,KAAKC,SAASC,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAaPzD,EAAoBY,EAAEU,EAAI,SAASoC,GAAW,OAAoC,IAA7BD,EAAgBC,IAGrE,IAAIC,EAAuB,SAASC,EAA4BC,GAC/D,IAKI5D,EAAUyD,EALV5C,EAAW+C,EAAK,GAChBC,EAAcD,EAAK,GACnBE,EAAUF,EAAK,GAGI1C,EAAI,EAC3B,GAAGL,EAASkD,MAAK,SAASlE,GAAM,OAA+B,IAAxB2D,EAAgB3D,MAAe,CACrE,IAAIG,KAAY6D,EACZ9D,EAAoBiC,EAAE6B,EAAa7D,KACrCD,EAAoBQ,EAAEP,GAAY6D,EAAY7D,IAGhD,GAAG8D,EAAS,IAAIlD,EAASkD,EAAQ/D,GAGlC,IADG4D,GAA4BA,EAA2BC,GACrD1C,EAAIL,EAASM,OAAQD,IACzBuC,EAAU5C,EAASK,GAChBnB,EAAoBiC,EAAEwB,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAO1D,EAAoBY,EAAEC,IAG1BoD,EAAqBX,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FW,EAAmBC,QAAQP,EAAqBQ,KAAK,KAAM,IAC3DF,EAAmBrE,KAAO+D,EAAqBQ,KAAK,KAAMF,EAAmBrE,KAAKuE,KAAKF,OC/CvF,IAAIG,EAAsBpE,EAAoBY,OAAET,EAAW,CAAC,OAAO,WAAa,OAAOH,EAAoB,UAC3GoE,EAAsBpE,EAAoBY,EAAEwD","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/updatenotification/src/components/UpdateNotification.vue?a637","webpack://nextcloud/./apps/updatenotification/src/components/UpdateNotification.vue?fbe8","webpack://nextcloud/./apps/updatenotification/src/components/UpdateNotification.vue?1fb0","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue?vue&type=template&id=418946e4&scoped=true&","webpack:///nextcloud/apps/updatenotification/src/init.js","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue?vue&type=style&index=0&id=418946e4&lang=scss&scoped=true&","webpack:///nextcloud/apps/updatenotification/src/components/UpdateNotification.vue?vue&type=style&index=1&lang=scss&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<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 compatible version') }}\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 compatible version') }}\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<template v-if=\"!isWebUpdaterRecommended && updaterEnabled && webUpdaterEnabled\">\n\t\t\t\t\t<h3 class=\"warning\">\n\t\t\t\t\t\t{{ t('updatenotification', 'Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!') }}\n\t\t\t\t\t</h3>\n\t\t\t\t</template>\n\n\t\t\t\t<div>\n\t\t\t\t\t<a v-if=\"updaterEnabled && webUpdaterEnabled\"\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<span v-if=\"updaterEnabled && !webUpdaterEnabled\">\n\t\t\t\t\t\t{{ t('updatenotification', 'Please use the command line updater to update.') }}\n\t\t\t\t\t</span>\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<div>\n\t\t\t{{ t('updatenotification', 'You can change the update channel below which 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.') }}\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\" />\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 notifications 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\twebUpdaterEnabled: true,\n\t\t\tisWebUpdaterRecommended: true,\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}')\n\t\t\t\t.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 versions')\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 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\t\t\t}\n\n\t\t\treturn this.missingAppUpdates.length === 0\n\t\t\t\t? t('updatenotification', '<strong>All</strong> apps have a compatible version for this Nextcloud version available.', this)\n\t\t\t\t: 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)\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/{newVersion}', { newVersion: 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.webUpdaterEnabled = data.webUpdaterEnabled\n\t\tthis.isWebUpdaterRecommended = data.isWebUpdaterRecommended\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/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 * Creates a new authentication token and loads the updater URL\n\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&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=0&id=418946e4&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=0&id=418946e4&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=1&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateNotification.vue?vue&type=style&index=1&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UpdateNotification.vue?vue&type=template&id=418946e4&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=418946e4&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 \"418946e4\",\n null\n \n)\n\nexport default component.exports","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 compatible version'))+\"\\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 compatible version'))+\"\\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(\" \"),(!_vm.isWebUpdaterRecommended && _vm.updaterEnabled && _vm.webUpdaterEnabled)?[_c('h3',{staticClass:\"warning\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('div',[(_vm.updaterEnabled && _vm.webUpdaterEnabled)?_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.updaterEnabled && !_vm.webUpdaterEnabled)?_c('span',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('updatenotification', 'Please use the command line updater to update.'))+\"\\n\\t\\t\\t\\t\")]):_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('div',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('updatenotification', 'You can change the update channel below which 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.'))+\"\\n\\t\")]),_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 notifications 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 * @author Joas Schilling <coding@schilljs.com>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#updatenotification[data-v-418946e4]{margin-top:-25px;margin-bottom:200px}#updatenotification div.update[data-v-418946e4],#updatenotification p[data-v-418946e4]:not(.inlineblock){margin-bottom:25px}#updatenotification h2.inlineblock[data-v-418946e4]{margin-top:25px}#updatenotification h3[data-v-418946e4]{cursor:pointer}#updatenotification h3 .icon[data-v-418946e4]{cursor:pointer}#updatenotification h3[data-v-418946e4]:first-of-type{margin-top:0}#updatenotification h3.update-channel-selector[data-v-418946e4]{display:inline-block;cursor:inherit}#updatenotification .icon[data-v-418946e4]{display:inline-block;margin-bottom:-3px}#updatenotification .icon-triangle-s[data-v-418946e4],#updatenotification .icon-triangle-n[data-v-418946e4]{opacity:.5}#updatenotification .whatsNew[data-v-418946e4]{display:inline-block}#updatenotification .toggleWhatsNew[data-v-418946e4]{position:relative}#updatenotification .popovermenu[data-v-418946e4]{margin-top:5px;width:300px}#updatenotification .popovermenu p[data-v-418946e4]{margin-bottom:0;width:100%}#updatenotification .applist[data-v-418946e4]{margin-bottom:25px}#updatenotification .update-menu[data-v-418946e4]{position:relative;cursor:pointer;margin-left:3px;display:inline-block}#updatenotification .update-menu .icon-update-menu[data-v-418946e4]{cursor:inherit}#updatenotification .update-menu .icon-update-menu .icon-triangle-s[data-v-418946e4]{display:inline-block;vertical-align:middle;cursor:inherit;opacity:1}#updatenotification .update-menu .popovermenu[data-v-418946e4]{display:none;top:28px}#updatenotification .update-menu .popovermenu.show-menu[data-v-418946e4]{display:block}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/updatenotification/src/components/UpdateNotification.vue\"],\"names\":[],\"mappings\":\"AAwcA,qCACC,gBAAA,CACA,mBAAA,CACA,yGAEC,kBAAA,CAED,oDACC,eAAA,CAED,wCACC,cAAA,CACA,8CACC,cAAA,CAED,sDACC,YAAA,CAED,gEACC,oBAAA,CACA,cAAA,CAGF,2CACC,oBAAA,CACA,kBAAA,CAED,4GACC,UAAA,CAED,+CACC,oBAAA,CAED,qDACC,iBAAA,CAED,kDAKC,cAAA,CACA,WAAA,CALA,oDACC,eAAA,CACA,UAAA,CAKF,8CACC,kBAAA,CAGD,kDACC,iBAAA,CACA,cAAA,CACA,eAAA,CACA,oBAAA,CACA,oEACC,cAAA,CACA,qFACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,SAAA,CAGF,+DACC,YAAA,CACA,QAAA,CACA,yEACC,aAAA\",\"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#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/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#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}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/updatenotification/src/components/UpdateNotification.vue\"],\"names\":[],\"mappings\":\"AAkhBA,iCAKC,cAAA,CACA,WAAA,CALA,mCACC,cAAA,CACA,UAAA,CAMF,oGAEC,qCAAA,CAED,+BACC,eAAA\",\"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\\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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7292;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7292: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(36267); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","VTooltip","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","_s","t","_e","domProps","newVersionAvailableString","isListFetched","statusText","missingAppUpdates","on","toggleHideMissingUpdates","hideMissingUpdates","_l","app","index","key","appId","appName","availableAppUpdates","toggleHideAvailableUpdates","hideAvailableUpdates","isWebUpdaterRecommended","updaterEnabled","webUpdaterEnabled","clickUpdaterButton","class","hidden","downloadLink","directives","name","rawName","value","expression","toggleMenu","open","openedWhatsNew","whatsNew","isUpdateChecked","modifiers","isDefaultUpdateServerURL","updateServerURL","toggleUpdateChannelMenu","localizedChannelName","openedUpdateChannelMenu","channelList","noteDelayedStableString","availableGroups","model","callback","$$v","notifyGroups","currentChannel","Vue","methods","text","vars","count","OC","L10N","translate","n","textSingular","textPlural","translatePlural","el","render","h","Root","___CSS_LOADER_EXPORT___","push","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/dist/weather_status-weather-status.js b/dist/weather_status-weather-status.js
index 6cc5d6c43d9..ddddef73756 100644
--- a/dist/weather_status-weather-status.js
+++ b/dist/weather_status-weather-status.js
@@ -1,3 +1,3 @@
/*! For license information please see weather_status-weather-status.js.LICENSE.txt */
-!function(){var M,n={59464:function(M,n,u){"use strict";var e=u(20144),N=u(22200),A=u(26932),j=u(80351),i=u.n(j),D=u(9944),r=u(79440),L=u.n(r),g=u(56286),I=u.n(g),a=u(88408),y=u.n(a),s=u(74466),c=u.n(s),o=u(33521),T=u.n(o),w=u(41009),C=u.n(w),z=u(4820),x=u(79753);function E(M,t,n,u,e,N,A){try{var j=M[N](A),i=j.value}catch(M){return void n(M)}j.done?t(i):Promise.resolve(i).then(u,e)}function h(M){return function(){var t=this,n=arguments;return new Promise((function(u,e){var N=M.apply(t,n);function A(M){E(N,u,e,A,j,"next",M)}function j(M){E(N,u,e,A,j,"throw",M)}A(void 0)}))}}var d=function(){var M=h(regeneratorRuntime.mark((function M(t,n){var u,e;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return u=(0,x.generateOcsUrl)("apps/weather_status/api/v1/location"),M.next=3,z.default.put(u,{address:"",lat:t,lon:n});case 3:return e=M.sent,M.abrupt("return",e.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(t,n){return M.apply(this,arguments)}}(),O=function(){var M=h(regeneratorRuntime.mark((function M(t){var n,u;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return n=(0,x.generateOcsUrl)("apps/weather_status/api/v1/location"),M.next=3,z.default.put(n,{address:t,lat:null,lon:null});case 3:return u=M.sent,M.abrupt("return",u.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(t){return M.apply(this,arguments)}}(),Q=function(){var M=h(regeneratorRuntime.mark((function M(t){var n,u;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return n=(0,x.generateOcsUrl)("apps/weather_status/api/v1/mode"),M.next=3,z.default.put(n,{mode:t});case 3:return u=M.sent,M.abrupt("return",u.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(t){return M.apply(this,arguments)}}(),S=function(){var M=h(regeneratorRuntime.mark((function M(){var t,n;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return t=(0,x.generateOcsUrl)("apps/weather_status/api/v1/use-personal"),M.next=3,z.default.put(t);case 3:return n=M.sent,M.abrupt("return",n.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(){return M.apply(this,arguments)}}(),l=function(){var M=h(regeneratorRuntime.mark((function M(){var t,n;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return t=(0,x.generateOcsUrl)("apps/weather_status/api/v1/location"),M.next=3,z.default.get(t);case 3:return n=M.sent,M.abrupt("return",n.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(){return M.apply(this,arguments)}}(),m=function(){var M=h(regeneratorRuntime.mark((function M(){var t,n;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return t=(0,x.generateOcsUrl)("apps/weather_status/api/v1/forecast"),M.next=3,z.default.get(t);case 3:return n=M.sent,M.abrupt("return",n.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(){return M.apply(this,arguments)}}(),k=function(){var M=h(regeneratorRuntime.mark((function M(){var t,n;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return t=(0,x.generateOcsUrl)("apps/weather_status/api/v1/favorites"),M.next=3,z.default.get(t);case 3:return n=M.sent,M.abrupt("return",n.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(){return M.apply(this,arguments)}}(),Y=function(){var M=h(regeneratorRuntime.mark((function M(t){var n,u;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return n=(0,x.generateOcsUrl)("apps/weather_status/api/v1/favorites"),M.next=3,z.default.put(n,{favorites:t});case 3:return u=M.sent,M.abrupt("return",u.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(t){return M.apply(this,arguments)}}();function p(M,t,n,u,e,N,A){try{var j=M[N](A),i=j.value}catch(M){return void n(M)}j.done?t(i):Promise.resolve(i).then(u,e)}function v(M){return function(){var t=this,n=arguments;return new Promise((function(u,e){var N=M.apply(t,n);function A(M){p(N,u,e,A,j,"next",M)}function j(M){p(N,u,e,A,j,"throw",M)}A(void 0)}))}}var U={clearsky_day:{icon:"icon-clearsky-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} clear sky later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} clear sky",{temperature:M,unit:n})}},clearsky_night:{icon:"icon-clearsky-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} clear sky later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} clear sky",{temperature:M,unit:n})}},cloudy:{icon:"icon-cloudy",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} cloudy later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} cloudy",{temperature:M,unit:n})}},fair_day:{icon:"icon-fair-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} fair weather later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} fair weather",{temperature:M,unit:n})}},fair_night:{icon:"icon-fair-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} fair weather later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} fair weather",{temperature:M,unit:n})}},partlycloudy_day:{icon:"icon-partlycloudy-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} partly cloudy later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} partly cloudy",{temperature:M,unit:n})}},partlycloudy_night:{icon:"icon-partlycloudy-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} partly cloudy later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} partly cloudy",{temperature:M,unit:n})}},fog:{icon:"icon-fog",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} foggy later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} foggy",{temperature:M,unit:n})}},lightrain:{icon:"icon-lightrain",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} light rain later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} light rain",{temperature:M,unit:n})}},rain:{icon:"icon-rain",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} rain later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} rain",{temperature:M,unit:n})}},heavyrain:{icon:"icon-heavyrain",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} heavy rain later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} heavy rain",{temperature:M,unit:n})}},rainshowers_day:{icon:"icon-rainshowers-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} rain showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} rain showers",{temperature:M,unit:n})}},rainshowers_night:{icon:"icon-rainshowers-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} rain showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} rain showers",{temperature:M,unit:n})}},lightrainshowers_day:{icon:"icon-light-rainshowers-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} light rain showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} light rain showers",{temperature:M,unit:n})}},lightrainshowers_night:{icon:"icon-light-rainshowers-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} light rain showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} light rain showers",{temperature:M,unit:n})}},heavyrainshowers_day:{icon:"icon-heavy-rainshowers-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} heavy rain showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} heavy rain showers",{temperature:M,unit:n})}},heavyrainshowers_night:{icon:"icon-heavy-rainshowers-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} heavy rain showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} heavy rain showers",{temperature:M,unit:n})}}},b={name:"App",components:{Actions:L(),ActionButton:I(),ActionInput:y(),ActionLink:c(),ActionSeparator:T(),ActionText:C()},props:{inline:{type:Boolean,default:!1}},data:function(){return{locale:(0,D.getLocale)(),loading:!0,errorMessage:"",mode:1,address:null,lat:null,lon:null,offset:5,forecasts:[],loop:null,favorites:[],showFavorites:!1}},computed:{useFahrenheitLocale:function(){return["en_US","en_MH","en_FM","en_PW","en_KY","en_LR"].includes(this.locale)},temperatureUnit:function(){return this.useFahrenheitLocale?"°F":"°C"},locationText:function(){return t("weather_status","More weather for {adr}",{adr:this.address})},temperature:function(){return this.getTemperature(this.forecasts,0)},futureTemperature:function(){return this.getTemperature(this.forecasts,this.offset)},weatherCode:function(){return this.getWeatherCode(this.forecasts,0)},futureWeatherCode:function(){return this.getWeatherCode(this.forecasts,this.offset)},weatherIcon:function(){return this.getWeatherIcon(this.weatherCode,this.loading)},futureWeatherIcon:function(){return this.getWeatherIcon(this.futureWeatherCode,this.loading)},currentWeatherMessage:function(){return this.loading?t("weather_status","Loading weather"):this.errorMessage?this.errorMessage:this.getWeatherMessage(this.weatherCode,this.temperature)},forecastMessage:function(){return this.loading?t("weather_status","Loading weather"):this.getWeatherMessage(this.futureWeatherCode,this.futureTemperature,!0)},weatherLinkTarget:function(){return"https://www.windy.com/-Rain-thunder-rain?rain,"+this.lat+","+this.lon+",11"},gotWeather:function(){return this.address&&!this.errorMessage},addRemoveFavoriteIcon:function(){return this.currentAddressIsFavorite?"icon-starred":"icon-star"},addRemoveFavoriteText:function(){return this.currentAddressIsFavorite?t("weather_status","Remove from favorites"):t("weather_status","Add as favorite")},currentAddressIsFavorite:function(){var M=this;return this.favorites.find((function(t){return t===M.address}))},toggleFavoritesIcon:function(){return this.showFavorites?"icon-triangle-s":"icon-triangle-e"},displayedFavorites:function(){return this.showFavorites?this.favorites:[]}},mounted:function(){this.initWeatherStatus()},methods:{initWeatherStatus:function(){var M=this;return v(regeneratorRuntime.mark((function n(){var u,e;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,l();case 3:return u=n.sent,M.lat=u.lat,M.lon=u.lon,M.address=u.address,M.mode=u.mode,1===M.mode?M.askBrowserLocation():2===M.mode&&M.startLoop(),n.next=11,k();case 11:e=n.sent,M.favorites=e,n.next=22;break;case 15:if(n.prev=15,n.t0=n.catch(0),"ECONNABORTED"!==(null===n.t0||void 0===n.t0?void 0:n.t0.code)){n.next=20;break}return console.info("The weather status request was cancelled because the user navigates."),n.abrupt("return");case 20:n.t0.response&&401===n.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error getting the weather status information.")),console.error(n.t0);case 22:case"end":return n.stop()}}),n,null,[[0,15]])})))()},startLoop:function(){var M=this;clearInterval(this.loop),this.lat&&this.lon?(this.loop=setInterval((function(){return M.getForecast()}),36e5),this.getForecast()):this.loading=!1},askBrowserLocation:function(){var M=this;this.loading=!0,this.errorMessage="",navigator.geolocation&&window.isSecureContext?navigator.geolocation.getCurrentPosition((function(t){console.debug("browser location success"),M.lat=t.coords.latitude,M.lon=t.coords.longitude,M.saveMode(1),M.mode=1,M.saveLocation(M.lat,M.lon)}),(function(t){console.debug("location permission refused"),console.debug(t),M.saveMode(2),M.mode=2,M.lat&&M.lon?M.startLoop():M.usePersonalAddress()})):(console.debug("no secure context!"),this.saveMode(2),this.mode=2,this.startLoop())},getForecast:function(){var M=this;return v(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,m();case 3:M.forecasts=n.sent,n.next=10;break;case 6:n.prev=6,n.t0=n.catch(0),M.errorMessage=t("weather_status","No weather information found"),console.debug(n.t0);case 10:M.loading=!1;case 11:case"end":return n.stop()}}),n,null,[[0,6]])})))()},setAddress:function(M){var n=this;return v(regeneratorRuntime.mark((function u(){var e;return regeneratorRuntime.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return n.loading=!0,n.errorMessage="",u.prev=2,u.next=5,O(M);case 5:(e=u.sent).success?(n.lat=e.lat,n.lon=e.lon,n.address=e.address,n.mode=2,n.startLoop()):(n.errorMessage=t("weather_status","Location not found"),n.loading=!1),u.next=13;break;case 9:u.prev=9,u.t0=u.catch(2),u.t0.response&&401===u.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error setting the location address.")),n.loading=!1;case 13:case"end":return u.stop()}}),u,null,[[2,9]])})))()},saveLocation:function(M,n){var u=this;return v(regeneratorRuntime.mark((function e(){var N;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,d(M,n);case 3:N=e.sent,u.address=N.address,u.startLoop(),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(0),e.t0.response&&401===e.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error setting the location.")),console.debug(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,8]])})))()},saveMode:function(M){return v(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,Q(M);case 3:n.next=9;break;case 5:n.prev=5,n.t0=n.catch(0),n.t0.response&&401===n.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error saving the mode.")),console.debug(n.t0);case 9:case"end":return n.stop()}}),n,null,[[0,5]])})))()},onBrowserLocationClick:function(){this.askBrowserLocation()},usePersonalAddress:function(){var M=this;return v(regeneratorRuntime.mark((function n(){var u;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return M.loading=!0,n.prev=1,n.next=4,S();case 4:u=n.sent,M.lat=u.lat,M.lon=u.lon,M.address=u.address,M.mode=2,M.startLoop(),n.next=17;break;case 12:n.prev=12,n.t0=n.catch(1),n.t0.response&&401===n.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error using personal address.")),console.debug(n.t0),M.loading=!1;case 17:case"end":return n.stop()}}),n,null,[[1,12]])})))()},onAddressSubmit:function(){var M=this.$refs.addressInput.$el.querySelector('input[type="text"]').value;this.setAddress(M)},getLocalizedTemperature:function(M){return this.useFahrenheitLocale?1.8*M+32:M},onAddRemoveFavoriteClick:function(){var M=this.currentAddressIsFavorite;if(M){var t=this.favorites.indexOf(M);-1!==t&&this.favorites.splice(t,1)}else this.favorites.push(this.address);Y(this.favorites)},onFavoriteClick:function(M,t){if(M.target.classList.contains("action-button__icon")){var n=this.favorites.indexOf(t);-1!==n&&this.favorites.splice(n,1),Y(this.favorites)}else t!==this.address&&this.setAddress(t)},formatTime:function(M){return i()(M).format("LT")},getTemperature:function(M){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return M.length>t?M[t].data.instant.details.air_temperature:""},getWeatherCode:function(M){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return M.length>t?M[t].data.next_1_hours.summary.symbol_code:""},getWeatherIcon:function(M,t){return t?"icon-loading-small":M&&M in U?U[M].icon:"icon-fair-day"},getWeatherMessage:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return M&&M in U?U[M].text(Math.round(this.getLocalizedTemperature(n)),this.temperatureUnit,u):t("weather_status","Set location for weather")}}},f=b,Z=u(93379),G=u.n(Z),W=u(7795),B=u.n(W),P=u(90569),_=u.n(P),R=u(3565),F=u.n(R),J=u(19216),H=u.n(J),V=u(44589),X=u.n(V),q=u(62554),$={};$.styleTagTransform=X(),$.setAttributes=F(),$.insert=_().bind(null,"head"),$.domAPI=B(),$.insertStyleElement=H(),G()(q.Z,$),q.Z&&q.Z.locals&&q.Z.locals;var K=(0,u(51900).Z)(f,(function(){var M=this,t=M.$createElement,n=M._self._c||t;return n("li",{class:{inline:M.inline}},[n("div",{attrs:{id:"weather-status-menu-item"}},[n("Actions",{staticClass:"weather-status-menu-item__subheader",attrs:{"default-icon":M.weatherIcon,"menu-title":M.currentWeatherMessage}},[M.gotWeather?n("ActionText",{attrs:{icon:M.futureWeatherIcon}},[M._v("\n\t\t\t\t"+M._s(M.forecastMessage)+"\n\t\t\t")]):M._e(),M._v(" "),M.gotWeather?n("ActionLink",{attrs:{icon:"icon-address",target:"_blank",href:M.weatherLinkTarget,"close-after-click":!0}},[M._v("\n\t\t\t\t"+M._s(M.locationText)+"\n\t\t\t")]):M._e(),M._v(" "),M.gotWeather?n("ActionButton",{attrs:{icon:M.addRemoveFavoriteIcon},on:{click:M.onAddRemoveFavoriteClick}},[M._v("\n\t\t\t\t"+M._s(M.addRemoveFavoriteText)+"\n\t\t\t")]):M._e(),M._v(" "),M.address&&!M.errorMessage?n("ActionSeparator"):M._e(),M._v(" "),n("ActionButton",{attrs:{icon:"icon-crosshair","close-after-click":!0},on:{click:M.onBrowserLocationClick}},[M._v("\n\t\t\t\t"+M._s(M.t("weather_status","Detect location"))+"\n\t\t\t")]),M._v(" "),n("ActionInput",{ref:"addressInput",attrs:{disabled:!1,icon:"icon-rename",type:"text",value:""},on:{submit:M.onAddressSubmit}},[M._v("\n\t\t\t\t"+M._s(M.t("weather_status","Set custom address"))+"\n\t\t\t")]),M._v(" "),n("ActionButton",{directives:[{name:"show",rawName:"v-show",value:M.favorites.length>0,expression:"favorites.length > 0"}],attrs:{icon:M.toggleFavoritesIcon},on:{click:function(t){M.showFavorites=!M.showFavorites}}},[M._v("\n\t\t\t\t"+M._s(M.t("weather_status","Favorites"))+"\n\t\t\t")]),M._v(" "),M._l(M.displayedFavorites,(function(t){return n("ActionButton",{key:t,attrs:{icon:"icon-starred"},on:{click:function(n){return M.onFavoriteClick(n,t)}}},[M._v("\n\t\t\t\t"+M._s(t)+"\n\t\t\t")])}))],2)],1)])}),[],!1,null,null,null).exports;u.nc=btoa((0,N.getRequestToken)()),e.default.prototype.t=t,document.addEventListener("DOMContentLoaded",(function(){OCA.Dashboard&&OCA.Dashboard.registerStatus("weather",(function(M){return new(e.default.extend(K))({propsData:{inline:!0}}).$mount(M)}))}))},62554:function(M,t,n){"use strict";var u=n(87537),e=n.n(u),N=n(23645),A=n.n(N),j=n(61667),i=n.n(j),D=new URL(n(87320),n.b),r=new URL(n(3953),n.b),L=new URL(n(71211),n.b),g=new URL(n(87760),n.b),I=new URL(n(30570),n.b),a=new URL(n(74351),n.b),y=new URL(n(26625),n.b),s=new URL(n(16767),n.b),c=new URL(n(53748),n.b),o=new URL(n(26320),n.b),T=new URL(n(26157),n.b),w=new URL(n(37837),n.b),C=new URL(n(94776),n.b),z=new URL(n(14593),n.b),x=new URL(n(53107),n.b),E=new URL(n(97251),n.b),h=new URL(n(18138),n.b),d=new URL(n(53254),n.b),O=new URL(n(50663),n.b),Q=new URL(n(75322),n.b),S=A()(e()),l=i()(D),m=i()(r),k=i()(L),Y=i()(g),p=i()(I),v=i()(a),U=i()(y),b=i()(s),f=i()(c),Z=i()(o),G=i()(T),W=i()(w),B=i()(C),P=i()(z),_=i()(x),R=i()(E),F=i()(h),J=i()(d),H=i()(O),V=i()(Q);S.push([M.id,".icon-weather-status{background-image:url("+l+")}body.theme--dark .icon-weather-status{background-image:url("+m+")}.icon-clearsky-day{background-image:url("+k+")}.icon-clearsky-night{background-image:url("+Y+")}.icon-cloudy{background-image:url("+p+")}.icon-fair-day{background-image:url("+v+")}.icon-fair-night{background-image:url("+U+")}.icon-partlycloudy-day{background-image:url("+b+")}.icon-partlycloudy-night{background-image:url("+f+")}.icon-fog{background-image:url("+Z+")}.icon-lightrain{background-image:url("+G+")}.icon-rain{background-image:url("+W+")}.icon-heavyrain{background-image:url("+B+")}.icon-light-rainshowers-day{background-image:url("+P+")}.icon-light-rainshowers-night{background-image:url("+_+")}.icon-rainshowers-day{background-image:url("+R+")}.icon-rainshowers-night{background-image:url("+F+")}.icon-heavy-rainshowers-day{background-image:url("+J+")}.icon-heavy-rainshowers-night{background-image:url("+H+")}.icon-crosshair{background-color:var(--color-main-text);padding:0 !important;mask:url("+V+") no-repeat;mask-size:18px 18px;mask-position:center;-webkit-mask:url("+V+") no-repeat;-webkit-mask-size:18px 18px;-webkit-mask-position:center;min-width:44px !important;min-height:44px !important}li:not(.inline) .weather-status-menu-item__header{display:block;align-items:center;color:var(--color-main-text);padding:10px 12px 5px 12px;box-sizing:border-box;opacity:1;white-space:nowrap;width:100%;text-align:center;max-width:250px;text-overflow:ellipsis;min-width:175px}li:not(.inline) .weather-status-menu-item__subheader{width:100%}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon{background-color:var(--color-main-background);background-size:16px;border:0;border-radius:0;font-weight:normal;padding-left:40px}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:hover,li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:focus{box-shadow:inset 4px 0 var(--color-primary-element)}.inline .weather-status-menu-item__subheader{width:100%}.inline .weather-status-menu-item__subheader .trigger>.icon{background-size:16px;border:0;border-radius:var(--border-radius-pill);font-weight:normal;padding-left:40px}.inline .weather-status-menu-item__subheader .trigger>.icon.icon-loading-small::after{left:21px}li{list-style-type:none}","",{version:3,sources:["webpack://./apps/weather_status/src/App.vue"],names:[],mappings:"AAwgBA,qBACC,wDAAA,CAED,sCACC,wDAAA,CAED,mBACC,wDAAA,CAED,qBACC,wDAAA,CAED,aACC,wDAAA,CAED,eACC,wDAAA,CAED,iBACC,wDAAA,CAED,uBACC,wDAAA,CAED,yBACC,wDAAA,CAED,UACC,wDAAA,CAED,gBACC,yDAAA,CAED,WACC,yDAAA,CAED,gBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,sBACC,yDAAA,CAED,wBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,gBACI,uCAAA,CACA,oBAAA,CACA,uDAAA,CACA,mBAAA,CACA,oBAAA,CACA,+DAAA,CACA,2BAAA,CACA,4BAAA,CACA,yBAAA,CACA,0BAAA,CAIH,kDACC,aAAA,CACA,kBAAA,CACA,4BAAA,CACA,0BAAA,CACA,qBAAA,CACA,SAAA,CACA,kBAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CAGD,qDACC,UAAA,CAEA,oEACC,6CAAA,CACA,oBAAA,CACA,QAAA,CACA,eAAA,CACA,kBAAA,CACA,iBAAA,CAEA,oJAEC,mDAAA,CAMJ,6CACC,UAAA,CAEA,4DACC,oBAAA,CACA,QAAA,CACA,uCAAA,CACA,kBAAA,CACA,iBAAA,CAGC,sFACC,SAAA,CAMJ,GACC,oBAAA",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\n\n\n\n\n\n\n\n\n.icon-weather-status {\n\tbackground-image: url('./../img/app-dark.svg');\n}\nbody.theme--dark .icon-weather-status {\n\tbackground-image: url('./../img/app.svg');\n}\n.icon-clearsky-day {\n\tbackground-image: url('./../img/sun.svg');\n}\n.icon-clearsky-night {\n\tbackground-image: url('./../img/moon.svg');\n}\n.icon-cloudy {\n\tbackground-image: url('./../img/cloud-cloud.svg');\n}\n.icon-fair-day {\n\tbackground-image: url('./../img/sun-small-cloud.svg');\n}\n.icon-fair-night {\n\tbackground-image: url('./../img/moon-small-cloud.svg');\n}\n.icon-partlycloudy-day {\n\tbackground-image: url('./../img/sun-cloud.svg');\n}\n.icon-partlycloudy-night {\n\tbackground-image: url('./../img/moon-cloud.svg');\n}\n.icon-fog {\n\tbackground-image: url('./../img/fog.svg');\n}\n.icon-lightrain {\n\tbackground-image: url('./../img/light-rain.svg');\n}\n.icon-rain {\n\tbackground-image: url('./../img/rain.svg');\n}\n.icon-heavyrain {\n\tbackground-image: url('./../img/heavy-rain.svg');\n}\n.icon-light-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-light-rain.svg');\n}\n.icon-light-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-light-rain.svg');\n}\n.icon-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-rain.svg');\n}\n.icon-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-rain.svg');\n}\n.icon-heavy-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-heavy-rain.svg');\n}\n.icon-heavy-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-heavy-rain.svg');\n}\n.icon-crosshair {\n background-color: var(--color-main-text);\n padding: 0 !important;\n mask: url(./../img/cross.svg) no-repeat;\n mask-size: 18px 18px;\n mask-position: center;\n -webkit-mask: url(./../img/cross.svg) no-repeat;\n -webkit-mask-size: 18px 18px;\n -webkit-mask-position: center;\n min-width: 44px !important;\n min-height: 44px !important;\n}\n\nli:not(.inline) .weather-status-menu-item {\n\t&__header {\n\t\tdisplay: block;\n\t\talign-items: center;\n\t\tcolor: var(--color-main-text);\n\t\tpadding: 10px 12px 5px 12px;\n\t\tbox-sizing: border-box;\n\t\topacity: 1;\n\t\twhite-space: nowrap;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tmax-width: 250px;\n\t\ttext-overflow: ellipsis;\n\t\tmin-width: 175px;\n\t}\n\n\t&__subheader {\n\t\twidth: 100%;\n\n\t\t.trigger > .icon {\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbackground-size: 16px;\n\t\t\tborder: 0;\n\t\t\tborder-radius: 0;\n\t\t\tfont-weight: normal;\n\t\t\tpadding-left: 40px;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbox-shadow: inset 4px 0 var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.inline .weather-status-menu-item__subheader {\n\twidth: 100%;\n\n\t.trigger > .icon {\n\t\tbackground-size: 16px;\n\t\tborder: 0;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: normal;\n\t\tpadding-left: 40px;\n\n\t\t&.icon-loading-small {\n\t\t\t&::after {\n\t\t\t\tleft: 21px;\n\t\t\t}\n\t\t}\n\t}\n}\n\nli {\n\tlist-style-type: none;\n}\n"],sourceRoot:""}]),t.Z=S},46700:function(M,t,n){var u={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function e(M){var t=N(M);return n(t)}function N(M){if(!n.o(u,M)){var t=new Error("Cannot find module '"+M+"'");throw t.code="MODULE_NOT_FOUND",t}return u[M]}e.keys=function(){return Object.keys(u)},e.resolve=N,M.exports=e,e.id=46700},87320:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgwLjUiIGhlaWdodD0iMjgwLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0MC4yMiAyMTAuMDRjMzguNDggMCA2OS43OC0zMS4zIDY5Ljc4LTY5Ljc4cy0zMS4zLTY5Ljc4LTY5Ljc4LTY5Ljc4Yy0zOC40NyAwLTY5Ljc4IDMxLjMtNjkuNzggNjkuNzhzMzEuMyA2OS43OCA2OS43OCA2OS43OE0xMzIuOCAzOC45YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDAwLTE0Ljg1IDBWMzguOU0xMzIuOCAyNDEuNjN2MzEuNDZhNy40MyA3LjQzIDAgMDAxNC44NSAwdi0zMS40NmE3LjQzIDcuNDMgMCAwMC0xNC44NSAwTTg5LjU0IDU5LjkxYTcuNDMgNy40MyAwIDAwNi40My0xMS4xNEw4MC4yNCAyMS41M2E3LjQzIDcuNDMgMCAwMC0xMi44NiA3LjQzTDgzLjEgNTYuMmE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU0xODcuMiAyMjEuNjJhNy40MyA3LjQzIDAgMDAtMi43MiAxMC4xNEwyMDAuMiAyNTlhNy40MiA3LjQyIDAgMTAxMi44Ni03LjQybC0xNS43My0yNy4yNWE3LjQzIDcuNDMgMCAwMC0xMC4xNS0yLjcxTTE4Ljc2IDcwLjE0YTcuNDMgNy40MyAwIDAwMi43MiAxMC4xNUw0OC43MiA5NmE3LjQyIDcuNDIgMCAxMDcuNDMtMTIuODZMMjguOSA2Ny40MmE3LjQzIDcuNDMgMCAwMC0xMC4xNCAyLjcyTTI1OC45NyAyMDAuMjRsLTI3LjI1LTE1LjczYTcuNDMgNy40MyAwIDAwLTcuNDIgMTIuODdsMjcuMjQgMTUuNzNhNy40IDcuNCAwIDAwMTAuMTQtMi43MiA3LjQzIDcuNDMgMCAwMC0yLjcxLTEwLjE1TTQ2LjI4IDE0MC4yN2MwLTQuMS0zLjMzLTcuNDItNy40My03LjQySDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMzEuNDZjNC4xIDAgNy40My0zLjMzIDcuNDMtNy40M00yNzMuMDUgMTMyLjg1aC0zMS40NmE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMzEuNDZhNy40MyA3LjQzIDAgMDAwLTE0Ljg1TTQ4LjczIDE4NC41MUwyMS41IDIwMC4yNGE3LjQzIDcuNDMgMCAxMDcuNDIgMTIuODZsMjcuMjUtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40My0xMi44Nk0yNTEuNTQgNjcuNDJMMjI0LjMgODMuMTVBNy40MyA3LjQzIDAgMDAyMzEuNzIgOTZsMjcuMjQtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40Mi0xMi44Nk04My4xIDIyNC4zNGwtMTUuNzMgMjcuMjRhNy40MyA3LjQzIDAgMDAxMi44NyA3LjQzbDE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDAwLTEyLjg3LTcuNDJNMTg3LjIgNTguOTFhNy40IDcuNCAwIDAwMTAuMTQtMi43MWwxNS43My0yNy4yNWE3LjQzIDcuNDMgMCAxMC0xMi44Ni03LjQybC0xNS43MyAyNy4yNGE3LjQzIDcuNDMgMCAwMDIuNzEgMTAuMTQiLz48L3N2Zz4="},3953:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgwLjUiIGhlaWdodD0iMjgwLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTE0MC4yMiAyMTAuMDRjMzguNDggMCA2OS43OC0zMS4zIDY5Ljc4LTY5Ljc4cy0zMS4zLTY5Ljc4LTY5Ljc4LTY5Ljc4Yy0zOC40NyAwLTY5Ljc4IDMxLjMtNjkuNzggNjkuNzhzMzEuMyA2OS43OCA2OS43OCA2OS43OE0xMzIuOCAzOC45YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDAwLTE0Ljg1IDBWMzguOU0xMzIuOCAyNDEuNjN2MzEuNDZhNy40MyA3LjQzIDAgMDAxNC44NSAwdi0zMS40NmE3LjQzIDcuNDMgMCAwMC0xNC44NSAwTTg5LjU0IDU5LjkxYTcuNDMgNy40MyAwIDAwNi40My0xMS4xNEw4MC4yNCAyMS41M2E3LjQzIDcuNDMgMCAwMC0xMi44NiA3LjQzTDgzLjEgNTYuMmE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU0xODcuMiAyMjEuNjJhNy40MyA3LjQzIDAgMDAtMi43MiAxMC4xNEwyMDAuMiAyNTlhNy40MiA3LjQyIDAgMTAxMi44Ni03LjQybC0xNS43My0yNy4yNWE3LjQzIDcuNDMgMCAwMC0xMC4xNS0yLjcxTTE4Ljc2IDcwLjE0YTcuNDMgNy40MyAwIDAwMi43MiAxMC4xNUw0OC43MiA5NmE3LjQyIDcuNDIgMCAxMDcuNDMtMTIuODZMMjguOSA2Ny40MmE3LjQzIDcuNDMgMCAwMC0xMC4xNCAyLjcyTTI1OC45NyAyMDAuMjRsLTI3LjI1LTE1LjczYTcuNDMgNy40MyAwIDAwLTcuNDIgMTIuODdsMjcuMjQgMTUuNzNhNy40IDcuNCAwIDAwMTAuMTQtMi43MiA3LjQzIDcuNDMgMCAwMC0yLjcxLTEwLjE1TTQ2LjI4IDE0MC4yN2MwLTQuMS0zLjMzLTcuNDItNy40My03LjQySDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMzEuNDZjNC4xIDAgNy40My0zLjMzIDcuNDMtNy40M00yNzMuMDUgMTMyLjg1aC0zMS40NmE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMzEuNDZhNy40MyA3LjQzIDAgMDAwLTE0Ljg1TTQ4LjczIDE4NC41MUwyMS41IDIwMC4yNGE3LjQzIDcuNDMgMCAxMDcuNDIgMTIuODZsMjcuMjUtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40My0xMi44Nk0yNTEuNTQgNjcuNDJMMjI0LjMgODMuMTVBNy40MyA3LjQzIDAgMDAyMzEuNzIgOTZsMjcuMjQtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40Mi0xMi44Nk04My4xIDIyNC4zNGwtMTUuNzMgMjcuMjRhNy40MyA3LjQzIDAgMDAxMi44NyA3LjQzbDE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDAwLTEyLjg3LTcuNDJNMTg3LjIgNTguOTFhNy40IDcuNCAwIDAwMTAuMTQtMi43MWwxNS43My0yNy4yNWE3LjQzIDcuNDMgMCAxMC0xMi44Ni03LjQybC0xNS43MyAyNy4yNGE3LjQzIDcuNDMgMCAwMDIuNzEgMTAuMTQiLz48L2c+PC9zdmc+"},30570:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjk0LjcxIiBoZWlnaHQ9IjE4OS4xNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTA5LjAzIDExOS4yYzAtMjkuMTkgMjYuNC01Mi45NCA1OC44Ni01Mi45NCA3LjAyIDAgMTMuODEgMS4wOCAyMC4yOSAzLjIyYTU0LjM2IDU0LjM2IDAgMDEyNS4wNC0xNC4zNkE1MS45NSA1MS45NSAwIDAwMTY2LjkgMjYuM2MtNC4yMSAwLTguNDEuNTItMTIuNDggMS41Mi0zIC43NC02LjE1LS40NC03LjktMi45OWE1Ny4xMyA1Ny4xMyAwIDAwLTg1LjU4LTkuODQgNTYuOTUgNTYuOTUgMCAwMC0xOC4zMyAzNi42NSA3LjQyIDcuNDIgMCAwMS00LjIgNmMtLjY5LjM0LTEuMzguNjgtMi4wNSAxLjA2LS42Mi4zNC0xLjI5LjYtMS45OC43NkE0NC4zIDQ0LjMgMCAwMDkuOCA3NC42NmE0My4yIDQzLjIgMCAwMC05LjggMjcuNThjMCAyNC4xOSAxOS43OCA0My44NiA0NC4xIDQzLjg2aDUyLjk2YTQ4LjA0IDQ4LjA0IDAgMDExMi4wMy0yNC42M2MtLjAzLS43Ni0uMDUtMS41MS0uMDUtMi4yNyIgZmlsbD0iIzYxYzllNyIvPjxwYXRoIGQ9Ik0yNjkuMjUgMTIwLjRhNy40MyA3LjQzIDAgMDEtNC40Ni05LjUgMjguODUgMjguODUgMCAwMDEuNzItOS44MmMwLTE0LjEtMTAuMjctMjYuMTYtMjQuNy0zMC45YTQzLjYzIDQzLjYzIDAgMDAtMjEuMDgtMS41NWMtOS45IDEuNjgtMTguNzQgNi43LTI0LjUgMTQuMTJhNy40MyA3LjQzIDAgMDEtOC44IDIuMjYgNDkuMTIgNDkuMTIgMCAwMC0xOS41My0zLjk2Yy0yNC4yNyAwLTQ0LjAyIDE3LjEtNDQuMDIgMzguMSAwIDEuMzQuMDkgMi43My4yNiA0LjFhNy4zOSA3LjM5IDAgMDEtMi4yMyA2LjI2IDM0LjMgMzQuMyAwIDAwLTkuNzEgMTYuNTMgMzEuMDMgMzEuMDMgMCAwMC4wMiAxNC44NWM0IDE2LjEzIDIwLjYyIDI4LjI3IDQwLjQ2IDI4LjI3aDEwMC42M2MyMi44MiAwIDQxLjM4LTE2LjA0IDQxLjM4LTM1Ljc2IDAtMTQuNDUtOS45OS0yNy40MS0yNS40NC0zMyIgZmlsbD0iIzQ0OTJhOCIvPjwvc3ZnPg=="},75322:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48cGF0aCBkPSJNMjIgMTJoLTRNNiAxMkgyTTEyIDZWMk0xMiAyMnYtNCIvPjwvc3ZnPg=="},26320:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU0LjQ0IiBoZWlnaHQ9IjI1Ni4zOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMjMzLjMgNzEuNThhNy40MiA3LjQyIDAgMDEtMi42My0zLjg0IDU1LjUgNTUuNSAwIDAwLTUzLjA4LTM5Ljg3Yy00LjUgMC05IC41NS0xMy4zNSAxLjYzLTMgLjc0LTYuMTUtLjQ1LTcuOS0zQTYxLjEgNjEuMSAwIDAwMTA2IC4wMSA2MC44OSA2MC44OSAwIDAwNjQuODMgMTZhNjAuODcgNjAuODcgMCAwMC0xOS42IDM5LjIgNy40MiA3LjQyIDAgMDEtNC4yIDZjLS43My4zNC0xLjQ3LjcyLTIuMiAxLjEyLS42MS4zNS0xLjI4LjYtMS45Ny43NUE0Ny40OCA0Ny40OCAwIDAwMTAuNSA3OS4zNyA0Ni4zIDQ2LjMgMCAwMDAgMTA4LjkyYzAgMjUuOTEgMjEuMiA0NyA0Ny4yNiA0N0gyMDQuNmMyNi4wNiAwIDQ3LjI3LTIxLjA5IDQ3LjI3LTQ3YTQ2LjYgNDYuNiAwIDAwLTE4LjU2LTM3LjM0TTIzMS4zMiAxODcuOTFjMC00LjEtMy4zMy03LjQzLTcuNDMtNy40M0gyOC44N2E3LjQyIDcuNDIgMCAxMDAgMTQuODZoMTk1LjAyYzQuMSAwIDcuNDMtMy4zNCA3LjQzLTcuNDNNMjEzLjE0IDI0MS41NEgxOC4xMmE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMTk1LjAyYTcuNDIgNy40MiAwIDEwMC0xNC44NU02Mi4yOCAyMTEuNDNhNy40MiA3LjQyIDAgMTAwIDE0Ljg1aDcxLjQ3YTcuNDMgNy40MyAwIDAwMC0xNC44NUg2Mi4yOE0yNDcgMjExLjQzaC03MS40OGE3LjQyIDcuNDIgMCAxMDAgMTQuODVIMjQ3YTcuNDMgNy40MyAwIDAwMC0xNC44NSIvPjwvZz48L3N2Zz4="},94776:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUxLjg4IiBoZWlnaHQ9IjI1OC42NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjUxLjg1IDEwOC45YTQ2LjYgNDYuNiAwIDAwLTE4LjU2LTM3LjM0IDcuNDMgNy40MyAwIDAxLTIuNjMtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzUgMS42Mi0zIC43NC02LjE1LS40NS03LjktM0E2MS4xIDYxLjEgMCAwMDEwNiAwYTYwLjg5IDYwLjg5IDAgMDAtNDEuMTggMTUuOTcgNjAuODcgNjAuODcgMCAwMC0xOS42IDM5LjIgNy40MyA3LjQzIDAgMDEtNC4yIDZjLS43My4zNS0xLjQ3LjczLTIuMiAxLjEzLS42MS4zNC0xLjI4LjYtMS45Ny43NWE0Ny40OCA0Ny40OCAwIDAwLTI2LjM1IDE2LjNBNDYuMyA0Ni4zIDAgMDAtLjAxIDEwOC45YzAgMjUuOTIgMjEuMiA0NyA0Ny4yNiA0N0gyMDQuNmMyNi4wNyAwIDQ3LjI3LTIxLjA4IDQ3LjI3LTQ3IiBmaWxsPSIjNDQ5MmE4Ii8+PGcgZmlsbD0iIzYxYzllNyI+PHBhdGggZD0iTTY2LjY2IDIyMy40NGE3LjQyIDcuNDIgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MiA3LjQyIDAgMTAtMTQuMiA0LjM1bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNk0xMDcuNCAyNTguNjJhNy40MyA3LjQzIDAgMDA3LjEtOS42bC04LjkzLTI5LjE4YTcuNDIgNy40MiAwIDEwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjVNMTU5LjIyIDIxMy4wNmE3LjQzIDcuNDMgMCAwMC00LjkzIDkuMjhsOC45NCAyOS4xN2E3LjQzIDcuNDMgMCAxMDE0LjItNC4zNUwxNjguNSAyMThhNy40MyA3LjQzIDAgMDAtOS4yNy00LjkzTTEyOC44NCAyMjMuNDRhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04LjkzLTI5LjE4YTcuNDMgNy40MyAwIDEwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMTkxLjAzIDIyMy40NGE3LjQxIDcuNDEgMCAwMDcuMS05LjZsLTguOTQtMjkuMThBNy40MiA3LjQyIDAgMTAxNzUgMTg5bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNiIvPjwvZz48L3N2Zz4="},26157:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjk0LjcxIiBoZWlnaHQ9IjI1OC41NyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMTA5LjA0IDExOS4xOGMwLTI5LjIgMjYuNC01Mi45NSA1OC44Ny01Mi45NSA3IDAgMTMuOCAxLjA4IDIwLjI4IDMuMjJhNTQuMzIgNTQuMzIgMCAwMTI1LjA0LTE0LjM1IDUxLjkzIDUxLjkzIDAgMDAtNDYuMzItMjguODNjLTQuMjEgMC04LjQxLjUxLTEyLjQ3IDEuNTItMyAuNzUtNi4xNi0uNDUtNy45MS0zQTU3LjE1IDU3LjE1IDAgMDA5OS40Ni4wMmMtMTQuMyAwLTI3Ljk3IDUuMzEtMzguNTEgMTQuOTVhNTYuOTMgNTYuOTMgMCAwMC0xOC4zMyAzNi42NSA3LjQzIDcuNDMgMCAwMS00LjIgNmMtLjY4LjMyLTEuMzcuNjgtMi4wNSAxLjA1LS42Mi4zNS0xLjI5LjYtMS45OC43NUE0NC4zIDQ0LjMgMCAwMDkuOCA3NC42NCA0My4yIDQzLjIgMCAwMDAgMTAyLjJjMCAyNC4xOCAxOS43OCA0My44NiA0NC4xIDQzLjg2aDUyLjk2YTQ4LjA0IDQ4LjA0IDAgMDExMi4wMy0yNC42M2MtLjAzLS43Ni0uMDUtMS41MS0uMDUtMi4yNk02NC45OSAyNTguNTlhNy40NCA3LjQ0IDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMTI3LjE3IDI1OC41OWE3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNk0xODkuMzYgMjU4LjU5YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xN2E3LjQzIDcuNDMgMCAwMDcuMSA1LjI2Ii8+PC9nPjxwYXRoIGQ9Ik0yNjkuMjYgMTIwLjQyYTcuNDMgNy40MyAwIDAxLTQuNDYtOS41IDI4Ljg2IDI4Ljg2IDAgMDAxLjczLTkuODJjMC0xNC4xLTEwLjI4LTI2LjE1LTI0LjctMzAuOTFhNDMuNTcgNDMuNTcgMCAwMC0yMS4wOS0xLjU1Yy05LjkgMS42OS0xOC43NCA2LjctMjQuNDkgMTQuMTJhNy40MyA3LjQzIDAgMDEtOC44IDIuMjggNDkuMTIgNDkuMTIgMCAwMC0xOS41NC0zLjk2Yy0yNC4yNyAwLTQ0LjAyIDE3LjA5LTQ0LjAyIDM4LjA5IDAgMS4zNS4wOSAyLjczLjI2IDQuMWE3LjQzIDcuNDMgMCAwMS0yLjIzIDYuMjYgMzQuMjEgMzQuMjEgMCAwMC05LjcxIDE2LjUzIDMxLjAzIDMxLjAzIDAgMDAuMDMgMTQuODVjNCAxNi4xMyAyMC42MSAyOC4yNyA0MC40NSAyOC4yN2gxMDAuNjNjMjIuODIgMCA0MS4zOC0xNi4wNSA0MS4zOC0zNS43NiAwLTE0LjQ2LTkuOTgtMjcuNDEtMjUuNDQtMzMiIGZpbGw9IiM0NDkyYTgiLz48L3N2Zz4="},50663:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzE4Ljk0IiBoZWlnaHQ9IjI4OS42MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMjg1LjA0IDEyNy42YTcuNDIgNy40MiAwIDAxLTIuNjQtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzQgMS42Mi0zIC43NS02LjE1LS40NS03LjktM2E2MS4xIDYxLjEgMCAwMC01MC4zMy0yNi40OCA2MC44OSA2MC44OSAwIDAwLTQxLjE4IDE1Ljk4IDYwLjg4IDYwLjg4IDAgMDAtMTkuNiAzOS4xOSA3LjQyIDcuNDIgMCAwMS00LjIgNmMtLjczLjM1LTEuNDcuNzMtMi4yIDEuMTMtLjYyLjM0LTEuMjkuNi0xLjk4Ljc1YTQ3LjQ4IDQ3LjQ4IDAgMDAtMjYuMzUgMTYuMyA0Ni4yOSA0Ni4yOSAwIDAwLTEwLjUxIDI5LjU1YzAgMjUuOTIgMjEuMiA0NyA0Ny4yNyA0N2gxNTcuMzRjMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zMyIgcGFpbnQtb3JkZXI9InN0cm9rZSBmaWxsIG1hcmtlcnMiLz48cGF0aCBkPSJNOTEuOTggMjg3LjFhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjVNMTU0LjE2IDI4Ny4xYTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTIxNi4zNSAyODcuMWE3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMTAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0xMTYuNTggMjU5Ljk3YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xN2E3LjQzIDcuNDMgMCAwMDcuMSA1LjI2TTE3OC43NiAyNTkuOTdhNy40MyA3LjQzIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDEwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMjc4LjMzIDI4Ny4wOWE3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMTAtMTQuMiA0LjM1bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNk0yNDAuNzMgMjU5Ljk1YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1Ii8+PC9nPjxwYXRoIGQ9Ik03OS44Mi0uMDVjLTMuMzcgMS4wMi02LjY5IDIuMi05Ljk2IDMuNTQtNTcuNTUgMjMuNTctODUuMiA4OS41Ni02MS42MyAxNDcuMTIgOC4xOSAyMCAyMS42MSAzNi44NCAzOC44IDQ5LjA3YTYxLjYgNjEuNiAwIDAxLTEwLjgtMzQuODNjMC0xNC4zIDQuOTMtMjguMTMgMTMuOTYtMzkuMjJhNjIuNjYgNjIuNjYgMCAwMTUuOTktNi4zNiAxMjUuODIgMTI1LjgyIDAgMDEtMS42OS03MC4wOUExMjguNDMgMTI4LjQzIDAgMDE3OS44Mi0uMDV6IiBmaWxsPSIjZTFjMDE0Ii8+PC9zdmc+"},53107:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzE4Ljk0IiBoZWlnaHQ9IjI4OS42MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMjg1LjA0IDEyNy42YTcuNDIgNy40MiAwIDAxLTIuNjQtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzQgMS42Mi0zIC43NS02LjE1LS40NS03LjktM2E2MS4xIDYxLjEgMCAwMC01MC4zMy0yNi40OCA2MC44OSA2MC44OSAwIDAwLTQxLjE4IDE1Ljk4IDYwLjg4IDYwLjg4IDAgMDAtMTkuNiAzOS4xOSA3LjQyIDcuNDIgMCAwMS00LjIgNmMtLjczLjM1LTEuNDcuNzMtMi4yIDEuMTMtLjYyLjM0LTEuMjkuNi0xLjk4Ljc1YTQ3LjQ4IDQ3LjQ4IDAgMDAtMjYuMzUgMTYuMyA0Ni4yOSA0Ni4yOSAwIDAwLTEwLjUxIDI5LjU1YzAgMjUuOTIgMjEuMiA0NyA0Ny4yNyA0N2gxNTcuMzRjMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zMyIgcGFpbnQtb3JkZXI9InN0cm9rZSBmaWxsIG1hcmtlcnMiLz48cGF0aCBkPSJNMTE5Ljk1IDI4OS42M2E3LjQxIDcuNDEgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0xODIuMTMgMjg5LjYzYTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45My0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTI0NC4zMiAyODkuNjNhNy40MyA3LjQzIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDEwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjUiLz48L2c+PHBhdGggZD0iTTgwLjY2LS45Qzc3LjI5LjE0IDczLjk3IDEuMzIgNzAuNyAyLjY2IDEzLjE1IDI2LjIyLTE0LjUgOTIuMjEgOS4wNyAxNDkuNzdjOC4xOSAyMCAyMS42MSAzNi44NCAzOC44IDQ5LjA3QTYxLjYgNjEuNiAwIDAxMzcuMDcgMTY0YzAtMTQuMyA0LjkzLTI4LjEzIDEzLjk2LTM5LjIyYTYyLjY2IDYyLjY2IDAgMDE1Ljk5LTYuMzYgMTI1LjgyIDEyNS44MiAwIDAxLTEuNjktNzAuMDlBMTI4LjQzIDEyOC40MyAwIDAxODAuNjYtLjg5eiIgZmlsbD0iI2UxYzAxNCIvPjwvc3ZnPg=="},18138:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzE4Ljk0IiBoZWlnaHQ9IjI4OS42MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMjg1LjA0IDEyNy42YTcuNDIgNy40MiAwIDAxLTIuNjQtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzQgMS42Mi0zIC43NS02LjE1LS40NS03LjktM2E2MS4xIDYxLjEgMCAwMC01MC4zMy0yNi40OCA2MC44OSA2MC44OSAwIDAwLTQxLjE4IDE1Ljk4IDYwLjg4IDYwLjg4IDAgMDAtMTkuNiAzOS4xOSA3LjQyIDcuNDIgMCAwMS00LjIgNmMtLjczLjM1LTEuNDcuNzMtMi4yIDEuMTMtLjYyLjM0LTEuMjkuNi0xLjk4Ljc1YTQ3LjQ4IDQ3LjQ4IDAgMDAtMjYuMzUgMTYuMyA0Ni4yOSA0Ni4yOSAwIDAwLTEwLjUxIDI5LjU1YzAgMjUuOTIgMjEuMiA0NyA0Ny4yNyA0N2gxNTcuMzRjMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zMyIgcGFpbnQtb3JkZXI9InN0cm9rZSBmaWxsIG1hcmtlcnMiLz48cGF0aCBkPSJNMTI1LjAzIDI4Ny45NGE3LjQxIDcuNDEgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0xODcuMjEgMjg3Ljk0YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45My0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTI0OS40IDI4Ny45NGE3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMTAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0xNDkuNjMgMjYwLjhhNy40MyA3LjQzIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE3YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMjExLjgxIDI2MC44YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xN2E3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NSAyOS4xN2E3LjQzIDcuNDMgMCAwMDcuMSA1LjI2Ii8+PC9nPjxwYXRoIGQ9Ik03OS44Mi0uMDVjLTMuMzcgMS4wMi02LjY5IDIuMi05Ljk2IDMuNTQtNTcuNTUgMjMuNTctODUuMiA4OS41Ni02MS42MyAxNDcuMTIgOC4xOSAyMCAyMS42MSAzNi44NCAzOC44IDQ5LjA3YTYxLjYgNjEuNiAwIDAxLTEwLjgtMzQuODNjMC0xNC4zIDQuOTMtMjguMTMgMTMuOTYtMzkuMjJhNjIuNjYgNjIuNjYgMCAwMTUuOTktNi4zNiAxMjUuODIgMTI1LjgyIDAgMDEtMS42OS03MC4wOUExMjguNDMgMTI4LjQzIDAgMDE3OS44Mi0uMDV6IiBmaWxsPSIjZTFjMDE0Ii8+PC9zdmc+"},53748:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjM4LjMiIGhlaWdodD0iMjI4LjU3IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiM2MWM5ZTciPjxwYXRoIGQ9Ik05MS42NCA2Ni41NEw4Ni40NiA4NS45bDE4LjUyLTcuNjYgMTYuOCAxMC45MS0xLjU1LTE5Ljk3IDE1LjU3LTEyLjYyLTE5LjQ4LTQuNjktNy4xOS0xOC43LTEwLjQ4IDE3LjA3LTIwLjAxIDEuMDQgMTMgMTUuMjZNMTc2Ljc5IDQ1LjQ2bC03LjY3LTEwLjMtMy41MSAxMi4zNS0xMi4xNyA0LjEgMTAuNjYgNy4xNi4xNCAxMi44NCAxMC4xLTcuOTIgMTIuMjcgMy44My00LjQyLTEyLjA2IDcuNDMtMTAuNDgtMTIuODMuNDgiLz48cGF0aCBkPSJNMjEyLjE3IDE1NS42NGE1LjI1IDUuMjUgMCAwMS0xLjg3LTIuNzMgMzkuNTIgMzkuNTIgMCAwMC0zNy43OS0yOC4zOGMtMy4yIDAtNi40LjM5LTkuNSAxLjE2YTUuMjkgNS4yOSAwIDAxLTUuNjMtMi4xNCA0My41IDQzLjUgMCAwMC02NS4xNC03LjQ4IDQzLjM1IDQzLjM1IDAgMDAtMTMuOTUgMjcuOSA1LjMgNS4zIDAgMDEtMyA0LjI4Yy0uNTIuMjQtMS4wNC41MS0xLjU2LjgtLjQ0LjI0LS45MS40Mi0xLjQuNTNhMzMuODQgMzMuODQgMCAwMC0xOC43NyAxMS42IDMyLjk5IDMyLjk5IDAgMDAtNy40OCAyMS4wNWMwIDE4LjQ0IDE1LjEgMzMuNDUgMzMuNjUgMzMuNDVoMTEyYzE4LjU2IDAgMzMuNjYtMTUgMzMuNjYtMzMuNDVhMzMuMiAzMy4yIDAgMDAtMTMuMjItMjYuNTkiIHBhaW50LW9yZGVyPSJzdHJva2UgZmlsbCBtYXJrZXJzIi8+PC9nPjxwYXRoIGQ9Ik04Mi45LS4zM2ExMTcuNjIgMTE3LjYyIDAgMDAtMTAuMyAzLjY3QzEzLjA2IDI3LjczLTE1LjU1IDk2IDguODQgMTU1LjU0YTExNi40MyAxMTYuNDMgMCAwMDI2LjM2IDM5LjI0IDQ1LjYyIDQ1LjYyIDAgMDEtMS44Ny0xMi45QTQ2LjMgNDYuMyAwIDAxNDMuNyAxNTIuN2wuMDEtLjAxYTQ2LjU5IDQ2LjU5IDAgMDEyMC41Mi0xNC40N0ExMzAuNCAxMzAuNCAwIDAxNTYuNyA1MC42IDEzMi44OCAxMzIuODggMCAwMTgyLjktLjMyeiIgZmlsbD0iI2UxYzAxNCIvPjwvc3ZnPg=="},26625:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjM4LjMiIGhlaWdodD0iMjI4LjU3IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiM2MWM5ZTciPjxwYXRoIGQ9Ik05OC40MyAxMDIuMTJsLTUuMTkgMTkuMzYgMTguNTMtNy42NSAxNi44IDEwLjktMS41Ni0xOS45NyAxNS41OC0xMi42MS0xOS40OS00LjctNy4xOC0xOC43LTEwLjQ4IDE3LjA4LTIwLjAyIDEuMDQgMTMuMDEgMTUuMjVNMTc2Ljc5IDQ1LjQ2bC03LjY3LTEwLjMtMy41MSAxMi4zNS0xMi4xNyA0LjEgMTAuNjYgNy4xNi4xNCAxMi44NCAxMC4xLTcuOTIgMTIuMjcgMy44My00LjQyLTEyLjA2IDcuNDMtMTAuNDgtMTIuODMuNDgiLz48cGF0aCBkPSJNMjIwLjc2IDE3OS41OWEzLjUzIDMuNTMgMCAwMS0xLjI2LTEuODQgMjYuNTQgMjYuNTQgMCAwMC0zMS43Ni0xOC4yOCAzLjU1IDMuNTUgMCAwMS0zLjc4LTEuNDQgMjkuMjEgMjkuMjEgMCAwMC01My4xMiAxMy43MiAzLjU2IDMuNTYgMCAwMS0yIDIuODdjLS4zNi4xNy0uNzEuMzUtMS4wNi41NC0uMy4xNi0uNjEuMjgtLjk1LjM1YTIyLjczIDIyLjczIDAgMDAtMTIuNiA3LjggMjIuMTUgMjIuMTUgMCAwMC01LjAyIDE0LjEzIDIyLjU2IDIyLjU2IDAgMDAyMi42IDIyLjQ3aDc1LjIzYTIyLjU2IDIyLjU2IDAgMDAyMi42LTIyLjQ3IDIyLjMgMjIuMyAwIDAwLTguODgtMTcuODUiIHBhaW50LW9yZGVyPSJzdHJva2UgZmlsbCBtYXJrZXJzIi8+PC9nPjxwYXRoIGQ9Ik04Mi40Ny0uMDJhMTE3LjYyIDExNy42MiAwIDAwLTEwLjMgMy42N0MxMi42MyAyOC4wMy0xNS45NyA5Ni4zIDguNDEgMTU1Ljg1YTExNS45MSAxMTUuOTEgMCAwMDYyLjkgNjMuNCAxMTYuMTggMTE2LjE4IDAgMDA1NC4zOSA4LjczYy0xNC40LTIuNzQtMjUuNDUtMTUuNDQtMjUuNDUtMzAuNTcgMC0zLjQ2LjU5LTYuODYgMS43LTEwLjA5YTEzMC40MiAxMzAuNDIgMCAwMS00MC4xMi01My4zNSAxMzAuNCAxMzAuNCAwIDAxLTUuNTYtODMuMDZBMTMyLjg4IDEzMi44OCAwIDAxODIuNDctLjAyeiIgZmlsbD0iI2UxYzAxNCIvPjwvc3ZnPg=="},87760:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTg5LjYzIiBoZWlnaHQ9IjIyOC40IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik02Mi4xMSAxMzRhMTMwLjQgMTMwLjQgMCAwMS01LjU1LTgzLjA1QTEzMi44OSAxMzIuODkgMCAwMTgyLjc2IDBhMTE3LjY0IDExNy42NCAwIDAwLTEwLjMgMy42N0MxMi45MiAyOC4wNy0xNS43IDk2LjM0IDguNyAxNTUuODhhMTE1LjkxIDExNS45MSAwIDAwNjIuODkgNjMuNCAxMTUuOTMgMTE1LjkzIDAgMDA4OS4zLjM2YzMuMzktMS4zOSA2LjctMi45MiA5LjkyLTQuNjJhMTMyLjY2IDEzMi42NiAwIDAxLTU0LjQtMTcuOTIgMTMwLjQ1IDEzMC40NSAwIDAxLTU0LjMtNjMuMSIgZmlsbD0iI2UxYzAxNCIvPjxwYXRoIGQ9Ik0xMjIuMTUgMTIzLjNsLTUuMTkgMTkuMzcgMTguNTItNy42NSAxNi44MSAxMC45LTEuNTYtMTkuOTcgMTUuNTgtMTIuNjEtMTkuNDktNC43LTcuMTgtMTguNy0xMC40OCAxNy4wOC0yMC4wMiAxLjA0IDEzLjAxIDE1LjI1TTE3Ni43OSA0NS40NmwtNy42Ny0xMC4zLTMuNTEgMTIuMzUtMTIuMTcgNC4xIDEwLjY2IDcuMTYuMTQgMTIuODQgMTAuMS03LjkyIDEyLjI3IDMuODMtNC40Mi0xMi4wNiA3LjQzLTEwLjQ4LTEyLjgzLjQ4IiBmaWxsPSIjNjFjOWU3Ii8+PC9zdmc+"},37837:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUxLjg3IiBoZWlnaHQ9IjIyMy40NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDcuMjYgMTU1LjlIMjA0LjZjMjYuMDYgMCA0Ny4yNy0yMS4xIDQ3LjI3LTQ3YTQ2LjYgNDYuNiAwIDAwLTE4LjU2LTM3LjM0IDcuNDMgNy40MyAwIDAxLTIuNjQtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzQgMS42Mi0zIC43NC02LjE1LS40NS03LjktM0E2MS4xIDYxLjEgMCAwMDEwNi4wMSAwYTYwLjg5IDYwLjg5IDAgMDAtNDEuMTggMTUuOTggNjAuODggNjAuODggMCAwMC0xOS42IDM5LjE5IDcuNDIgNy40MiAwIDAxLTQuMiA2Yy0uNzQuMzUtMS40OC43My0yLjIgMS4xMy0uNjIuMzQtMS4yOS42LTEuOTguNzVhNDcuNDcgNDcuNDcgMCAwMC0yNi4zNSAxNi4zQTQ2LjMgNDYuMyAwIDAwMCAxMDguOWMwIDI1LjkyIDIxLjIgNDcgNDcuMjYgNDciIGZpbGw9IiM0NDkyYTgiLz48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNNTUuNTUgMTc5Ljc0YTcuNDIgNy40MiAwIDAwLTQuOTIgOS4yOGw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDEwMTQuMi00LjM1bC04Ljk0LTI5LjE3YTcuNDIgNy40MiAwIDAwLTkuMjgtNC45M00xMTcuNzQgMTc5Ljc0YTcuNDMgNy40MyAwIDAwLTQuOTMgOS4yOGw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwMTQuMi00LjM1bC04Ljk0LTI5LjE3YTcuNDMgNy40MyAwIDAwLTkuMjctNC45M00xNzkuOTIgMTc5Ljc0YTcuNDMgNy40MyAwIDAwLTQuOTIgOS4yOGw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwMTQuMi00LjM1bC04Ljk0LTI5LjE3YTcuNDMgNy40MyAwIDAwLTkuMjgtNC45MyIvPjwvZz48L3N2Zz4="},53254:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzA3LjE5IiBoZWlnaHQ9IjI5MS4zMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTUuNTcgOTIuNTRjMCA5LjI3IDMuNDMgMTguMDIgOS41NCAyNC43NmE2Mi4zNiA2Mi4zNiAwIDAxMjEuMjItMTAuMzggNzUuNzIgNzUuNzIgMCAwMTI1LjYxLTQ1LjggMzYuOTcgMzYuOTcgMCAwMC01Ni4zNyAzMS40IiBmaWxsPSIjZGVjNjBmIi8+PGcgZmlsbD0iIzYxYzllNyI+PHBhdGggZD0iTTI4OC42IDEyOS4zYTcuNDIgNy40MiAwIDAxLTIuNjMtMy44NUE1NS41IDU1LjUgMCAwMDIzMi45IDg1LjZjLTQuNSAwLTkgLjU0LTEzLjM0IDEuNjItMyAuNzUtNi4xNS0uNDUtNy45LTNhNjEuMSA2MS4xIDAgMDAtNTAuMzMtMjYuNDggNjAuODkgNjAuODkgMCAwMC00MS4xOCAxNS45OCA2MC44OCA2MC44OCAwIDAwLTE5LjYgMzkuMTkgNy40MiA3LjQyIDAgMDEtNC4yIDZjLS43My4zNS0xLjQ3LjczLTIuMiAxLjEzLS42Mi4zNC0xLjI5LjYtMS45OC43NWE0Ny40OCA0Ny40OCAwIDAwLTI2LjM1IDE2LjMgNDYuMjkgNDYuMjkgMCAwMC0xMC41MSAyOS41NWMwIDI1LjkyIDIxLjIgNDcgNDcuMjcgNDdIMjU5LjljMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zM005NS4zNSAyNjMuNzdhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjVNMTU3LjUzIDI2My43N2E3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0yMTkuNzIgMjYzLjc3YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1Ii8+PC9nPjxnIGZpbGw9IiNkZWM2MGYiPjxwYXRoIGQ9Ik04NS4wOCA3LjQ1djIwLjg5YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDEwLTE0Ljg1IDBNNjAuNDEgNDQuMzZhNy40MyA3LjQzIDAgMDA2LjQyLTExLjE0TDU2LjQgMTUuMTJhNy40MyA3LjQzIDAgMDAtMTIuODYgNy40NGwxMC40NSAxOC4wOWE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU00MC42MSA1NEwyMi41MiA0My41NmE3LjQzIDcuNDMgMCAxMC03LjQzIDEyLjg2bDE4LjEgMTAuNDVBNy40MyA3LjQzIDAgMDA0MC42MiA1NE0zNS43MyA5Mi41NGMwLTQuMS0zLjMyLTcuNDMtNy40Mi03LjQzSDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMjAuOWM0LjEgMCA3LjQyLTMuMzIgNy40Mi03LjQyTTQwLjYxIDEzMS4wN2E3LjQzIDcuNDMgMCAxMC03LjQyLTEyLjg2bC0xOC4xIDEwLjQ0YTcuNDMgNy40MyAwIDEwNy40MyAxMi44N2wxOC4xLTEwLjQ1TTEyMC45IDQzLjM2YTcuNDIgNy40MiAwIDAwMTAuMTUtMi43MmwxMC40My0xOC4wOWE3LjQzIDcuNDMgMCAwMC0xMi44Ni03LjQybC0xMC40NSAxOC4xYTcuNDMgNy40MyAwIDAwMi43MiAxMC4xMyIvPjwvZz48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMTk0LjQxIDI5MC41OWE3LjQxIDcuNDEgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNk0xMzIuNyAyODkuMzlhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk1LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMjgwLjE3IDI2MS42YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTI1NC44NiAyODguNDFhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjUiLz48L2c+PC9zdmc+"},14593:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzA3LjE5IiBoZWlnaHQ9IjI5MS4zMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTUuNTcgOTIuNTRjMCA5LjI3IDMuNDMgMTguMDIgOS41NCAyNC43NmE2Mi4zNiA2Mi4zNiAwIDAxMjEuMjItMTAuMzggNzUuNzIgNzUuNzIgMCAwMTI1LjYxLTQ1LjggMzYuOTcgMzYuOTcgMCAwMC01Ni4zNyAzMS40IiBmaWxsPSIjZGVjNjBmIi8+PGcgZmlsbD0iIzYxYzllNyI+PHBhdGggZD0iTTI4OC42IDEyOS4zYTcuNDIgNy40MiAwIDAxLTIuNjMtMy44NUE1NS41IDU1LjUgMCAwMDIzMi45IDg1LjZjLTQuNSAwLTkgLjU0LTEzLjM0IDEuNjItMyAuNzUtNi4xNS0uNDUtNy45LTNhNjEuMSA2MS4xIDAgMDAtNTAuMzMtMjYuNDggNjAuODkgNjAuODkgMCAwMC00MS4xOCAxNS45OCA2MC44OCA2MC44OCAwIDAwLTE5LjYgMzkuMTkgNy40MiA3LjQyIDAgMDEtNC4yIDZjLS43My4zNS0xLjQ3LjczLTIuMiAxLjEzLS42Mi4zNC0xLjI5LjYtMS45OC43NWE0Ny40OCA0Ny40OCAwIDAwLTI2LjM1IDE2LjMgNDYuMjkgNDYuMjkgMCAwMC0xMC41MSAyOS41NWMwIDI1LjkyIDIxLjIgNDcgNDcuMjcgNDdIMjU5LjljMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zM00xMjMuNTIgMjkxLjMzYTcuNDEgNy40MSAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTE4NS43IDI5MS4zM2E3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTMtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0yNDcuODkgMjkxLjMzYTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1Ii8+PC9nPjxnIGZpbGw9IiNkZWM2MGYiPjxwYXRoIGQ9Ik04NS4wOCA3LjQ1djIwLjg5YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDEwLTE0Ljg1IDBNNjAuNDEgNDQuMzZhNy40MyA3LjQzIDAgMDA2LjQyLTExLjE0TDU2LjQgMTUuMTJhNy40MyA3LjQzIDAgMDAtMTIuODYgNy40NGwxMC40NSAxOC4wOWE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU00MC42MSA1NEwyMi41MiA0My41NmE3LjQzIDcuNDMgMCAxMC03LjQzIDEyLjg2bDE4LjEgMTAuNDVBNy40MyA3LjQzIDAgMDA0MC42MiA1NE0zNS43MyA5Mi41NGMwLTQuMS0zLjMyLTcuNDMtNy40Mi03LjQzSDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMjAuOWM0LjEgMCA3LjQyLTMuMzIgNy40Mi03LjQyTTQwLjYxIDEzMS4wN2E3LjQzIDcuNDMgMCAxMC03LjQyLTEyLjg2bC0xOC4xIDEwLjQ0YTcuNDMgNy40MyAwIDEwNy40MyAxMi44N2wxOC4xLTEwLjQ1TTEyMC45IDQzLjM2YTcuNDIgNy40MiAwIDAwMTAuMTUtMi43MmwxMC40My0xOC4wOWE3LjQzIDcuNDMgMCAwMC0xMi44Ni03LjQybC0xMC40NSAxOC4xYTcuNDMgNy40MyAwIDAwMi43MiAxMC4xMyIvPjwvZz48L3N2Zz4="},97251:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzA3LjE5IiBoZWlnaHQ9IjI5MS4zMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTUuNTcgOTIuNTRjMCA5LjI3IDMuNDMgMTguMDIgOS41NCAyNC43NmE2Mi4zNiA2Mi4zNiAwIDAxMjEuMjItMTAuMzggNzUuNzIgNzUuNzIgMCAwMTI1LjYxLTQ1LjggMzYuOTcgMzYuOTcgMCAwMC01Ni4zNyAzMS40IiBmaWxsPSIjZGVjNjBmIi8+PGcgZmlsbD0iIzYxYzllNyI+PHBhdGggZD0iTTI4OC42IDEyOS4zYTcuNDIgNy40MiAwIDAxLTIuNjMtMy44NUE1NS41IDU1LjUgMCAwMDIzMi45IDg1LjZjLTQuNSAwLTkgLjU0LTEzLjM0IDEuNjItMyAuNzUtNi4xNS0uNDUtNy45LTNhNjEuMSA2MS4xIDAgMDAtNTAuMzMtMjYuNDggNjAuODkgNjAuODkgMCAwMC00MS4xOCAxNS45OCA2MC44OCA2MC44OCAwIDAwLTE5LjYgMzkuMTkgNy40MiA3LjQyIDAgMDEtNC4yIDZjLS43My4zNS0xLjQ3LjczLTIuMiAxLjEzLS42Mi4zNC0xLjI5LjYtMS45OC43NWE0Ny40OCA0Ny40OCAwIDAwLTI2LjM1IDE2LjMgNDYuMjkgNDYuMjkgMCAwMC0xMC41MSAyOS41NWMwIDI1LjkyIDIxLjIgNDcgNDcuMjcgNDdIMjU5LjljMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zM00xMTYuOTIgMjY0Ljk3YTcuNDEgNy40MSAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTE3OS4xIDI2NC45N2E3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTMtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0yNDEuMjkgMjY0Ljk3YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1Ii8+PC9nPjxnIGZpbGw9IiNkZWM2MGYiPjxwYXRoIGQ9Ik04NS4wOCA3LjQ1djIwLjg5YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDEwLTE0Ljg1IDBNNjAuNDEgNDQuMzZhNy40MyA3LjQzIDAgMDA2LjQyLTExLjE0TDU2LjQgMTUuMTJhNy40MyA3LjQzIDAgMDAtMTIuODYgNy40NGwxMC40NSAxOC4wOWE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU00MC42MSA1NEwyMi41MiA0My41NmE3LjQzIDcuNDMgMCAxMC03LjQzIDEyLjg2bDE4LjEgMTAuNDVBNy40MyA3LjQzIDAgMDA0MC42MiA1NE0zNS43MyA5Mi41NGMwLTQuMS0zLjMyLTcuNDMtNy40Mi03LjQzSDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMjAuOWM0LjEgMCA3LjQyLTMuMzIgNy40Mi03LjQyTTQwLjYxIDEzMS4wN2E3LjQzIDcuNDMgMCAxMC03LjQyLTEyLjg2bC0xOC4xIDEwLjQ0YTcuNDMgNy40MyAwIDEwNy40MyAxMi44N2wxOC4xLTEwLjQ1TTEyMC45IDQzLjM2YTcuNDIgNy40MiAwIDAwMTAuMTUtMi43MmwxMC40My0xOC4wOWE3LjQzIDcuNDMgMCAwMC0xMi44Ni03LjQybC0xMC40NSAxOC4xYTcuNDMgNy40MyAwIDAwMi43MiAxMC4xMyIvPjwvZz48cGF0aCBkPSJNMjE1Ljk4IDI5MS43OWE3LjQxIDcuNDEgMCAwMDcuMS05LjZMMjE0LjE1IDI1M2E3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NSAyOS4xN2E3LjQzIDcuNDMgMCAwMDcuMSA1LjI2TTE1NC4yNyAyOTAuNTlhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjYiIGZpbGw9IiM2MWM5ZTciLz48L3N2Zz4="},16767:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzA3LjE5IiBoZWlnaHQ9IjIxMy42MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjg4LjYgMTI5LjM3YTcuMzggNy4zOCAwIDAxLTIuNjMtMy44NCA1NS41MSA1NS41MSAwIDAwLTUzLjA4LTM5Ljg3Yy00LjUgMC05IC41NS0xMy4zNCAxLjYzLTMgLjc1LTYuMTUtLjQ1LTcuOS0zYTYxLjEgNjEuMSAwIDAwLTkxLjUxLTEwLjUgNjAuODkgNjAuODkgMCAwMC0xOS42IDM5LjIgNy40NCA3LjQ0IDAgMDEtNC4yIDZjLS43My4zNC0xLjQ3LjcxLTIuMiAxLjExLS42Mi4zNS0xLjI5LjYtMS45OC43NWE0Ny41NCA0Ny41NCAwIDAwLTI2LjM1IDE2LjMgNDYuMzMgNDYuMzMgMCAwMC0xMC41MSAyOS41NmMwIDI1LjkyIDIxLjIgNDcgNDcuMjcgNDdIMjU5LjljMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42MyA0Ni42MyAwIDAwLTE4LjU2LTM3LjM0IiBmaWxsPSIjNjFjOWU3Ii8+PGcgZmlsbD0iI2RlYzYwZiI+PHBhdGggZD0iTTU1LjU3IDkyLjU3YTM2LjcgMzYuNyAwIDAwOS41NCAyNC43NiA2Mi4zNiA2Mi4zNiAwIDAxMjEuMjItMTAuMzkgNzUuNjggNzUuNjggMCAwMTI1LjYxLTQ1Ljc4IDM2Ljk3IDM2Ljk3IDAgMDAtNTYuMzcgMzEuNDFNOTIuNSAzNS43N2M0LjEgMCA3LjQzLTMuMzMgNy40My03LjQzVjcuNDVhNy40MiA3LjQyIDAgMTAtMTQuODUgMHYyMC45YzAgNC4wOSAzLjMzIDcuNDIgNy40MyA3LjQyTTUzLjk3IDQwLjdhNy40MiA3LjQyIDAgMTAxMi44Ny03LjQybC0xMC40NS0xOC4xYTcuNDMgNy40MyAwIDAwLTEyLjg2IDcuNDNsMTAuNDQgMTguMU0xNS4xIDU2LjQ0bDE4LjA5IDEwLjQ1YTcuNDcgNy40NyAwIDAwMTAuMTQtMi43MiA3LjQzIDcuNDMgMCAwMC0yLjcxLTEwLjE1bC0xOC4xLTEwLjQ1YTcuNDMgNy40MyAwIDAwLTcuNDMgMTIuODdNNy40MiAxMDAuMDRIMjguM2E3LjQzIDcuNDMgMCAwMDAtMTQuODZINy40MWE3LjQyIDcuNDIgMCAxMDAgMTQuODZNNDMuMzMgMTIwLjk3YTcuNDIgNy40MiAwIDAwLTEwLjE0LTIuNzJsLTE4LjEgMTAuNDRhNy40MyA3LjQzIDAgMDA3LjQzIDEyLjg2bDE4LjEtMTAuNDRhNy40MyA3LjQzIDAgMDAyLjcxLTEwLjE0TTEyMC45IDQzLjM3YTcuNDIgNy40MiAwIDAwMTAuMTUtMi43MmwxMC40My0xOC4xYTcuNDMgNy40MyAwIDAwLTEyLjg2LTcuNDJsLTEwLjQ1IDE4LjFhNy40MyA3LjQzIDAgMDAyLjcyIDEwLjE0Ii8+PC9nPjwvc3ZnPg=="},74351:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgwLjUiIGhlaWdodD0iMjgwLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI1NyAyMTkuNzRhNC4zIDQuMyAwIDAxLTEuNTMtMi4yNCAzMi4zOCAzMi4zOCAwIDAwLTMwLjk2LTIzLjI2Yy0yLjYzIDAtNS4yNS4zMi03Ljc4Ljk1YTQuMzMgNC4zMyAwIDAxLTQuNjEtMS43NSAzNS42MyAzNS42MyAwIDAwLTUzLjM4LTYuMTMgMzUuNTIgMzUuNTIgMCAwMC0xMS40MyAyMi44NyA0LjM0IDQuMzQgMCAwMS0yLjQ1IDMuNWMtLjQyLjItLjg2LjQyLTEuMjguNjUtLjM2LjItLjc1LjM1LTEuMTUuNDRhMjcuNzMgMjcuNzMgMCAwMC0xNS4zNyA5LjUgMjcuMDMgMjcuMDMgMCAwMC02LjEzIDE3LjI1IDI3LjUyIDI3LjUyIDAgMDAyNy41NiAyNy40aDkxLjc3YzE1LjIgMCAyNy41Ny0xMi4yOSAyNy41Ny0yNy40YTI3LjIgMjcuMiAwIDAwLTEwLjgyLTIxLjc4IiBmaWxsPSIjNjFjOWU3IiBwYWludC1vcmRlcj0ic3Ryb2tlIGZpbGwgbWFya2VycyIvPjxnIGZpbGw9IiNkZWM2MGYiPjxwYXRoIGQ9Ik0xNDAuMiA3MC43M0E2OS44NiA2OS44NiAwIDAwNzAuNCAxNDAuNWMwIDMzLjMzIDIzLjUgNjEuMjcgNTQuOCA2OC4xNGE0MC42IDQwLjYgMCAwMTEwLjAzLTUuMSA0OC42MSA0OC42MSAwIDAxMTQuNy0yNS41OGguMDFhNDguNTkgNDguNTkgMCAwMTUzLjUtOC4wNSA2OS4zNSA2OS4zNSAwIDAwNi41Mi0yOS40MSA2OS44NiA2OS44NiAwIDAwLTY5Ljc4LTY5Ljc4em0tLjkgMTMxLjQ0bC0uMS4wNC0uMDQuMDMuMTMtLjA3ek0xMzIuOCAzOC45YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDAwLTE0Ljg1IDBWMzguOU04OS41NCA1OS45MWE3LjQzIDcuNDMgMCAwMDYuNDMtMTEuMTRMODAuMjQgMjEuNTNhNy40MyA3LjQzIDAgMDAtMTIuODYgNy40M0w4My4xIDU2LjJhNy40MiA3LjQyIDAgMDA2LjQzIDMuNzFNMTguNzYgNzAuMTRhNy40MyA3LjQzIDAgMDAyLjcyIDEwLjE1TDQ4LjcyIDk2YTcuNDIgNy40MiAwIDEwNy40My0xMi44NkwyOC45IDY3LjQyYTcuNDMgNy40MyAwIDAwLTEwLjE0IDIuNzJNNDYuMjggMTQwLjI3YzAtNC4xLTMuMzMtNy40Mi03LjQzLTcuNDJINy40YTcuNDMgNy40MyAwIDAwMCAxNC44NWgzMS40NmM0LjEgMCA3LjQzLTMuMzMgNy40My03LjQzTTI3My4wNSAxMzIuODVoLTMxLjQ2YTcuNDMgNy40MyAwIDAwMCAxNC44NWgzMS40NmE3LjQzIDcuNDMgMCAwMDAtMTQuODVNNDguNzMgMTg0LjUxTDIxLjUgMjAwLjI0YTcuNDMgNy40MyAwIDEwNy40MiAxMi44NmwyNy4yNS0xNS43M2E3LjQzIDcuNDMgMCAwMC03LjQzLTEyLjg2TTI1MS41NCA2Ny40MkwyMjQuMyA4My4xNUE3LjQzIDcuNDMgMCAwMDIzMS43MiA5NmwyNy4yNC0xNS43M2E3LjQzIDcuNDMgMCAwMC03LjQyLTEyLjg2TTgzLjEgMjI0LjM0bC0xNS43MyAyNy4yNGE3LjQzIDcuNDMgMCAwMDEyLjg3IDcuNDNsMTUuNzMtMjcuMjVhNy40MyA3LjQzIDAgMDAtMTIuODctNy40Mk0xODcuMiA1OC45MWE3LjQgNy40IDAgMDAxMC4xNC0yLjcxbDE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDEwLTEyLjg2LTcuNDJsLTE1LjczIDI3LjI0YTcuNDMgNy40MyAwIDAwMi43MSAxMC4xNCIvPjwvZz48L3N2Zz4="},71211:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgwLjUiIGhlaWdodD0iMjgwLjUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjZGVjNjBmIj48cGF0aCBkPSJNMTQwLjIyIDIxMC4wNGMzOC40OCAwIDY5Ljc4LTMxLjMgNjkuNzgtNjkuNzhzLTMxLjMtNjkuNzgtNjkuNzgtNjkuNzhjLTM4LjQ3IDAtNjkuNzggMzEuMy02OS43OCA2OS43OHMzMS4zIDY5Ljc4IDY5Ljc4IDY5Ljc4TTEzMi44IDM4LjlhNy40MyA3LjQzIDAgMDAxNC44NSAwVjcuNDRhNy40MyA3LjQzIDAgMDAtMTQuODUgMFYzOC45TTEzMi44IDI0MS42M3YzMS40NmE3LjQzIDcuNDMgMCAwMDE0Ljg1IDB2LTMxLjQ2YTcuNDMgNy40MyAwIDAwLTE0Ljg1IDBNODkuNTQgNTkuOTFhNy40MyA3LjQzIDAgMDA2LjQzLTExLjE0TDgwLjI0IDIxLjUzYTcuNDMgNy40MyAwIDAwLTEyLjg2IDcuNDNMODMuMSA1Ni4yYTcuNDIgNy40MiAwIDAwNi40MyAzLjcxTTE4Ny4yIDIyMS42MmE3LjQzIDcuNDMgMCAwMC0yLjcyIDEwLjE0TDIwMC4yIDI1OWE3LjQyIDcuNDIgMCAxMDEyLjg2LTcuNDJsLTE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDAwLTEwLjE1LTIuNzFNMTguNzYgNzAuMTRhNy40MyA3LjQzIDAgMDAyLjcyIDEwLjE1TDQ4LjcyIDk2YTcuNDIgNy40MiAwIDEwNy40My0xMi44NkwyOC45IDY3LjQyYTcuNDMgNy40MyAwIDAwLTEwLjE0IDIuNzJNMjU4Ljk3IDIwMC4yNGwtMjcuMjUtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40MiAxMi44N2wyNy4yNCAxNS43M2E3LjQgNy40IDAgMDAxMC4xNC0yLjcyIDcuNDMgNy40MyAwIDAwLTIuNzEtMTAuMTVNNDYuMjggMTQwLjI3YzAtNC4xLTMuMzMtNy40Mi03LjQzLTcuNDJINy40YTcuNDMgNy40MyAwIDAwMCAxNC44NWgzMS40NmM0LjEgMCA3LjQzLTMuMzMgNy40My03LjQzTTI3My4wNSAxMzIuODVoLTMxLjQ2YTcuNDMgNy40MyAwIDAwMCAxNC44NWgzMS40NmE3LjQzIDcuNDMgMCAwMDAtMTQuODVNNDguNzMgMTg0LjUxTDIxLjUgMjAwLjI0YTcuNDMgNy40MyAwIDEwNy40MiAxMi44NmwyNy4yNS0xNS43M2E3LjQzIDcuNDMgMCAwMC03LjQzLTEyLjg2TTI1MS41NCA2Ny40MkwyMjQuMyA4My4xNUE3LjQzIDcuNDMgMCAwMDIzMS43MiA5NmwyNy4yNC0xNS43M2E3LjQzIDcuNDMgMCAwMC03LjQyLTEyLjg2TTgzLjEgMjI0LjM0bC0xNS43MyAyNy4yNGE3LjQzIDcuNDMgMCAwMDEyLjg3IDcuNDNsMTUuNzMtMjcuMjVhNy40MyA3LjQzIDAgMDAtMTIuODctNy40Mk0xODcuMiA1OC45MWE3LjQgNy40IDAgMDAxMC4xNC0yLjcxbDE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDEwLTEyLjg2LTcuNDJsLTE1LjczIDI3LjI0YTcuNDMgNy40MyAwIDAwMi43MSAxMC4xNCIgZmlsbD0iI2RlYzYwZiIvPjwvZz48L3N2Zz4K"}},u={};function e(M){var t=u[M];if(void 0!==t)return t.exports;var N=u[M]={id:M,loaded:!1,exports:{}};return n[M].call(N.exports,N,N.exports,e),N.loaded=!0,N.exports}e.m=n,e.amdD=function(){throw new Error("define cannot be used indirect")},e.amdO={},M=[],e.O=function(t,n,u,N){if(!n){var A=1/0;for(r=0;r<M.length;r++){n=M[r][0],u=M[r][1],N=M[r][2];for(var j=!0,i=0;i<n.length;i++)(!1&N||A>=N)&&Object.keys(e.O).every((function(M){return e.O[M](n[i])}))?n.splice(i--,1):(j=!1,N<A&&(A=N));if(j){M.splice(r--,1);var D=u();void 0!==D&&(t=D)}}return t}N=N||0;for(var r=M.length;r>0&&M[r-1][2]>N;r--)M[r]=M[r-1];M[r]=[n,u,N]},e.n=function(M){var t=M&&M.__esModule?function(){return M.default}:function(){return M};return e.d(t,{a:t}),t},e.d=function(M,t){for(var n in t)e.o(t,n)&&!e.o(M,n)&&Object.defineProperty(M,n,{enumerable:!0,get:t[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(M){if("object"==typeof window)return window}}(),e.o=function(M,t){return Object.prototype.hasOwnProperty.call(M,t)},e.r=function(M){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(M,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(M,"__esModule",{value:!0})},e.nmd=function(M){return M.paths=[],M.children||(M.children=[]),M},e.j=5275,function(){e.b=document.baseURI||self.location.href;var M={5275:0};e.O.j=function(t){return 0===M[t]};var t=function(t,n){var u,N,A=n[0],j=n[1],i=n[2],D=0;if(A.some((function(t){return 0!==M[t]}))){for(u in j)e.o(j,u)&&(e.m[u]=j[u]);if(i)var r=i(e)}for(t&&t(n);D<A.length;D++)N=A[D],e.o(M,N)&&M[N]&&M[N][0](),M[N]=0;return e.O(r)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var N=e.O(void 0,[7874],(function(){return e(59464)}));N=e.O(N)}();
-//# sourceMappingURL=weather_status-weather-status.js.map?v=202c9866f5153d574cba \ No newline at end of file
+!function(){var M,n={76149:function(M,n,u){"use strict";var e=u(20144),N=u(22200),A=u(26932),j=u(80351),i=u.n(j),D=u(9944),r=u(79440),L=u.n(r),g=u(56286),I=u.n(g),a=u(88408),y=u.n(a),s=u(74466),c=u.n(s),o=u(33521),T=u.n(o),w=u(41009),C=u.n(w),z=u(4820),x=u(79753);function E(M,t,n,u,e,N,A){try{var j=M[N](A),i=j.value}catch(M){return void n(M)}j.done?t(i):Promise.resolve(i).then(u,e)}function l(M){return function(){var t=this,n=arguments;return new Promise((function(u,e){var N=M.apply(t,n);function A(M){E(N,u,e,A,j,"next",M)}function j(M){E(N,u,e,A,j,"throw",M)}A(void 0)}))}}var h=function(){var M=l(regeneratorRuntime.mark((function M(t,n){var u,e;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return u=(0,x.generateOcsUrl)("apps/weather_status/api/v1/location"),M.next=3,z.default.put(u,{address:"",lat:t,lon:n});case 3:return e=M.sent,M.abrupt("return",e.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(t,n){return M.apply(this,arguments)}}(),d=function(){var M=l(regeneratorRuntime.mark((function M(t){var n,u;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return n=(0,x.generateOcsUrl)("apps/weather_status/api/v1/location"),M.next=3,z.default.put(n,{address:t,lat:null,lon:null});case 3:return u=M.sent,M.abrupt("return",u.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(t){return M.apply(this,arguments)}}(),O=function(){var M=l(regeneratorRuntime.mark((function M(t){var n,u;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return n=(0,x.generateOcsUrl)("apps/weather_status/api/v1/mode"),M.next=3,z.default.put(n,{mode:t});case 3:return u=M.sent,M.abrupt("return",u.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(t){return M.apply(this,arguments)}}(),Q=function(){var M=l(regeneratorRuntime.mark((function M(){var t,n;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return t=(0,x.generateOcsUrl)("apps/weather_status/api/v1/use-personal"),M.next=3,z.default.put(t);case 3:return n=M.sent,M.abrupt("return",n.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(){return M.apply(this,arguments)}}(),S=function(){var M=l(regeneratorRuntime.mark((function M(){var t,n;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return t=(0,x.generateOcsUrl)("apps/weather_status/api/v1/location"),M.next=3,z.default.get(t);case 3:return n=M.sent,M.abrupt("return",n.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(){return M.apply(this,arguments)}}(),m=function(){var M=l(regeneratorRuntime.mark((function M(){var t,n;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return t=(0,x.generateOcsUrl)("apps/weather_status/api/v1/forecast"),M.next=3,z.default.get(t);case 3:return n=M.sent,M.abrupt("return",n.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(){return M.apply(this,arguments)}}(),k=function(){var M=l(regeneratorRuntime.mark((function M(){var t,n;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return t=(0,x.generateOcsUrl)("apps/weather_status/api/v1/favorites"),M.next=3,z.default.get(t);case 3:return n=M.sent,M.abrupt("return",n.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(){return M.apply(this,arguments)}}(),Y=function(){var M=l(regeneratorRuntime.mark((function M(t){var n,u;return regeneratorRuntime.wrap((function(M){for(;;)switch(M.prev=M.next){case 0:return n=(0,x.generateOcsUrl)("apps/weather_status/api/v1/favorites"),M.next=3,z.default.put(n,{favorites:t});case 3:return u=M.sent,M.abrupt("return",u.data.ocs.data);case 5:case"end":return M.stop()}}),M)})));return function(t){return M.apply(this,arguments)}}();function p(M,t,n,u,e,N,A){try{var j=M[N](A),i=j.value}catch(M){return void n(M)}j.done?t(i):Promise.resolve(i).then(u,e)}function v(M){return function(){var t=this,n=arguments;return new Promise((function(u,e){var N=M.apply(t,n);function A(M){p(N,u,e,A,j,"next",M)}function j(M){p(N,u,e,A,j,"throw",M)}A(void 0)}))}}var f={clearsky_day:{icon:"icon-clearsky-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} clear sky later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} clear sky",{temperature:M,unit:n})}},clearsky_night:{icon:"icon-clearsky-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} clear sky later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} clear sky",{temperature:M,unit:n})}},cloudy:{icon:"icon-cloudy",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} cloudy later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} cloudy",{temperature:M,unit:n})}},fair_day:{icon:"icon-fair-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} fair weather later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} fair weather",{temperature:M,unit:n})}},fair_night:{icon:"icon-fair-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} fair weather later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} fair weather",{temperature:M,unit:n})}},partlycloudy_day:{icon:"icon-partlycloudy-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} partly cloudy later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} partly cloudy",{temperature:M,unit:n})}},partlycloudy_night:{icon:"icon-partlycloudy-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} partly cloudy later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} partly cloudy",{temperature:M,unit:n})}},fog:{icon:"icon-fog",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} foggy later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} foggy",{temperature:M,unit:n})}},lightrain:{icon:"icon-lightrain",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} light rainfall later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} light rainfall",{temperature:M,unit:n})}},rain:{icon:"icon-rain",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} rainfall later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} rainfall",{temperature:M,unit:n})}},heavyrain:{icon:"icon-heavyrain",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} heavy rainfall later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} heavy rainfall",{temperature:M,unit:n})}},rainshowers_day:{icon:"icon-rainshowers-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} rainfall showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} rainfall showers",{temperature:M,unit:n})}},rainshowers_night:{icon:"icon-rainshowers-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} rainfall showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} rainfall showers",{temperature:M,unit:n})}},lightrainshowers_day:{icon:"icon-light-rainshowers-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} light rainfall showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} light rainfall showers",{temperature:M,unit:n})}},lightrainshowers_night:{icon:"icon-light-rainshowers-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} light rainfall showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} light rainfall showers",{temperature:M,unit:n})}},heavyrainshowers_day:{icon:"icon-heavy-rainshowers-day",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} heavy rainfall showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} heavy rainfall showers",{temperature:M,unit:n})}},heavyrainshowers_night:{icon:"icon-heavy-rainshowers-night",text:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u?t("weather_status","{temperature} {unit} heavy rainfall showers later today",{temperature:M,unit:n}):t("weather_status","{temperature} {unit} heavy rainfall showers",{temperature:M,unit:n})}}},U={name:"App",components:{Actions:L(),ActionButton:I(),ActionInput:y(),ActionLink:c(),ActionSeparator:T(),ActionText:C()},props:{inline:{type:Boolean,default:!1}},data:function(){return{locale:(0,D.getLocale)(),loading:!0,errorMessage:"",mode:1,address:null,lat:null,lon:null,offset:5,forecasts:[],loop:null,favorites:[],showFavorites:!1}},computed:{useFahrenheitLocale:function(){return["en_US","en_MH","en_FM","en_PW","en_KY","en_LR"].includes(this.locale)},temperatureUnit:function(){return this.useFahrenheitLocale?"°F":"°C"},locationText:function(){return t("weather_status","More weather for {adr}",{adr:this.address})},temperature:function(){return this.getTemperature(this.forecasts,0)},futureTemperature:function(){return this.getTemperature(this.forecasts,this.offset)},weatherCode:function(){return this.getWeatherCode(this.forecasts,0)},futureWeatherCode:function(){return this.getWeatherCode(this.forecasts,this.offset)},weatherIcon:function(){return this.getWeatherIcon(this.weatherCode,this.loading)},futureWeatherIcon:function(){return this.getWeatherIcon(this.futureWeatherCode,this.loading)},currentWeatherMessage:function(){return this.loading?t("weather_status","Loading weather"):this.errorMessage?this.errorMessage:this.getWeatherMessage(this.weatherCode,this.temperature)},forecastMessage:function(){return this.loading?t("weather_status","Loading weather"):this.getWeatherMessage(this.futureWeatherCode,this.futureTemperature,!0)},weatherLinkTarget:function(){return"https://www.windy.com/-Rain-thunder-rain?rain,"+this.lat+","+this.lon+",11"},gotWeather:function(){return this.address&&!this.errorMessage},addRemoveFavoriteIcon:function(){return this.currentAddressIsFavorite?"icon-starred":"icon-star"},addRemoveFavoriteText:function(){return this.currentAddressIsFavorite?t("weather_status","Remove from favorites"):t("weather_status","Add as favorite")},currentAddressIsFavorite:function(){var M=this;return this.favorites.find((function(t){return t===M.address}))},toggleFavoritesIcon:function(){return this.showFavorites?"icon-triangle-s":"icon-triangle-e"},displayedFavorites:function(){return this.showFavorites?this.favorites:[]}},mounted:function(){this.initWeatherStatus()},methods:{initWeatherStatus:function(){var M=this;return v(regeneratorRuntime.mark((function n(){var u,e;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,S();case 3:return u=n.sent,M.lat=u.lat,M.lon=u.lon,M.address=u.address,M.mode=u.mode,1===M.mode?M.askBrowserLocation():2===M.mode&&M.startLoop(),n.next=11,k();case 11:e=n.sent,M.favorites=e,n.next=22;break;case 15:if(n.prev=15,n.t0=n.catch(0),"ECONNABORTED"!==(null===n.t0||void 0===n.t0?void 0:n.t0.code)){n.next=20;break}return console.info("The weather status request was cancelled because the user navigates."),n.abrupt("return");case 20:n.t0.response&&401===n.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error getting the weather status information.")),console.error(n.t0);case 22:case"end":return n.stop()}}),n,null,[[0,15]])})))()},startLoop:function(){var M=this;clearInterval(this.loop),this.lat&&this.lon?(this.loop=setInterval((function(){return M.getForecast()}),36e5),this.getForecast()):this.loading=!1},askBrowserLocation:function(){var M=this;this.loading=!0,this.errorMessage="",navigator.geolocation&&window.isSecureContext?navigator.geolocation.getCurrentPosition((function(t){console.debug("browser location success"),M.lat=t.coords.latitude,M.lon=t.coords.longitude,M.saveMode(1),M.mode=1,M.saveLocation(M.lat,M.lon)}),(function(t){console.debug("location permission refused"),console.debug(t),M.saveMode(2),M.mode=2,M.lat&&M.lon?M.startLoop():M.usePersonalAddress()})):(console.debug("no secure context!"),this.saveMode(2),this.mode=2,this.startLoop())},getForecast:function(){var M=this;return v(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,m();case 3:M.forecasts=n.sent,n.next=10;break;case 6:n.prev=6,n.t0=n.catch(0),M.errorMessage=t("weather_status","No weather information found"),console.debug(n.t0);case 10:M.loading=!1;case 11:case"end":return n.stop()}}),n,null,[[0,6]])})))()},setAddress:function(M){var n=this;return v(regeneratorRuntime.mark((function u(){var e;return regeneratorRuntime.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:return n.loading=!0,n.errorMessage="",u.prev=2,u.next=5,d(M);case 5:(e=u.sent).success?(n.lat=e.lat,n.lon=e.lon,n.address=e.address,n.mode=2,n.startLoop()):(n.errorMessage=t("weather_status","Location not found"),n.loading=!1),u.next=13;break;case 9:u.prev=9,u.t0=u.catch(2),u.t0.response&&401===u.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error setting the location address.")),n.loading=!1;case 13:case"end":return u.stop()}}),u,null,[[2,9]])})))()},saveLocation:function(M,n){var u=this;return v(regeneratorRuntime.mark((function e(){var N;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,h(M,n);case 3:N=e.sent,u.address=N.address,u.startLoop(),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(0),e.t0.response&&401===e.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error setting the location.")),console.debug(e.t0);case 12:case"end":return e.stop()}}),e,null,[[0,8]])})))()},saveMode:function(M){return v(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,O(M);case 3:n.next=9;break;case 5:n.prev=5,n.t0=n.catch(0),n.t0.response&&401===n.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error saving the mode.")),console.debug(n.t0);case 9:case"end":return n.stop()}}),n,null,[[0,5]])})))()},onBrowserLocationClick:function(){this.askBrowserLocation()},usePersonalAddress:function(){var M=this;return v(regeneratorRuntime.mark((function n(){var u;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return M.loading=!0,n.prev=1,n.next=4,Q();case 4:u=n.sent,M.lat=u.lat,M.lon=u.lon,M.address=u.address,M.mode=2,M.startLoop(),n.next=17;break;case 12:n.prev=12,n.t0=n.catch(1),n.t0.response&&401===n.t0.response.status?(0,A.x2)(t("weather_status","You are not logged in.")):(0,A.x2)(t("weather_status","There was an error using personal address.")),console.debug(n.t0),M.loading=!1;case 17:case"end":return n.stop()}}),n,null,[[1,12]])})))()},onAddressSubmit:function(){var M=this.$refs.addressInput.$el.querySelector('input[type="text"]').value;this.setAddress(M)},getLocalizedTemperature:function(M){return this.useFahrenheitLocale?1.8*M+32:M},onAddRemoveFavoriteClick:function(){var M=this.currentAddressIsFavorite;if(M){var t=this.favorites.indexOf(M);-1!==t&&this.favorites.splice(t,1)}else this.favorites.push(this.address);Y(this.favorites)},onFavoriteClick:function(M,t){if(M.target.classList.contains("action-button__icon")){var n=this.favorites.indexOf(t);-1!==n&&this.favorites.splice(n,1),Y(this.favorites)}else t!==this.address&&this.setAddress(t)},formatTime:function(M){return i()(M).format("LT")},getTemperature:function(M){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return M.length>t?M[t].data.instant.details.air_temperature:""},getWeatherCode:function(M){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return M.length>t?M[t].data.next_1_hours.summary.symbol_code:""},getWeatherIcon:function(M,t){return t?"icon-loading-small":M&&M in f?f[M].icon:"icon-fair-day"},getWeatherMessage:function(M,n){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return M&&M in f?f[M].text(Math.round(this.getLocalizedTemperature(n)),this.temperatureUnit,u):t("weather_status","Set location for weather")}}},b=U,Z=u(93379),G=u.n(Z),W=u(7795),B=u.n(W),P=u(90569),_=u.n(P),R=u(3565),F=u.n(R),J=u(19216),H=u.n(J),V=u(44589),X=u.n(V),q=u(62554),$={};$.styleTagTransform=X(),$.setAttributes=F(),$.insert=_().bind(null,"head"),$.domAPI=B(),$.insertStyleElement=H(),G()(q.Z,$),q.Z&&q.Z.locals&&q.Z.locals;var K=(0,u(51900).Z)(b,(function(){var M=this,t=M.$createElement,n=M._self._c||t;return n("li",{class:{inline:M.inline}},[n("div",{attrs:{id:"weather-status-menu-item"}},[n("Actions",{staticClass:"weather-status-menu-item__subheader",attrs:{"default-icon":M.weatherIcon,"menu-title":M.currentWeatherMessage}},[M.gotWeather?n("ActionText",{attrs:{icon:M.futureWeatherIcon}},[M._v("\n\t\t\t\t"+M._s(M.forecastMessage)+"\n\t\t\t")]):M._e(),M._v(" "),M.gotWeather?n("ActionLink",{attrs:{icon:"icon-address",target:"_blank",href:M.weatherLinkTarget,"close-after-click":!0}},[M._v("\n\t\t\t\t"+M._s(M.locationText)+"\n\t\t\t")]):M._e(),M._v(" "),M.gotWeather?n("ActionButton",{attrs:{icon:M.addRemoveFavoriteIcon},on:{click:M.onAddRemoveFavoriteClick}},[M._v("\n\t\t\t\t"+M._s(M.addRemoveFavoriteText)+"\n\t\t\t")]):M._e(),M._v(" "),M.address&&!M.errorMessage?n("ActionSeparator"):M._e(),M._v(" "),n("ActionButton",{attrs:{icon:"icon-crosshair","close-after-click":!0},on:{click:M.onBrowserLocationClick}},[M._v("\n\t\t\t\t"+M._s(M.t("weather_status","Detect location"))+"\n\t\t\t")]),M._v(" "),n("ActionInput",{ref:"addressInput",attrs:{disabled:!1,icon:"icon-rename",type:"text",value:""},on:{submit:M.onAddressSubmit}},[M._v("\n\t\t\t\t"+M._s(M.t("weather_status","Set custom address"))+"\n\t\t\t")]),M._v(" "),n("ActionButton",{directives:[{name:"show",rawName:"v-show",value:M.favorites.length>0,expression:"favorites.length > 0"}],attrs:{icon:M.toggleFavoritesIcon},on:{click:function(t){M.showFavorites=!M.showFavorites}}},[M._v("\n\t\t\t\t"+M._s(M.t("weather_status","Favorites"))+"\n\t\t\t")]),M._v(" "),M._l(M.displayedFavorites,(function(t){return n("ActionButton",{key:t,attrs:{icon:"icon-starred"},on:{click:function(n){return M.onFavoriteClick(n,t)}}},[M._v("\n\t\t\t\t"+M._s(t)+"\n\t\t\t")])}))],2)],1)])}),[],!1,null,null,null).exports;u.nc=btoa((0,N.getRequestToken)()),e.default.prototype.t=t,document.addEventListener("DOMContentLoaded",(function(){OCA.Dashboard&&OCA.Dashboard.registerStatus("weather",(function(M){return new(e.default.extend(K))({propsData:{inline:!0}}).$mount(M)}))}))},62554:function(M,t,n){"use strict";var u=n(87537),e=n.n(u),N=n(23645),A=n.n(N),j=n(61667),i=n.n(j),D=new URL(n(87320),n.b),r=new URL(n(3953),n.b),L=new URL(n(71211),n.b),g=new URL(n(87760),n.b),I=new URL(n(30570),n.b),a=new URL(n(74351),n.b),y=new URL(n(26625),n.b),s=new URL(n(16767),n.b),c=new URL(n(53748),n.b),o=new URL(n(26320),n.b),T=new URL(n(26157),n.b),w=new URL(n(37837),n.b),C=new URL(n(94776),n.b),z=new URL(n(14593),n.b),x=new URL(n(53107),n.b),E=new URL(n(97251),n.b),l=new URL(n(18138),n.b),h=new URL(n(53254),n.b),d=new URL(n(50663),n.b),O=new URL(n(75322),n.b),Q=A()(e()),S=i()(D),m=i()(r),k=i()(L),Y=i()(g),p=i()(I),v=i()(a),f=i()(y),U=i()(s),b=i()(c),Z=i()(o),G=i()(T),W=i()(w),B=i()(C),P=i()(z),_=i()(x),R=i()(E),F=i()(l),J=i()(h),H=i()(d),V=i()(O);Q.push([M.id,".icon-weather-status{background-image:url("+S+")}body.theme--dark .icon-weather-status{background-image:url("+m+")}.icon-clearsky-day{background-image:url("+k+")}.icon-clearsky-night{background-image:url("+Y+")}.icon-cloudy{background-image:url("+p+")}.icon-fair-day{background-image:url("+v+")}.icon-fair-night{background-image:url("+f+")}.icon-partlycloudy-day{background-image:url("+U+")}.icon-partlycloudy-night{background-image:url("+b+")}.icon-fog{background-image:url("+Z+")}.icon-lightrain{background-image:url("+G+")}.icon-rain{background-image:url("+W+")}.icon-heavyrain{background-image:url("+B+")}.icon-light-rainshowers-day{background-image:url("+P+")}.icon-light-rainshowers-night{background-image:url("+_+")}.icon-rainshowers-day{background-image:url("+R+")}.icon-rainshowers-night{background-image:url("+F+")}.icon-heavy-rainshowers-day{background-image:url("+J+")}.icon-heavy-rainshowers-night{background-image:url("+H+")}.icon-crosshair{background-color:var(--color-main-text);padding:0 !important;mask:url("+V+") no-repeat;mask-size:18px 18px;mask-position:center;-webkit-mask:url("+V+") no-repeat;-webkit-mask-size:18px 18px;-webkit-mask-position:center;min-width:44px !important;min-height:44px !important}li:not(.inline) .weather-status-menu-item__header{display:block;align-items:center;color:var(--color-main-text);padding:10px 12px 5px 12px;box-sizing:border-box;opacity:1;white-space:nowrap;width:100%;text-align:center;max-width:250px;text-overflow:ellipsis;min-width:175px}li:not(.inline) .weather-status-menu-item__subheader{width:100%}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon{background-color:var(--color-main-background);background-size:16px;border:0;border-radius:0;font-weight:normal;padding-left:40px}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:hover,li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:focus{box-shadow:inset 4px 0 var(--color-primary-element)}.inline .weather-status-menu-item__subheader{width:100%}.inline .weather-status-menu-item__subheader .trigger>.icon{background-size:16px;border:0;border-radius:var(--border-radius-pill);font-weight:normal;padding-left:40px}.inline .weather-status-menu-item__subheader .trigger>.icon.icon-loading-small::after{left:21px}li{list-style-type:none}","",{version:3,sources:["webpack://./apps/weather_status/src/App.vue"],names:[],mappings:"AAwgBA,qBACC,wDAAA,CAED,sCACC,wDAAA,CAED,mBACC,wDAAA,CAED,qBACC,wDAAA,CAED,aACC,wDAAA,CAED,eACC,wDAAA,CAED,iBACC,wDAAA,CAED,uBACC,wDAAA,CAED,yBACC,wDAAA,CAED,UACC,wDAAA,CAED,gBACC,yDAAA,CAED,WACC,yDAAA,CAED,gBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,sBACC,yDAAA,CAED,wBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,gBACI,uCAAA,CACA,oBAAA,CACA,uDAAA,CACA,mBAAA,CACA,oBAAA,CACA,+DAAA,CACA,2BAAA,CACA,4BAAA,CACA,yBAAA,CACA,0BAAA,CAIH,kDACC,aAAA,CACA,kBAAA,CACA,4BAAA,CACA,0BAAA,CACA,qBAAA,CACA,SAAA,CACA,kBAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CAGD,qDACC,UAAA,CAEA,oEACC,6CAAA,CACA,oBAAA,CACA,QAAA,CACA,eAAA,CACA,kBAAA,CACA,iBAAA,CAEA,oJAEC,mDAAA,CAMJ,6CACC,UAAA,CAEA,4DACC,oBAAA,CACA,QAAA,CACA,uCAAA,CACA,kBAAA,CACA,iBAAA,CAGC,sFACC,SAAA,CAMJ,GACC,oBAAA",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\n\n\n\n\n\n\n\n\n.icon-weather-status {\n\tbackground-image: url('./../img/app-dark.svg');\n}\nbody.theme--dark .icon-weather-status {\n\tbackground-image: url('./../img/app.svg');\n}\n.icon-clearsky-day {\n\tbackground-image: url('./../img/sun.svg');\n}\n.icon-clearsky-night {\n\tbackground-image: url('./../img/moon.svg');\n}\n.icon-cloudy {\n\tbackground-image: url('./../img/cloud-cloud.svg');\n}\n.icon-fair-day {\n\tbackground-image: url('./../img/sun-small-cloud.svg');\n}\n.icon-fair-night {\n\tbackground-image: url('./../img/moon-small-cloud.svg');\n}\n.icon-partlycloudy-day {\n\tbackground-image: url('./../img/sun-cloud.svg');\n}\n.icon-partlycloudy-night {\n\tbackground-image: url('./../img/moon-cloud.svg');\n}\n.icon-fog {\n\tbackground-image: url('./../img/fog.svg');\n}\n.icon-lightrain {\n\tbackground-image: url('./../img/light-rain.svg');\n}\n.icon-rain {\n\tbackground-image: url('./../img/rain.svg');\n}\n.icon-heavyrain {\n\tbackground-image: url('./../img/heavy-rain.svg');\n}\n.icon-light-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-light-rain.svg');\n}\n.icon-light-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-light-rain.svg');\n}\n.icon-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-rain.svg');\n}\n.icon-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-rain.svg');\n}\n.icon-heavy-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-heavy-rain.svg');\n}\n.icon-heavy-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-heavy-rain.svg');\n}\n.icon-crosshair {\n background-color: var(--color-main-text);\n padding: 0 !important;\n mask: url(./../img/cross.svg) no-repeat;\n mask-size: 18px 18px;\n mask-position: center;\n -webkit-mask: url(./../img/cross.svg) no-repeat;\n -webkit-mask-size: 18px 18px;\n -webkit-mask-position: center;\n min-width: 44px !important;\n min-height: 44px !important;\n}\n\nli:not(.inline) .weather-status-menu-item {\n\t&__header {\n\t\tdisplay: block;\n\t\talign-items: center;\n\t\tcolor: var(--color-main-text);\n\t\tpadding: 10px 12px 5px 12px;\n\t\tbox-sizing: border-box;\n\t\topacity: 1;\n\t\twhite-space: nowrap;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tmax-width: 250px;\n\t\ttext-overflow: ellipsis;\n\t\tmin-width: 175px;\n\t}\n\n\t&__subheader {\n\t\twidth: 100%;\n\n\t\t.trigger > .icon {\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbackground-size: 16px;\n\t\t\tborder: 0;\n\t\t\tborder-radius: 0;\n\t\t\tfont-weight: normal;\n\t\t\tpadding-left: 40px;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbox-shadow: inset 4px 0 var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.inline .weather-status-menu-item__subheader {\n\twidth: 100%;\n\n\t.trigger > .icon {\n\t\tbackground-size: 16px;\n\t\tborder: 0;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: normal;\n\t\tpadding-left: 40px;\n\n\t\t&.icon-loading-small {\n\t\t\t&::after {\n\t\t\t\tleft: 21px;\n\t\t\t}\n\t\t}\n\t}\n}\n\nli {\n\tlist-style-type: none;\n}\n"],sourceRoot:""}]),t.Z=Q},46700:function(M,t,n){var u={"./af":42786,"./af.js":42786,"./ar":30867,"./ar-dz":14130,"./ar-dz.js":14130,"./ar-kw":96135,"./ar-kw.js":96135,"./ar-ly":56440,"./ar-ly.js":56440,"./ar-ma":47702,"./ar-ma.js":47702,"./ar-sa":16040,"./ar-sa.js":16040,"./ar-tn":37100,"./ar-tn.js":37100,"./ar.js":30867,"./az":31083,"./az.js":31083,"./be":9808,"./be.js":9808,"./bg":68338,"./bg.js":68338,"./bm":67438,"./bm.js":67438,"./bn":8905,"./bn-bd":76225,"./bn-bd.js":76225,"./bn.js":8905,"./bo":11560,"./bo.js":11560,"./br":1278,"./br.js":1278,"./bs":80622,"./bs.js":80622,"./ca":2468,"./ca.js":2468,"./cs":5822,"./cs.js":5822,"./cv":50877,"./cv.js":50877,"./cy":47373,"./cy.js":47373,"./da":24780,"./da.js":24780,"./de":59740,"./de-at":60217,"./de-at.js":60217,"./de-ch":60894,"./de-ch.js":60894,"./de.js":59740,"./dv":5300,"./dv.js":5300,"./el":50837,"./el.js":50837,"./en-au":78348,"./en-au.js":78348,"./en-ca":77925,"./en-ca.js":77925,"./en-gb":22243,"./en-gb.js":22243,"./en-ie":46436,"./en-ie.js":46436,"./en-il":47207,"./en-il.js":47207,"./en-in":44175,"./en-in.js":44175,"./en-nz":76319,"./en-nz.js":76319,"./en-sg":31662,"./en-sg.js":31662,"./eo":92915,"./eo.js":92915,"./es":55655,"./es-do":55251,"./es-do.js":55251,"./es-mx":96112,"./es-mx.js":96112,"./es-us":71146,"./es-us.js":71146,"./es.js":55655,"./et":5603,"./et.js":5603,"./eu":77763,"./eu.js":77763,"./fa":76959,"./fa.js":76959,"./fi":11897,"./fi.js":11897,"./fil":42549,"./fil.js":42549,"./fo":94694,"./fo.js":94694,"./fr":94470,"./fr-ca":63049,"./fr-ca.js":63049,"./fr-ch":52330,"./fr-ch.js":52330,"./fr.js":94470,"./fy":5044,"./fy.js":5044,"./ga":29295,"./ga.js":29295,"./gd":2101,"./gd.js":2101,"./gl":38794,"./gl.js":38794,"./gom-deva":27884,"./gom-deva.js":27884,"./gom-latn":23168,"./gom-latn.js":23168,"./gu":95349,"./gu.js":95349,"./he":24206,"./he.js":24206,"./hi":30094,"./hi.js":30094,"./hr":30316,"./hr.js":30316,"./hu":22138,"./hu.js":22138,"./hy-am":11423,"./hy-am.js":11423,"./id":29218,"./id.js":29218,"./is":90135,"./is.js":90135,"./it":90626,"./it-ch":10150,"./it-ch.js":10150,"./it.js":90626,"./ja":39183,"./ja.js":39183,"./jv":24286,"./jv.js":24286,"./ka":12105,"./ka.js":12105,"./kk":47772,"./kk.js":47772,"./km":18758,"./km.js":18758,"./kn":79282,"./kn.js":79282,"./ko":33730,"./ko.js":33730,"./ku":1408,"./ku.js":1408,"./ky":33291,"./ky.js":33291,"./lb":36841,"./lb.js":36841,"./lo":55466,"./lo.js":55466,"./lt":57010,"./lt.js":57010,"./lv":37595,"./lv.js":37595,"./me":39861,"./me.js":39861,"./mi":35493,"./mi.js":35493,"./mk":95966,"./mk.js":95966,"./ml":87341,"./ml.js":87341,"./mn":5115,"./mn.js":5115,"./mr":10370,"./mr.js":10370,"./ms":9847,"./ms-my":41237,"./ms-my.js":41237,"./ms.js":9847,"./mt":72126,"./mt.js":72126,"./my":56165,"./my.js":56165,"./nb":64924,"./nb.js":64924,"./ne":16744,"./ne.js":16744,"./nl":93901,"./nl-be":59814,"./nl-be.js":59814,"./nl.js":93901,"./nn":83877,"./nn.js":83877,"./oc-lnc":92135,"./oc-lnc.js":92135,"./pa-in":15858,"./pa-in.js":15858,"./pl":64495,"./pl.js":64495,"./pt":89520,"./pt-br":57971,"./pt-br.js":57971,"./pt.js":89520,"./ro":96459,"./ro.js":96459,"./ru":21793,"./ru.js":21793,"./sd":40950,"./sd.js":40950,"./se":10490,"./se.js":10490,"./si":90124,"./si.js":90124,"./sk":64249,"./sk.js":64249,"./sl":14985,"./sl.js":14985,"./sq":51104,"./sq.js":51104,"./sr":49131,"./sr-cyrl":79915,"./sr-cyrl.js":79915,"./sr.js":49131,"./ss":85893,"./ss.js":85893,"./sv":98760,"./sv.js":98760,"./sw":91172,"./sw.js":91172,"./ta":27333,"./ta.js":27333,"./te":23110,"./te.js":23110,"./tet":52095,"./tet.js":52095,"./tg":27321,"./tg.js":27321,"./th":9041,"./th.js":9041,"./tk":19005,"./tk.js":19005,"./tl-ph":75768,"./tl-ph.js":75768,"./tlh":89444,"./tlh.js":89444,"./tr":72397,"./tr.js":72397,"./tzl":28254,"./tzl.js":28254,"./tzm":51106,"./tzm-latn":30699,"./tzm-latn.js":30699,"./tzm.js":51106,"./ug-cn":9288,"./ug-cn.js":9288,"./uk":67691,"./uk.js":67691,"./ur":13795,"./ur.js":13795,"./uz":6791,"./uz-latn":60588,"./uz-latn.js":60588,"./uz.js":6791,"./vi":65666,"./vi.js":65666,"./x-pseudo":14378,"./x-pseudo.js":14378,"./yo":75805,"./yo.js":75805,"./zh-cn":83839,"./zh-cn.js":83839,"./zh-hk":55726,"./zh-hk.js":55726,"./zh-mo":99807,"./zh-mo.js":99807,"./zh-tw":74152,"./zh-tw.js":74152};function e(M){var t=N(M);return n(t)}function N(M){if(!n.o(u,M)){var t=new Error("Cannot find module '"+M+"'");throw t.code="MODULE_NOT_FOUND",t}return u[M]}e.keys=function(){return Object.keys(u)},e.resolve=N,M.exports=e,e.id=46700},87320:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgwLjUiIGhlaWdodD0iMjgwLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0MC4yMiAyMTAuMDRjMzguNDggMCA2OS43OC0zMS4zIDY5Ljc4LTY5Ljc4cy0zMS4zLTY5Ljc4LTY5Ljc4LTY5Ljc4Yy0zOC40NyAwLTY5Ljc4IDMxLjMtNjkuNzggNjkuNzhzMzEuMyA2OS43OCA2OS43OCA2OS43OE0xMzIuOCAzOC45YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDAwLTE0Ljg1IDBWMzguOU0xMzIuOCAyNDEuNjN2MzEuNDZhNy40MyA3LjQzIDAgMDAxNC44NSAwdi0zMS40NmE3LjQzIDcuNDMgMCAwMC0xNC44NSAwTTg5LjU0IDU5LjkxYTcuNDMgNy40MyAwIDAwNi40My0xMS4xNEw4MC4yNCAyMS41M2E3LjQzIDcuNDMgMCAwMC0xMi44NiA3LjQzTDgzLjEgNTYuMmE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU0xODcuMiAyMjEuNjJhNy40MyA3LjQzIDAgMDAtMi43MiAxMC4xNEwyMDAuMiAyNTlhNy40MiA3LjQyIDAgMTAxMi44Ni03LjQybC0xNS43My0yNy4yNWE3LjQzIDcuNDMgMCAwMC0xMC4xNS0yLjcxTTE4Ljc2IDcwLjE0YTcuNDMgNy40MyAwIDAwMi43MiAxMC4xNUw0OC43MiA5NmE3LjQyIDcuNDIgMCAxMDcuNDMtMTIuODZMMjguOSA2Ny40MmE3LjQzIDcuNDMgMCAwMC0xMC4xNCAyLjcyTTI1OC45NyAyMDAuMjRsLTI3LjI1LTE1LjczYTcuNDMgNy40MyAwIDAwLTcuNDIgMTIuODdsMjcuMjQgMTUuNzNhNy40IDcuNCAwIDAwMTAuMTQtMi43MiA3LjQzIDcuNDMgMCAwMC0yLjcxLTEwLjE1TTQ2LjI4IDE0MC4yN2MwLTQuMS0zLjMzLTcuNDItNy40My03LjQySDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMzEuNDZjNC4xIDAgNy40My0zLjMzIDcuNDMtNy40M00yNzMuMDUgMTMyLjg1aC0zMS40NmE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMzEuNDZhNy40MyA3LjQzIDAgMDAwLTE0Ljg1TTQ4LjczIDE4NC41MUwyMS41IDIwMC4yNGE3LjQzIDcuNDMgMCAxMDcuNDIgMTIuODZsMjcuMjUtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40My0xMi44Nk0yNTEuNTQgNjcuNDJMMjI0LjMgODMuMTVBNy40MyA3LjQzIDAgMDAyMzEuNzIgOTZsMjcuMjQtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40Mi0xMi44Nk04My4xIDIyNC4zNGwtMTUuNzMgMjcuMjRhNy40MyA3LjQzIDAgMDAxMi44NyA3LjQzbDE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDAwLTEyLjg3LTcuNDJNMTg3LjIgNTguOTFhNy40IDcuNCAwIDAwMTAuMTQtMi43MWwxNS43My0yNy4yNWE3LjQzIDcuNDMgMCAxMC0xMi44Ni03LjQybC0xNS43MyAyNy4yNGE3LjQzIDcuNDMgMCAwMDIuNzEgMTAuMTQiLz48L3N2Zz4="},3953:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgwLjUiIGhlaWdodD0iMjgwLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTE0MC4yMiAyMTAuMDRjMzguNDggMCA2OS43OC0zMS4zIDY5Ljc4LTY5Ljc4cy0zMS4zLTY5Ljc4LTY5Ljc4LTY5Ljc4Yy0zOC40NyAwLTY5Ljc4IDMxLjMtNjkuNzggNjkuNzhzMzEuMyA2OS43OCA2OS43OCA2OS43OE0xMzIuOCAzOC45YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDAwLTE0Ljg1IDBWMzguOU0xMzIuOCAyNDEuNjN2MzEuNDZhNy40MyA3LjQzIDAgMDAxNC44NSAwdi0zMS40NmE3LjQzIDcuNDMgMCAwMC0xNC44NSAwTTg5LjU0IDU5LjkxYTcuNDMgNy40MyAwIDAwNi40My0xMS4xNEw4MC4yNCAyMS41M2E3LjQzIDcuNDMgMCAwMC0xMi44NiA3LjQzTDgzLjEgNTYuMmE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU0xODcuMiAyMjEuNjJhNy40MyA3LjQzIDAgMDAtMi43MiAxMC4xNEwyMDAuMiAyNTlhNy40MiA3LjQyIDAgMTAxMi44Ni03LjQybC0xNS43My0yNy4yNWE3LjQzIDcuNDMgMCAwMC0xMC4xNS0yLjcxTTE4Ljc2IDcwLjE0YTcuNDMgNy40MyAwIDAwMi43MiAxMC4xNUw0OC43MiA5NmE3LjQyIDcuNDIgMCAxMDcuNDMtMTIuODZMMjguOSA2Ny40MmE3LjQzIDcuNDMgMCAwMC0xMC4xNCAyLjcyTTI1OC45NyAyMDAuMjRsLTI3LjI1LTE1LjczYTcuNDMgNy40MyAwIDAwLTcuNDIgMTIuODdsMjcuMjQgMTUuNzNhNy40IDcuNCAwIDAwMTAuMTQtMi43MiA3LjQzIDcuNDMgMCAwMC0yLjcxLTEwLjE1TTQ2LjI4IDE0MC4yN2MwLTQuMS0zLjMzLTcuNDItNy40My03LjQySDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMzEuNDZjNC4xIDAgNy40My0zLjMzIDcuNDMtNy40M00yNzMuMDUgMTMyLjg1aC0zMS40NmE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMzEuNDZhNy40MyA3LjQzIDAgMDAwLTE0Ljg1TTQ4LjczIDE4NC41MUwyMS41IDIwMC4yNGE3LjQzIDcuNDMgMCAxMDcuNDIgMTIuODZsMjcuMjUtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40My0xMi44Nk0yNTEuNTQgNjcuNDJMMjI0LjMgODMuMTVBNy40MyA3LjQzIDAgMDAyMzEuNzIgOTZsMjcuMjQtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40Mi0xMi44Nk04My4xIDIyNC4zNGwtMTUuNzMgMjcuMjRhNy40MyA3LjQzIDAgMDAxMi44NyA3LjQzbDE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDAwLTEyLjg3LTcuNDJNMTg3LjIgNTguOTFhNy40IDcuNCAwIDAwMTAuMTQtMi43MWwxNS43My0yNy4yNWE3LjQzIDcuNDMgMCAxMC0xMi44Ni03LjQybC0xNS43MyAyNy4yNGE3LjQzIDcuNDMgMCAwMDIuNzEgMTAuMTQiLz48L2c+PC9zdmc+"},30570:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjk0LjcxIiBoZWlnaHQ9IjE4OS4xNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTA5LjAzIDExOS4yYzAtMjkuMTkgMjYuNC01Mi45NCA1OC44Ni01Mi45NCA3LjAyIDAgMTMuODEgMS4wOCAyMC4yOSAzLjIyYTU0LjM2IDU0LjM2IDAgMDEyNS4wNC0xNC4zNkE1MS45NSA1MS45NSAwIDAwMTY2LjkgMjYuM2MtNC4yMSAwLTguNDEuNTItMTIuNDggMS41Mi0zIC43NC02LjE1LS40NC03LjktMi45OWE1Ny4xMyA1Ny4xMyAwIDAwLTg1LjU4LTkuODQgNTYuOTUgNTYuOTUgMCAwMC0xOC4zMyAzNi42NSA3LjQyIDcuNDIgMCAwMS00LjIgNmMtLjY5LjM0LTEuMzguNjgtMi4wNSAxLjA2LS42Mi4zNC0xLjI5LjYtMS45OC43NkE0NC4zIDQ0LjMgMCAwMDkuOCA3NC42NmE0My4yIDQzLjIgMCAwMC05LjggMjcuNThjMCAyNC4xOSAxOS43OCA0My44NiA0NC4xIDQzLjg2aDUyLjk2YTQ4LjA0IDQ4LjA0IDAgMDExMi4wMy0yNC42M2MtLjAzLS43Ni0uMDUtMS41MS0uMDUtMi4yNyIgZmlsbD0iIzYxYzllNyIvPjxwYXRoIGQ9Ik0yNjkuMjUgMTIwLjRhNy40MyA3LjQzIDAgMDEtNC40Ni05LjUgMjguODUgMjguODUgMCAwMDEuNzItOS44MmMwLTE0LjEtMTAuMjctMjYuMTYtMjQuNy0zMC45YTQzLjYzIDQzLjYzIDAgMDAtMjEuMDgtMS41NWMtOS45IDEuNjgtMTguNzQgNi43LTI0LjUgMTQuMTJhNy40MyA3LjQzIDAgMDEtOC44IDIuMjYgNDkuMTIgNDkuMTIgMCAwMC0xOS41My0zLjk2Yy0yNC4yNyAwLTQ0LjAyIDE3LjEtNDQuMDIgMzguMSAwIDEuMzQuMDkgMi43My4yNiA0LjFhNy4zOSA3LjM5IDAgMDEtMi4yMyA2LjI2IDM0LjMgMzQuMyAwIDAwLTkuNzEgMTYuNTMgMzEuMDMgMzEuMDMgMCAwMC4wMiAxNC44NWM0IDE2LjEzIDIwLjYyIDI4LjI3IDQwLjQ2IDI4LjI3aDEwMC42M2MyMi44MiAwIDQxLjM4LTE2LjA0IDQxLjM4LTM1Ljc2IDAtMTQuNDUtOS45OS0yNy40MS0yNS40NC0zMyIgZmlsbD0iIzQ0OTJhOCIvPjwvc3ZnPg=="},75322:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48cGF0aCBkPSJNMjIgMTJoLTRNNiAxMkgyTTEyIDZWMk0xMiAyMnYtNCIvPjwvc3ZnPg=="},26320:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU0LjQ0IiBoZWlnaHQ9IjI1Ni4zOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMjMzLjMgNzEuNThhNy40MiA3LjQyIDAgMDEtMi42My0zLjg0IDU1LjUgNTUuNSAwIDAwLTUzLjA4LTM5Ljg3Yy00LjUgMC05IC41NS0xMy4zNSAxLjYzLTMgLjc0LTYuMTUtLjQ1LTcuOS0zQTYxLjEgNjEuMSAwIDAwMTA2IC4wMSA2MC44OSA2MC44OSAwIDAwNjQuODMgMTZhNjAuODcgNjAuODcgMCAwMC0xOS42IDM5LjIgNy40MiA3LjQyIDAgMDEtNC4yIDZjLS43My4zNC0xLjQ3LjcyLTIuMiAxLjEyLS42MS4zNS0xLjI4LjYtMS45Ny43NUE0Ny40OCA0Ny40OCAwIDAwMTAuNSA3OS4zNyA0Ni4zIDQ2LjMgMCAwMDAgMTA4LjkyYzAgMjUuOTEgMjEuMiA0NyA0Ny4yNiA0N0gyMDQuNmMyNi4wNiAwIDQ3LjI3LTIxLjA5IDQ3LjI3LTQ3YTQ2LjYgNDYuNiAwIDAwLTE4LjU2LTM3LjM0TTIzMS4zMiAxODcuOTFjMC00LjEtMy4zMy03LjQzLTcuNDMtNy40M0gyOC44N2E3LjQyIDcuNDIgMCAxMDAgMTQuODZoMTk1LjAyYzQuMSAwIDcuNDMtMy4zNCA3LjQzLTcuNDNNMjEzLjE0IDI0MS41NEgxOC4xMmE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMTk1LjAyYTcuNDIgNy40MiAwIDEwMC0xNC44NU02Mi4yOCAyMTEuNDNhNy40MiA3LjQyIDAgMTAwIDE0Ljg1aDcxLjQ3YTcuNDMgNy40MyAwIDAwMC0xNC44NUg2Mi4yOE0yNDcgMjExLjQzaC03MS40OGE3LjQyIDcuNDIgMCAxMDAgMTQuODVIMjQ3YTcuNDMgNy40MyAwIDAwMC0xNC44NSIvPjwvZz48L3N2Zz4="},94776:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUxLjg4IiBoZWlnaHQ9IjI1OC42NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjUxLjg1IDEwOC45YTQ2LjYgNDYuNiAwIDAwLTE4LjU2LTM3LjM0IDcuNDMgNy40MyAwIDAxLTIuNjMtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzUgMS42Mi0zIC43NC02LjE1LS40NS03LjktM0E2MS4xIDYxLjEgMCAwMDEwNiAwYTYwLjg5IDYwLjg5IDAgMDAtNDEuMTggMTUuOTcgNjAuODcgNjAuODcgMCAwMC0xOS42IDM5LjIgNy40MyA3LjQzIDAgMDEtNC4yIDZjLS43My4zNS0xLjQ3LjczLTIuMiAxLjEzLS42MS4zNC0xLjI4LjYtMS45Ny43NWE0Ny40OCA0Ny40OCAwIDAwLTI2LjM1IDE2LjNBNDYuMyA0Ni4zIDAgMDAtLjAxIDEwOC45YzAgMjUuOTIgMjEuMiA0NyA0Ny4yNiA0N0gyMDQuNmMyNi4wNyAwIDQ3LjI3LTIxLjA4IDQ3LjI3LTQ3IiBmaWxsPSIjNDQ5MmE4Ii8+PGcgZmlsbD0iIzYxYzllNyI+PHBhdGggZD0iTTY2LjY2IDIyMy40NGE3LjQyIDcuNDIgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MiA3LjQyIDAgMTAtMTQuMiA0LjM1bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNk0xMDcuNCAyNTguNjJhNy40MyA3LjQzIDAgMDA3LjEtOS42bC04LjkzLTI5LjE4YTcuNDIgNy40MiAwIDEwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjVNMTU5LjIyIDIxMy4wNmE3LjQzIDcuNDMgMCAwMC00LjkzIDkuMjhsOC45NCAyOS4xN2E3LjQzIDcuNDMgMCAxMDE0LjItNC4zNUwxNjguNSAyMThhNy40MyA3LjQzIDAgMDAtOS4yNy00LjkzTTEyOC44NCAyMjMuNDRhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04LjkzLTI5LjE4YTcuNDMgNy40MyAwIDEwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMTkxLjAzIDIyMy40NGE3LjQxIDcuNDEgMCAwMDcuMS05LjZsLTguOTQtMjkuMThBNy40MiA3LjQyIDAgMTAxNzUgMTg5bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNiIvPjwvZz48L3N2Zz4="},26157:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjk0LjcxIiBoZWlnaHQ9IjI1OC41NyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMTA5LjA0IDExOS4xOGMwLTI5LjIgMjYuNC01Mi45NSA1OC44Ny01Mi45NSA3IDAgMTMuOCAxLjA4IDIwLjI4IDMuMjJhNTQuMzIgNTQuMzIgMCAwMTI1LjA0LTE0LjM1IDUxLjkzIDUxLjkzIDAgMDAtNDYuMzItMjguODNjLTQuMjEgMC04LjQxLjUxLTEyLjQ3IDEuNTItMyAuNzUtNi4xNi0uNDUtNy45MS0zQTU3LjE1IDU3LjE1IDAgMDA5OS40Ni4wMmMtMTQuMyAwLTI3Ljk3IDUuMzEtMzguNTEgMTQuOTVhNTYuOTMgNTYuOTMgMCAwMC0xOC4zMyAzNi42NSA3LjQzIDcuNDMgMCAwMS00LjIgNmMtLjY4LjMyLTEuMzcuNjgtMi4wNSAxLjA1LS42Mi4zNS0xLjI5LjYtMS45OC43NUE0NC4zIDQ0LjMgMCAwMDkuOCA3NC42NCA0My4yIDQzLjIgMCAwMDAgMTAyLjJjMCAyNC4xOCAxOS43OCA0My44NiA0NC4xIDQzLjg2aDUyLjk2YTQ4LjA0IDQ4LjA0IDAgMDExMi4wMy0yNC42M2MtLjAzLS43Ni0uMDUtMS41MS0uMDUtMi4yNk02NC45OSAyNTguNTlhNy40NCA3LjQ0IDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMTI3LjE3IDI1OC41OWE3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNk0xODkuMzYgMjU4LjU5YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xN2E3LjQzIDcuNDMgMCAwMDcuMSA1LjI2Ii8+PC9nPjxwYXRoIGQ9Ik0yNjkuMjYgMTIwLjQyYTcuNDMgNy40MyAwIDAxLTQuNDYtOS41IDI4Ljg2IDI4Ljg2IDAgMDAxLjczLTkuODJjMC0xNC4xLTEwLjI4LTI2LjE1LTI0LjctMzAuOTFhNDMuNTcgNDMuNTcgMCAwMC0yMS4wOS0xLjU1Yy05LjkgMS42OS0xOC43NCA2LjctMjQuNDkgMTQuMTJhNy40MyA3LjQzIDAgMDEtOC44IDIuMjggNDkuMTIgNDkuMTIgMCAwMC0xOS41NC0zLjk2Yy0yNC4yNyAwLTQ0LjAyIDE3LjA5LTQ0LjAyIDM4LjA5IDAgMS4zNS4wOSAyLjczLjI2IDQuMWE3LjQzIDcuNDMgMCAwMS0yLjIzIDYuMjYgMzQuMjEgMzQuMjEgMCAwMC05LjcxIDE2LjUzIDMxLjAzIDMxLjAzIDAgMDAuMDMgMTQuODVjNCAxNi4xMyAyMC42MSAyOC4yNyA0MC40NSAyOC4yN2gxMDAuNjNjMjIuODIgMCA0MS4zOC0xNi4wNSA0MS4zOC0zNS43NiAwLTE0LjQ2LTkuOTgtMjcuNDEtMjUuNDQtMzMiIGZpbGw9IiM0NDkyYTgiLz48L3N2Zz4="},50663:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzE4Ljk0IiBoZWlnaHQ9IjI4OS42MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMjg1LjA0IDEyNy42YTcuNDIgNy40MiAwIDAxLTIuNjQtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzQgMS42Mi0zIC43NS02LjE1LS40NS03LjktM2E2MS4xIDYxLjEgMCAwMC01MC4zMy0yNi40OCA2MC44OSA2MC44OSAwIDAwLTQxLjE4IDE1Ljk4IDYwLjg4IDYwLjg4IDAgMDAtMTkuNiAzOS4xOSA3LjQyIDcuNDIgMCAwMS00LjIgNmMtLjczLjM1LTEuNDcuNzMtMi4yIDEuMTMtLjYyLjM0LTEuMjkuNi0xLjk4Ljc1YTQ3LjQ4IDQ3LjQ4IDAgMDAtMjYuMzUgMTYuMyA0Ni4yOSA0Ni4yOSAwIDAwLTEwLjUxIDI5LjU1YzAgMjUuOTIgMjEuMiA0NyA0Ny4yNyA0N2gxNTcuMzRjMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zMyIgcGFpbnQtb3JkZXI9InN0cm9rZSBmaWxsIG1hcmtlcnMiLz48cGF0aCBkPSJNOTEuOTggMjg3LjFhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjVNMTU0LjE2IDI4Ny4xYTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTIxNi4zNSAyODcuMWE3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMTAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0xMTYuNTggMjU5Ljk3YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xN2E3LjQzIDcuNDMgMCAwMDcuMSA1LjI2TTE3OC43NiAyNTkuOTdhNy40MyA3LjQzIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDEwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMjc4LjMzIDI4Ny4wOWE3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMTAtMTQuMiA0LjM1bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNk0yNDAuNzMgMjU5Ljk1YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1Ii8+PC9nPjxwYXRoIGQ9Ik03OS44Mi0uMDVjLTMuMzcgMS4wMi02LjY5IDIuMi05Ljk2IDMuNTQtNTcuNTUgMjMuNTctODUuMiA4OS41Ni02MS42MyAxNDcuMTIgOC4xOSAyMCAyMS42MSAzNi44NCAzOC44IDQ5LjA3YTYxLjYgNjEuNiAwIDAxLTEwLjgtMzQuODNjMC0xNC4zIDQuOTMtMjguMTMgMTMuOTYtMzkuMjJhNjIuNjYgNjIuNjYgMCAwMTUuOTktNi4zNiAxMjUuODIgMTI1LjgyIDAgMDEtMS42OS03MC4wOUExMjguNDMgMTI4LjQzIDAgMDE3OS44Mi0uMDV6IiBmaWxsPSIjZTFjMDE0Ii8+PC9zdmc+"},53107:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzE4Ljk0IiBoZWlnaHQ9IjI4OS42MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMjg1LjA0IDEyNy42YTcuNDIgNy40MiAwIDAxLTIuNjQtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzQgMS42Mi0zIC43NS02LjE1LS40NS03LjktM2E2MS4xIDYxLjEgMCAwMC01MC4zMy0yNi40OCA2MC44OSA2MC44OSAwIDAwLTQxLjE4IDE1Ljk4IDYwLjg4IDYwLjg4IDAgMDAtMTkuNiAzOS4xOSA3LjQyIDcuNDIgMCAwMS00LjIgNmMtLjczLjM1LTEuNDcuNzMtMi4yIDEuMTMtLjYyLjM0LTEuMjkuNi0xLjk4Ljc1YTQ3LjQ4IDQ3LjQ4IDAgMDAtMjYuMzUgMTYuMyA0Ni4yOSA0Ni4yOSAwIDAwLTEwLjUxIDI5LjU1YzAgMjUuOTIgMjEuMiA0NyA0Ny4yNyA0N2gxNTcuMzRjMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zMyIgcGFpbnQtb3JkZXI9InN0cm9rZSBmaWxsIG1hcmtlcnMiLz48cGF0aCBkPSJNMTE5Ljk1IDI4OS42M2E3LjQxIDcuNDEgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0xODIuMTMgMjg5LjYzYTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45My0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTI0NC4zMiAyODkuNjNhNy40MyA3LjQzIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDEwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjUiLz48L2c+PHBhdGggZD0iTTgwLjY2LS45Qzc3LjI5LjE0IDczLjk3IDEuMzIgNzAuNyAyLjY2IDEzLjE1IDI2LjIyLTE0LjUgOTIuMjEgOS4wNyAxNDkuNzdjOC4xOSAyMCAyMS42MSAzNi44NCAzOC44IDQ5LjA3QTYxLjYgNjEuNiAwIDAxMzcuMDcgMTY0YzAtMTQuMyA0LjkzLTI4LjEzIDEzLjk2LTM5LjIyYTYyLjY2IDYyLjY2IDAgMDE1Ljk5LTYuMzYgMTI1LjgyIDEyNS44MiAwIDAxLTEuNjktNzAuMDlBMTI4LjQzIDEyOC40MyAwIDAxODAuNjYtLjg5eiIgZmlsbD0iI2UxYzAxNCIvPjwvc3ZnPg=="},18138:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzE4Ljk0IiBoZWlnaHQ9IjI4OS42MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMjg1LjA0IDEyNy42YTcuNDIgNy40MiAwIDAxLTIuNjQtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzQgMS42Mi0zIC43NS02LjE1LS40NS03LjktM2E2MS4xIDYxLjEgMCAwMC01MC4zMy0yNi40OCA2MC44OSA2MC44OSAwIDAwLTQxLjE4IDE1Ljk4IDYwLjg4IDYwLjg4IDAgMDAtMTkuNiAzOS4xOSA3LjQyIDcuNDIgMCAwMS00LjIgNmMtLjczLjM1LTEuNDcuNzMtMi4yIDEuMTMtLjYyLjM0LTEuMjkuNi0xLjk4Ljc1YTQ3LjQ4IDQ3LjQ4IDAgMDAtMjYuMzUgMTYuMyA0Ni4yOSA0Ni4yOSAwIDAwLTEwLjUxIDI5LjU1YzAgMjUuOTIgMjEuMiA0NyA0Ny4yNyA0N2gxNTcuMzRjMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zMyIgcGFpbnQtb3JkZXI9InN0cm9rZSBmaWxsIG1hcmtlcnMiLz48cGF0aCBkPSJNMTI1LjAzIDI4Ny45NGE3LjQxIDcuNDEgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0xODcuMjEgMjg3Ljk0YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45My0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTI0OS40IDI4Ny45NGE3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMTAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0xNDkuNjMgMjYwLjhhNy40MyA3LjQzIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE3YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMjExLjgxIDI2MC44YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xN2E3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NSAyOS4xN2E3LjQzIDcuNDMgMCAwMDcuMSA1LjI2Ii8+PC9nPjxwYXRoIGQ9Ik03OS44Mi0uMDVjLTMuMzcgMS4wMi02LjY5IDIuMi05Ljk2IDMuNTQtNTcuNTUgMjMuNTctODUuMiA4OS41Ni02MS42MyAxNDcuMTIgOC4xOSAyMCAyMS42MSAzNi44NCAzOC44IDQ5LjA3YTYxLjYgNjEuNiAwIDAxLTEwLjgtMzQuODNjMC0xNC4zIDQuOTMtMjguMTMgMTMuOTYtMzkuMjJhNjIuNjYgNjIuNjYgMCAwMTUuOTktNi4zNiAxMjUuODIgMTI1LjgyIDAgMDEtMS42OS03MC4wOUExMjguNDMgMTI4LjQzIDAgMDE3OS44Mi0uMDV6IiBmaWxsPSIjZTFjMDE0Ii8+PC9zdmc+"},53748:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjM4LjMiIGhlaWdodD0iMjI4LjU3IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiM2MWM5ZTciPjxwYXRoIGQ9Ik05MS42NCA2Ni41NEw4Ni40NiA4NS45bDE4LjUyLTcuNjYgMTYuOCAxMC45MS0xLjU1LTE5Ljk3IDE1LjU3LTEyLjYyLTE5LjQ4LTQuNjktNy4xOS0xOC43LTEwLjQ4IDE3LjA3LTIwLjAxIDEuMDQgMTMgMTUuMjZNMTc2Ljc5IDQ1LjQ2bC03LjY3LTEwLjMtMy41MSAxMi4zNS0xMi4xNyA0LjEgMTAuNjYgNy4xNi4xNCAxMi44NCAxMC4xLTcuOTIgMTIuMjcgMy44My00LjQyLTEyLjA2IDcuNDMtMTAuNDgtMTIuODMuNDgiLz48cGF0aCBkPSJNMjEyLjE3IDE1NS42NGE1LjI1IDUuMjUgMCAwMS0xLjg3LTIuNzMgMzkuNTIgMzkuNTIgMCAwMC0zNy43OS0yOC4zOGMtMy4yIDAtNi40LjM5LTkuNSAxLjE2YTUuMjkgNS4yOSAwIDAxLTUuNjMtMi4xNCA0My41IDQzLjUgMCAwMC02NS4xNC03LjQ4IDQzLjM1IDQzLjM1IDAgMDAtMTMuOTUgMjcuOSA1LjMgNS4zIDAgMDEtMyA0LjI4Yy0uNTIuMjQtMS4wNC41MS0xLjU2LjgtLjQ0LjI0LS45MS40Mi0xLjQuNTNhMzMuODQgMzMuODQgMCAwMC0xOC43NyAxMS42IDMyLjk5IDMyLjk5IDAgMDAtNy40OCAyMS4wNWMwIDE4LjQ0IDE1LjEgMzMuNDUgMzMuNjUgMzMuNDVoMTEyYzE4LjU2IDAgMzMuNjYtMTUgMzMuNjYtMzMuNDVhMzMuMiAzMy4yIDAgMDAtMTMuMjItMjYuNTkiIHBhaW50LW9yZGVyPSJzdHJva2UgZmlsbCBtYXJrZXJzIi8+PC9nPjxwYXRoIGQ9Ik04Mi45LS4zM2ExMTcuNjIgMTE3LjYyIDAgMDAtMTAuMyAzLjY3QzEzLjA2IDI3LjczLTE1LjU1IDk2IDguODQgMTU1LjU0YTExNi40MyAxMTYuNDMgMCAwMDI2LjM2IDM5LjI0IDQ1LjYyIDQ1LjYyIDAgMDEtMS44Ny0xMi45QTQ2LjMgNDYuMyAwIDAxNDMuNyAxNTIuN2wuMDEtLjAxYTQ2LjU5IDQ2LjU5IDAgMDEyMC41Mi0xNC40N0ExMzAuNCAxMzAuNCAwIDAxNTYuNyA1MC42IDEzMi44OCAxMzIuODggMCAwMTgyLjktLjMyeiIgZmlsbD0iI2UxYzAxNCIvPjwvc3ZnPg=="},26625:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjM4LjMiIGhlaWdodD0iMjI4LjU3IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiM2MWM5ZTciPjxwYXRoIGQ9Ik05OC40MyAxMDIuMTJsLTUuMTkgMTkuMzYgMTguNTMtNy42NSAxNi44IDEwLjktMS41Ni0xOS45NyAxNS41OC0xMi42MS0xOS40OS00LjctNy4xOC0xOC43LTEwLjQ4IDE3LjA4LTIwLjAyIDEuMDQgMTMuMDEgMTUuMjVNMTc2Ljc5IDQ1LjQ2bC03LjY3LTEwLjMtMy41MSAxMi4zNS0xMi4xNyA0LjEgMTAuNjYgNy4xNi4xNCAxMi44NCAxMC4xLTcuOTIgMTIuMjcgMy44My00LjQyLTEyLjA2IDcuNDMtMTAuNDgtMTIuODMuNDgiLz48cGF0aCBkPSJNMjIwLjc2IDE3OS41OWEzLjUzIDMuNTMgMCAwMS0xLjI2LTEuODQgMjYuNTQgMjYuNTQgMCAwMC0zMS43Ni0xOC4yOCAzLjU1IDMuNTUgMCAwMS0zLjc4LTEuNDQgMjkuMjEgMjkuMjEgMCAwMC01My4xMiAxMy43MiAzLjU2IDMuNTYgMCAwMS0yIDIuODdjLS4zNi4xNy0uNzEuMzUtMS4wNi41NC0uMy4xNi0uNjEuMjgtLjk1LjM1YTIyLjczIDIyLjczIDAgMDAtMTIuNiA3LjggMjIuMTUgMjIuMTUgMCAwMC01LjAyIDE0LjEzIDIyLjU2IDIyLjU2IDAgMDAyMi42IDIyLjQ3aDc1LjIzYTIyLjU2IDIyLjU2IDAgMDAyMi42LTIyLjQ3IDIyLjMgMjIuMyAwIDAwLTguODgtMTcuODUiIHBhaW50LW9yZGVyPSJzdHJva2UgZmlsbCBtYXJrZXJzIi8+PC9nPjxwYXRoIGQ9Ik04Mi40Ny0uMDJhMTE3LjYyIDExNy42MiAwIDAwLTEwLjMgMy42N0MxMi42MyAyOC4wMy0xNS45NyA5Ni4zIDguNDEgMTU1Ljg1YTExNS45MSAxMTUuOTEgMCAwMDYyLjkgNjMuNCAxMTYuMTggMTE2LjE4IDAgMDA1NC4zOSA4LjczYy0xNC40LTIuNzQtMjUuNDUtMTUuNDQtMjUuNDUtMzAuNTcgMC0zLjQ2LjU5LTYuODYgMS43LTEwLjA5YTEzMC40MiAxMzAuNDIgMCAwMS00MC4xMi01My4zNSAxMzAuNCAxMzAuNCAwIDAxLTUuNTYtODMuMDZBMTMyLjg4IDEzMi44OCAwIDAxODIuNDctLjAyeiIgZmlsbD0iI2UxYzAxNCIvPjwvc3ZnPg=="},87760:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTg5LjYzIiBoZWlnaHQ9IjIyOC40IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik02Mi4xMSAxMzRhMTMwLjQgMTMwLjQgMCAwMS01LjU1LTgzLjA1QTEzMi44OSAxMzIuODkgMCAwMTgyLjc2IDBhMTE3LjY0IDExNy42NCAwIDAwLTEwLjMgMy42N0MxMi45MiAyOC4wNy0xNS43IDk2LjM0IDguNyAxNTUuODhhMTE1LjkxIDExNS45MSAwIDAwNjIuODkgNjMuNCAxMTUuOTMgMTE1LjkzIDAgMDA4OS4zLjM2YzMuMzktMS4zOSA2LjctMi45MiA5LjkyLTQuNjJhMTMyLjY2IDEzMi42NiAwIDAxLTU0LjQtMTcuOTIgMTMwLjQ1IDEzMC40NSAwIDAxLTU0LjMtNjMuMSIgZmlsbD0iI2UxYzAxNCIvPjxwYXRoIGQ9Ik0xMjIuMTUgMTIzLjNsLTUuMTkgMTkuMzcgMTguNTItNy42NSAxNi44MSAxMC45LTEuNTYtMTkuOTcgMTUuNTgtMTIuNjEtMTkuNDktNC43LTcuMTgtMTguNy0xMC40OCAxNy4wOC0yMC4wMiAxLjA0IDEzLjAxIDE1LjI1TTE3Ni43OSA0NS40NmwtNy42Ny0xMC4zLTMuNTEgMTIuMzUtMTIuMTcgNC4xIDEwLjY2IDcuMTYuMTQgMTIuODQgMTAuMS03LjkyIDEyLjI3IDMuODMtNC40Mi0xMi4wNiA3LjQzLTEwLjQ4LTEyLjgzLjQ4IiBmaWxsPSIjNjFjOWU3Ii8+PC9zdmc+"},37837:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUxLjg3IiBoZWlnaHQ9IjIyMy40NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDcuMjYgMTU1LjlIMjA0LjZjMjYuMDYgMCA0Ny4yNy0yMS4xIDQ3LjI3LTQ3YTQ2LjYgNDYuNiAwIDAwLTE4LjU2LTM3LjM0IDcuNDMgNy40MyAwIDAxLTIuNjQtMy44NSA1NS41IDU1LjUgMCAwMC01My4wOC0zOS44NmMtNC41IDAtOSAuNTQtMTMuMzQgMS42Mi0zIC43NC02LjE1LS40NS03LjktM0E2MS4xIDYxLjEgMCAwMDEwNi4wMSAwYTYwLjg5IDYwLjg5IDAgMDAtNDEuMTggMTUuOTggNjAuODggNjAuODggMCAwMC0xOS42IDM5LjE5IDcuNDIgNy40MiAwIDAxLTQuMiA2Yy0uNzQuMzUtMS40OC43My0yLjIgMS4xMy0uNjIuMzQtMS4yOS42LTEuOTguNzVhNDcuNDcgNDcuNDcgMCAwMC0yNi4zNSAxNi4zQTQ2LjMgNDYuMyAwIDAwMCAxMDguOWMwIDI1LjkyIDIxLjIgNDcgNDcuMjYgNDciIGZpbGw9IiM0NDkyYTgiLz48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNNTUuNTUgMTc5Ljc0YTcuNDIgNy40MiAwIDAwLTQuOTIgOS4yOGw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDEwMTQuMi00LjM1bC04Ljk0LTI5LjE3YTcuNDIgNy40MiAwIDAwLTkuMjgtNC45M00xMTcuNzQgMTc5Ljc0YTcuNDMgNy40MyAwIDAwLTQuOTMgOS4yOGw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwMTQuMi00LjM1bC04Ljk0LTI5LjE3YTcuNDMgNy40MyAwIDAwLTkuMjctNC45M00xNzkuOTIgMTc5Ljc0YTcuNDMgNy40MyAwIDAwLTQuOTIgOS4yOGw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwMTQuMi00LjM1bC04Ljk0LTI5LjE3YTcuNDMgNy40MyAwIDAwLTkuMjgtNC45MyIvPjwvZz48L3N2Zz4="},53254:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzA3LjE5IiBoZWlnaHQ9IjI5MS4zMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTUuNTcgOTIuNTRjMCA5LjI3IDMuNDMgMTguMDIgOS41NCAyNC43NmE2Mi4zNiA2Mi4zNiAwIDAxMjEuMjItMTAuMzggNzUuNzIgNzUuNzIgMCAwMTI1LjYxLTQ1LjggMzYuOTcgMzYuOTcgMCAwMC01Ni4zNyAzMS40IiBmaWxsPSIjZGVjNjBmIi8+PGcgZmlsbD0iIzYxYzllNyI+PHBhdGggZD0iTTI4OC42IDEyOS4zYTcuNDIgNy40MiAwIDAxLTIuNjMtMy44NUE1NS41IDU1LjUgMCAwMDIzMi45IDg1LjZjLTQuNSAwLTkgLjU0LTEzLjM0IDEuNjItMyAuNzUtNi4xNS0uNDUtNy45LTNhNjEuMSA2MS4xIDAgMDAtNTAuMzMtMjYuNDggNjAuODkgNjAuODkgMCAwMC00MS4xOCAxNS45OCA2MC44OCA2MC44OCAwIDAwLTE5LjYgMzkuMTkgNy40MiA3LjQyIDAgMDEtNC4yIDZjLS43My4zNS0xLjQ3LjczLTIuMiAxLjEzLS42Mi4zNC0xLjI5LjYtMS45OC43NWE0Ny40OCA0Ny40OCAwIDAwLTI2LjM1IDE2LjMgNDYuMjkgNDYuMjkgMCAwMC0xMC41MSAyOS41NWMwIDI1LjkyIDIxLjIgNDcgNDcuMjcgNDdIMjU5LjljMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zM005NS4zNSAyNjMuNzdhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjVNMTU3LjUzIDI2My43N2E3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0yMTkuNzIgMjYzLjc3YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1Ii8+PC9nPjxnIGZpbGw9IiNkZWM2MGYiPjxwYXRoIGQ9Ik04NS4wOCA3LjQ1djIwLjg5YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDEwLTE0Ljg1IDBNNjAuNDEgNDQuMzZhNy40MyA3LjQzIDAgMDA2LjQyLTExLjE0TDU2LjQgMTUuMTJhNy40MyA3LjQzIDAgMDAtMTIuODYgNy40NGwxMC40NSAxOC4wOWE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU00MC42MSA1NEwyMi41MiA0My41NmE3LjQzIDcuNDMgMCAxMC03LjQzIDEyLjg2bDE4LjEgMTAuNDVBNy40MyA3LjQzIDAgMDA0MC42MiA1NE0zNS43MyA5Mi41NGMwLTQuMS0zLjMyLTcuNDMtNy40Mi03LjQzSDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMjAuOWM0LjEgMCA3LjQyLTMuMzIgNy40Mi03LjQyTTQwLjYxIDEzMS4wN2E3LjQzIDcuNDMgMCAxMC03LjQyLTEyLjg2bC0xOC4xIDEwLjQ0YTcuNDMgNy40MyAwIDEwNy40MyAxMi44N2wxOC4xLTEwLjQ1TTEyMC45IDQzLjM2YTcuNDIgNy40MiAwIDAwMTAuMTUtMi43MmwxMC40My0xOC4wOWE3LjQzIDcuNDMgMCAwMC0xMi44Ni03LjQybC0xMC40NSAxOC4xYTcuNDMgNy40MyAwIDAwMi43MiAxMC4xMyIvPjwvZz48ZyBmaWxsPSIjNjFjOWU3Ij48cGF0aCBkPSJNMTk0LjQxIDI5MC41OWE3LjQxIDcuNDEgMCAwMDcuMS05LjZsLTguOTQtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMTdhNy40MyA3LjQzIDAgMDA3LjEgNS4yNk0xMzIuNyAyODkuMzlhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk1LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjZNMjgwLjE3IDI2MS42YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTI1NC44NiAyODguNDFhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE4YTcuNDMgNy40MyAwIDAwNy4xIDUuMjUiLz48L2c+PC9zdmc+"},14593:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzA3LjE5IiBoZWlnaHQ9IjI5MS4zMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTUuNTcgOTIuNTRjMCA5LjI3IDMuNDMgMTguMDIgOS41NCAyNC43NmE2Mi4zNiA2Mi4zNiAwIDAxMjEuMjItMTAuMzggNzUuNzIgNzUuNzIgMCAwMTI1LjYxLTQ1LjggMzYuOTcgMzYuOTcgMCAwMC01Ni4zNyAzMS40IiBmaWxsPSIjZGVjNjBmIi8+PGcgZmlsbD0iIzYxYzllNyI+PHBhdGggZD0iTTI4OC42IDEyOS4zYTcuNDIgNy40MiAwIDAxLTIuNjMtMy44NUE1NS41IDU1LjUgMCAwMDIzMi45IDg1LjZjLTQuNSAwLTkgLjU0LTEzLjM0IDEuNjItMyAuNzUtNi4xNS0uNDUtNy45LTNhNjEuMSA2MS4xIDAgMDAtNTAuMzMtMjYuNDggNjAuODkgNjAuODkgMCAwMC00MS4xOCAxNS45OCA2MC44OCA2MC44OCAwIDAwLTE5LjYgMzkuMTkgNy40MiA3LjQyIDAgMDEtNC4yIDZjLS43My4zNS0xLjQ3LjczLTIuMiAxLjEzLS42Mi4zNC0xLjI5LjYtMS45OC43NWE0Ny40OCA0Ny40OCAwIDAwLTI2LjM1IDE2LjMgNDYuMjkgNDYuMjkgMCAwMC0xMC41MSAyOS41NWMwIDI1LjkyIDIxLjIgNDcgNDcuMjcgNDdIMjU5LjljMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zM00xMjMuNTIgMjkxLjMzYTcuNDEgNy40MSAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTE4NS43IDI5MS4zM2E3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTMtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0yNDcuODkgMjkxLjMzYTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1Ii8+PC9nPjxnIGZpbGw9IiNkZWM2MGYiPjxwYXRoIGQ9Ik04NS4wOCA3LjQ1djIwLjg5YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDEwLTE0Ljg1IDBNNjAuNDEgNDQuMzZhNy40MyA3LjQzIDAgMDA2LjQyLTExLjE0TDU2LjQgMTUuMTJhNy40MyA3LjQzIDAgMDAtMTIuODYgNy40NGwxMC40NSAxOC4wOWE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU00MC42MSA1NEwyMi41MiA0My41NmE3LjQzIDcuNDMgMCAxMC03LjQzIDEyLjg2bDE4LjEgMTAuNDVBNy40MyA3LjQzIDAgMDA0MC42MiA1NE0zNS43MyA5Mi41NGMwLTQuMS0zLjMyLTcuNDMtNy40Mi03LjQzSDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMjAuOWM0LjEgMCA3LjQyLTMuMzIgNy40Mi03LjQyTTQwLjYxIDEzMS4wN2E3LjQzIDcuNDMgMCAxMC03LjQyLTEyLjg2bC0xOC4xIDEwLjQ0YTcuNDMgNy40MyAwIDEwNy40MyAxMi44N2wxOC4xLTEwLjQ1TTEyMC45IDQzLjM2YTcuNDIgNy40MiAwIDAwMTAuMTUtMi43MmwxMC40My0xOC4wOWE3LjQzIDcuNDMgMCAwMC0xMi44Ni03LjQybC0xMC40NSAxOC4xYTcuNDMgNy40MyAwIDAwMi43MiAxMC4xMyIvPjwvZz48L3N2Zz4="},97251:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzA3LjE5IiBoZWlnaHQ9IjI5MS4zMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTUuNTcgOTIuNTRjMCA5LjI3IDMuNDMgMTguMDIgOS41NCAyNC43NmE2Mi4zNiA2Mi4zNiAwIDAxMjEuMjItMTAuMzggNzUuNzIgNzUuNzIgMCAwMTI1LjYxLTQ1LjggMzYuOTcgMzYuOTcgMCAwMC01Ni4zNyAzMS40IiBmaWxsPSIjZGVjNjBmIi8+PGcgZmlsbD0iIzYxYzllNyI+PHBhdGggZD0iTTI4OC42IDEyOS4zYTcuNDIgNy40MiAwIDAxLTIuNjMtMy44NUE1NS41IDU1LjUgMCAwMDIzMi45IDg1LjZjLTQuNSAwLTkgLjU0LTEzLjM0IDEuNjItMyAuNzUtNi4xNS0uNDUtNy45LTNhNjEuMSA2MS4xIDAgMDAtNTAuMzMtMjYuNDggNjAuODkgNjAuODkgMCAwMC00MS4xOCAxNS45OCA2MC44OCA2MC44OCAwIDAwLTE5LjYgMzkuMTkgNy40MiA3LjQyIDAgMDEtNC4yIDZjLS43My4zNS0xLjQ3LjczLTIuMiAxLjEzLS42Mi4zNC0xLjI5LjYtMS45OC43NWE0Ny40OCA0Ny40OCAwIDAwLTI2LjM1IDE2LjMgNDYuMjkgNDYuMjkgMCAwMC0xMC41MSAyOS41NWMwIDI1LjkyIDIxLjIgNDcgNDcuMjcgNDdIMjU5LjljMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42IDQ2LjYgMCAwMC0xOC41Ni0zNy4zM00xMTYuOTIgMjY0Ljk3YTcuNDEgNy40MSAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1TTE3OS4xIDI2NC45N2E3LjQzIDcuNDMgMCAwMDcuMS05LjZsLTguOTMtMjkuMThhNy40MyA3LjQzIDAgMDAtMTQuMiA0LjM1bDguOTQgMjkuMThhNy40MyA3LjQzIDAgMDA3LjEgNS4yNU0yNDEuMjkgMjY0Ljk3YTcuNDMgNy40MyAwIDAwNy4xLTkuNmwtOC45NC0yOS4xOGE3LjQzIDcuNDMgMCAxMC0xNC4yIDQuMzVsOC45NCAyOS4xOGE3LjQzIDcuNDMgMCAwMDcuMSA1LjI1Ii8+PC9nPjxnIGZpbGw9IiNkZWM2MGYiPjxwYXRoIGQ9Ik04NS4wOCA3LjQ1djIwLjg5YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDEwLTE0Ljg1IDBNNjAuNDEgNDQuMzZhNy40MyA3LjQzIDAgMDA2LjQyLTExLjE0TDU2LjQgMTUuMTJhNy40MyA3LjQzIDAgMDAtMTIuODYgNy40NGwxMC40NSAxOC4wOWE3LjQyIDcuNDIgMCAwMDYuNDMgMy43MU00MC42MSA1NEwyMi41MiA0My41NmE3LjQzIDcuNDMgMCAxMC03LjQzIDEyLjg2bDE4LjEgMTAuNDVBNy40MyA3LjQzIDAgMDA0MC42MiA1NE0zNS43MyA5Mi41NGMwLTQuMS0zLjMyLTcuNDMtNy40Mi03LjQzSDcuNGE3LjQzIDcuNDMgMCAwMDAgMTQuODVoMjAuOWM0LjEgMCA3LjQyLTMuMzIgNy40Mi03LjQyTTQwLjYxIDEzMS4wN2E3LjQzIDcuNDMgMCAxMC03LjQyLTEyLjg2bC0xOC4xIDEwLjQ0YTcuNDMgNy40MyAwIDEwNy40MyAxMi44N2wxOC4xLTEwLjQ1TTEyMC45IDQzLjM2YTcuNDIgNy40MiAwIDAwMTAuMTUtMi43MmwxMC40My0xOC4wOWE3LjQzIDcuNDMgMCAwMC0xMi44Ni03LjQybC0xMC40NSAxOC4xYTcuNDMgNy40MyAwIDAwMi43MiAxMC4xMyIvPjwvZz48cGF0aCBkPSJNMjE1Ljk4IDI5MS43OWE3LjQxIDcuNDEgMCAwMDcuMS05LjZMMjE0LjE1IDI1M2E3LjQzIDcuNDMgMCAwMC0xNC4yIDQuMzVsOC45NSAyOS4xN2E3LjQzIDcuNDMgMCAwMDcuMSA1LjI2TTE1NC4yNyAyOTAuNTlhNy40MSA3LjQxIDAgMDA3LjEtOS42bC04Ljk0LTI5LjE4YTcuNDMgNy40MyAwIDAwLTE0LjIgNC4zNWw4Ljk0IDI5LjE3YTcuNDMgNy40MyAwIDAwNy4xIDUuMjYiIGZpbGw9IiM2MWM5ZTciLz48L3N2Zz4="},16767:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzA3LjE5IiBoZWlnaHQ9IjIxMy42MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjg4LjYgMTI5LjM3YTcuMzggNy4zOCAwIDAxLTIuNjMtMy44NCA1NS41MSA1NS41MSAwIDAwLTUzLjA4LTM5Ljg3Yy00LjUgMC05IC41NS0xMy4zNCAxLjYzLTMgLjc1LTYuMTUtLjQ1LTcuOS0zYTYxLjEgNjEuMSAwIDAwLTkxLjUxLTEwLjUgNjAuODkgNjAuODkgMCAwMC0xOS42IDM5LjIgNy40NCA3LjQ0IDAgMDEtNC4yIDZjLS43My4zNC0xLjQ3LjcxLTIuMiAxLjExLS42Mi4zNS0xLjI5LjYtMS45OC43NWE0Ny41NCA0Ny41NCAwIDAwLTI2LjM1IDE2LjMgNDYuMzMgNDYuMzMgMCAwMC0xMC41MSAyOS41NmMwIDI1LjkyIDIxLjIgNDcgNDcuMjcgNDdIMjU5LjljMjYuMDYgMCA0Ny4yNi0yMS4wOCA0Ny4yNi00N2E0Ni42MyA0Ni42MyAwIDAwLTE4LjU2LTM3LjM0IiBmaWxsPSIjNjFjOWU3Ii8+PGcgZmlsbD0iI2RlYzYwZiI+PHBhdGggZD0iTTU1LjU3IDkyLjU3YTM2LjcgMzYuNyAwIDAwOS41NCAyNC43NiA2Mi4zNiA2Mi4zNiAwIDAxMjEuMjItMTAuMzkgNzUuNjggNzUuNjggMCAwMTI1LjYxLTQ1Ljc4IDM2Ljk3IDM2Ljk3IDAgMDAtNTYuMzcgMzEuNDFNOTIuNSAzNS43N2M0LjEgMCA3LjQzLTMuMzMgNy40My03LjQzVjcuNDVhNy40MiA3LjQyIDAgMTAtMTQuODUgMHYyMC45YzAgNC4wOSAzLjMzIDcuNDIgNy40MyA3LjQyTTUzLjk3IDQwLjdhNy40MiA3LjQyIDAgMTAxMi44Ny03LjQybC0xMC40NS0xOC4xYTcuNDMgNy40MyAwIDAwLTEyLjg2IDcuNDNsMTAuNDQgMTguMU0xNS4xIDU2LjQ0bDE4LjA5IDEwLjQ1YTcuNDcgNy40NyAwIDAwMTAuMTQtMi43MiA3LjQzIDcuNDMgMCAwMC0yLjcxLTEwLjE1bC0xOC4xLTEwLjQ1YTcuNDMgNy40MyAwIDAwLTcuNDMgMTIuODdNNy40MiAxMDAuMDRIMjguM2E3LjQzIDcuNDMgMCAwMDAtMTQuODZINy40MWE3LjQyIDcuNDIgMCAxMDAgMTQuODZNNDMuMzMgMTIwLjk3YTcuNDIgNy40MiAwIDAwLTEwLjE0LTIuNzJsLTE4LjEgMTAuNDRhNy40MyA3LjQzIDAgMDA3LjQzIDEyLjg2bDE4LjEtMTAuNDRhNy40MyA3LjQzIDAgMDAyLjcxLTEwLjE0TTEyMC45IDQzLjM3YTcuNDIgNy40MiAwIDAwMTAuMTUtMi43MmwxMC40My0xOC4xYTcuNDMgNy40MyAwIDAwLTEyLjg2LTcuNDJsLTEwLjQ1IDE4LjFhNy40MyA3LjQzIDAgMDAyLjcyIDEwLjE0Ii8+PC9nPjwvc3ZnPg=="},74351:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgwLjUiIGhlaWdodD0iMjgwLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI1NyAyMTkuNzRhNC4zIDQuMyAwIDAxLTEuNTMtMi4yNCAzMi4zOCAzMi4zOCAwIDAwLTMwLjk2LTIzLjI2Yy0yLjYzIDAtNS4yNS4zMi03Ljc4Ljk1YTQuMzMgNC4zMyAwIDAxLTQuNjEtMS43NSAzNS42MyAzNS42MyAwIDAwLTUzLjM4LTYuMTMgMzUuNTIgMzUuNTIgMCAwMC0xMS40MyAyMi44NyA0LjM0IDQuMzQgMCAwMS0yLjQ1IDMuNWMtLjQyLjItLjg2LjQyLTEuMjguNjUtLjM2LjItLjc1LjM1LTEuMTUuNDRhMjcuNzMgMjcuNzMgMCAwMC0xNS4zNyA5LjUgMjcuMDMgMjcuMDMgMCAwMC02LjEzIDE3LjI1IDI3LjUyIDI3LjUyIDAgMDAyNy41NiAyNy40aDkxLjc3YzE1LjIgMCAyNy41Ny0xMi4yOSAyNy41Ny0yNy40YTI3LjIgMjcuMiAwIDAwLTEwLjgyLTIxLjc4IiBmaWxsPSIjNjFjOWU3IiBwYWludC1vcmRlcj0ic3Ryb2tlIGZpbGwgbWFya2VycyIvPjxnIGZpbGw9IiNkZWM2MGYiPjxwYXRoIGQ9Ik0xNDAuMiA3MC43M0E2OS44NiA2OS44NiAwIDAwNzAuNCAxNDAuNWMwIDMzLjMzIDIzLjUgNjEuMjcgNTQuOCA2OC4xNGE0MC42IDQwLjYgMCAwMTEwLjAzLTUuMSA0OC42MSA0OC42MSAwIDAxMTQuNy0yNS41OGguMDFhNDguNTkgNDguNTkgMCAwMTUzLjUtOC4wNSA2OS4zNSA2OS4zNSAwIDAwNi41Mi0yOS40MSA2OS44NiA2OS44NiAwIDAwLTY5Ljc4LTY5Ljc4em0tLjkgMTMxLjQ0bC0uMS4wNC0uMDQuMDMuMTMtLjA3ek0xMzIuOCAzOC45YTcuNDMgNy40MyAwIDAwMTQuODUgMFY3LjQ0YTcuNDMgNy40MyAwIDAwLTE0Ljg1IDBWMzguOU04OS41NCA1OS45MWE3LjQzIDcuNDMgMCAwMDYuNDMtMTEuMTRMODAuMjQgMjEuNTNhNy40MyA3LjQzIDAgMDAtMTIuODYgNy40M0w4My4xIDU2LjJhNy40MiA3LjQyIDAgMDA2LjQzIDMuNzFNMTguNzYgNzAuMTRhNy40MyA3LjQzIDAgMDAyLjcyIDEwLjE1TDQ4LjcyIDk2YTcuNDIgNy40MiAwIDEwNy40My0xMi44NkwyOC45IDY3LjQyYTcuNDMgNy40MyAwIDAwLTEwLjE0IDIuNzJNNDYuMjggMTQwLjI3YzAtNC4xLTMuMzMtNy40Mi03LjQzLTcuNDJINy40YTcuNDMgNy40MyAwIDAwMCAxNC44NWgzMS40NmM0LjEgMCA3LjQzLTMuMzMgNy40My03LjQzTTI3My4wNSAxMzIuODVoLTMxLjQ2YTcuNDMgNy40MyAwIDAwMCAxNC44NWgzMS40NmE3LjQzIDcuNDMgMCAwMDAtMTQuODVNNDguNzMgMTg0LjUxTDIxLjUgMjAwLjI0YTcuNDMgNy40MyAwIDEwNy40MiAxMi44NmwyNy4yNS0xNS43M2E3LjQzIDcuNDMgMCAwMC03LjQzLTEyLjg2TTI1MS41NCA2Ny40MkwyMjQuMyA4My4xNUE3LjQzIDcuNDMgMCAwMDIzMS43MiA5NmwyNy4yNC0xNS43M2E3LjQzIDcuNDMgMCAwMC03LjQyLTEyLjg2TTgzLjEgMjI0LjM0bC0xNS43MyAyNy4yNGE3LjQzIDcuNDMgMCAwMDEyLjg3IDcuNDNsMTUuNzMtMjcuMjVhNy40MyA3LjQzIDAgMDAtMTIuODctNy40Mk0xODcuMiA1OC45MWE3LjQgNy40IDAgMDAxMC4xNC0yLjcxbDE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDEwLTEyLjg2LTcuNDJsLTE1LjczIDI3LjI0YTcuNDMgNy40MyAwIDAwMi43MSAxMC4xNCIvPjwvZz48L3N2Zz4="},71211:function(M){"use strict";M.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgwLjUiIGhlaWdodD0iMjgwLjUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjZGVjNjBmIj48cGF0aCBkPSJNMTQwLjIyIDIxMC4wNGMzOC40OCAwIDY5Ljc4LTMxLjMgNjkuNzgtNjkuNzhzLTMxLjMtNjkuNzgtNjkuNzgtNjkuNzhjLTM4LjQ3IDAtNjkuNzggMzEuMy02OS43OCA2OS43OHMzMS4zIDY5Ljc4IDY5Ljc4IDY5Ljc4TTEzMi44IDM4LjlhNy40MyA3LjQzIDAgMDAxNC44NSAwVjcuNDRhNy40MyA3LjQzIDAgMDAtMTQuODUgMFYzOC45TTEzMi44IDI0MS42M3YzMS40NmE3LjQzIDcuNDMgMCAwMDE0Ljg1IDB2LTMxLjQ2YTcuNDMgNy40MyAwIDAwLTE0Ljg1IDBNODkuNTQgNTkuOTFhNy40MyA3LjQzIDAgMDA2LjQzLTExLjE0TDgwLjI0IDIxLjUzYTcuNDMgNy40MyAwIDAwLTEyLjg2IDcuNDNMODMuMSA1Ni4yYTcuNDIgNy40MiAwIDAwNi40MyAzLjcxTTE4Ny4yIDIyMS42MmE3LjQzIDcuNDMgMCAwMC0yLjcyIDEwLjE0TDIwMC4yIDI1OWE3LjQyIDcuNDIgMCAxMDEyLjg2LTcuNDJsLTE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDAwLTEwLjE1LTIuNzFNMTguNzYgNzAuMTRhNy40MyA3LjQzIDAgMDAyLjcyIDEwLjE1TDQ4LjcyIDk2YTcuNDIgNy40MiAwIDEwNy40My0xMi44NkwyOC45IDY3LjQyYTcuNDMgNy40MyAwIDAwLTEwLjE0IDIuNzJNMjU4Ljk3IDIwMC4yNGwtMjcuMjUtMTUuNzNhNy40MyA3LjQzIDAgMDAtNy40MiAxMi44N2wyNy4yNCAxNS43M2E3LjQgNy40IDAgMDAxMC4xNC0yLjcyIDcuNDMgNy40MyAwIDAwLTIuNzEtMTAuMTVNNDYuMjggMTQwLjI3YzAtNC4xLTMuMzMtNy40Mi03LjQzLTcuNDJINy40YTcuNDMgNy40MyAwIDAwMCAxNC44NWgzMS40NmM0LjEgMCA3LjQzLTMuMzMgNy40My03LjQzTTI3My4wNSAxMzIuODVoLTMxLjQ2YTcuNDMgNy40MyAwIDAwMCAxNC44NWgzMS40NmE3LjQzIDcuNDMgMCAwMDAtMTQuODVNNDguNzMgMTg0LjUxTDIxLjUgMjAwLjI0YTcuNDMgNy40MyAwIDEwNy40MiAxMi44NmwyNy4yNS0xNS43M2E3LjQzIDcuNDMgMCAwMC03LjQzLTEyLjg2TTI1MS41NCA2Ny40MkwyMjQuMyA4My4xNUE3LjQzIDcuNDMgMCAwMDIzMS43MiA5NmwyNy4yNC0xNS43M2E3LjQzIDcuNDMgMCAwMC03LjQyLTEyLjg2TTgzLjEgMjI0LjM0bC0xNS43MyAyNy4yNGE3LjQzIDcuNDMgMCAwMDEyLjg3IDcuNDNsMTUuNzMtMjcuMjVhNy40MyA3LjQzIDAgMDAtMTIuODctNy40Mk0xODcuMiA1OC45MWE3LjQgNy40IDAgMDAxMC4xNC0yLjcxbDE1LjczLTI3LjI1YTcuNDMgNy40MyAwIDEwLTEyLjg2LTcuNDJsLTE1LjczIDI3LjI0YTcuNDMgNy40MyAwIDAwMi43MSAxMC4xNCIgZmlsbD0iI2RlYzYwZiIvPjwvZz48L3N2Zz4K"}},u={};function e(M){var t=u[M];if(void 0!==t)return t.exports;var N=u[M]={id:M,loaded:!1,exports:{}};return n[M].call(N.exports,N,N.exports,e),N.loaded=!0,N.exports}e.m=n,e.amdD=function(){throw new Error("define cannot be used indirect")},e.amdO={},M=[],e.O=function(t,n,u,N){if(!n){var A=1/0;for(r=0;r<M.length;r++){n=M[r][0],u=M[r][1],N=M[r][2];for(var j=!0,i=0;i<n.length;i++)(!1&N||A>=N)&&Object.keys(e.O).every((function(M){return e.O[M](n[i])}))?n.splice(i--,1):(j=!1,N<A&&(A=N));if(j){M.splice(r--,1);var D=u();void 0!==D&&(t=D)}}return t}N=N||0;for(var r=M.length;r>0&&M[r-1][2]>N;r--)M[r]=M[r-1];M[r]=[n,u,N]},e.n=function(M){var t=M&&M.__esModule?function(){return M.default}:function(){return M};return e.d(t,{a:t}),t},e.d=function(M,t){for(var n in t)e.o(t,n)&&!e.o(M,n)&&Object.defineProperty(M,n,{enumerable:!0,get:t[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(M){if("object"==typeof window)return window}}(),e.o=function(M,t){return Object.prototype.hasOwnProperty.call(M,t)},e.r=function(M){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(M,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(M,"__esModule",{value:!0})},e.nmd=function(M){return M.paths=[],M.children||(M.children=[]),M},e.j=5275,function(){e.b=document.baseURI||self.location.href;var M={5275:0};e.O.j=function(t){return 0===M[t]};var t=function(t,n){var u,N,A=n[0],j=n[1],i=n[2],D=0;if(A.some((function(t){return 0!==M[t]}))){for(u in j)e.o(j,u)&&(e.m[u]=j[u]);if(i)var r=i(e)}for(t&&t(n);D<A.length;D++)N=A[D],e.o(M,N)&&M[N]&&M[N][0](),M[N]=0;return e.O(r)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var N=e.O(void 0,[7874],(function(){return e(76149)}));N=e.O(N)}();
+//# sourceMappingURL=weather_status-weather-status.js.map?v=60a853ef3584aef45967 \ No newline at end of file
diff --git a/dist/weather_status-weather-status.js.map b/dist/weather_status-weather-status.js.map
index ad3c80d6cc1..c52511a6cae 100644
--- a/dist/weather_status-weather-status.js.map
+++ b/dist/weather_status-weather-status.js.map
@@ -1 +1 @@
-{"version":3,"file":"weather_status-weather-status.js?v=202c9866f5153d574cba","mappings":";gBAAIA,ojBCgCJ,IAAMC,EAAW,4CAAG,WAAOC,EAAKC,GAAZ,+FACbC,GAAMC,EAAAA,EAAAA,gBAAe,uCADR,SAEIC,EAAAA,QAAAA,IAAeF,EAAK,CAC1CG,QAAS,GACTL,IAAAA,EACAC,IAAAA,IALkB,cAEbK,EAFa,yBAQZA,EAASC,KAAKC,IAAID,MARN,2CAAH,wDAgBXE,EAAU,4CAAG,WAAOJ,GAAP,+FACZH,GAAMC,EAAAA,EAAAA,gBAAe,uCADT,SAEKC,EAAAA,QAAAA,IAAeF,EAAK,CAC1CG,QAAAA,EACAL,IAAK,KACLC,IAAK,OALY,cAEZK,EAFY,yBAQXA,EAASC,KAAKC,IAAID,MARP,2CAAH,sDAgBVG,EAAO,4CAAG,WAAOC,GAAP,+FACTT,GAAMC,EAAAA,EAAAA,gBAAe,mCADZ,SAEQC,EAAAA,QAAAA,IAAeF,EAAK,CAC1CS,KAAAA,IAHc,cAETL,EAFS,yBAMRA,EAASC,KAAKC,IAAID,MANV,2CAAH,sDAaPK,EAAkB,4CAAG,4GACpBV,GAAMC,EAAAA,EAAAA,gBAAe,2CADD,SAEHC,EAAAA,QAAAA,IAAeF,GAFZ,cAEpBI,EAFoB,yBAInBA,EAASC,KAAKC,IAAID,MAJC,2CAAH,qDAYlBM,EAAW,4CAAG,4GACbX,GAAMC,EAAAA,EAAAA,gBAAe,uCADR,SAEIC,EAAAA,QAAAA,IAAeF,GAFnB,cAEbI,EAFa,yBAIZA,EAASC,KAAKC,IAAID,MAJN,2CAAH,qDAYXO,EAAa,4CAAG,4GACfZ,GAAMC,EAAAA,EAAAA,gBAAe,uCADN,SAEEC,EAAAA,QAAAA,IAAeF,GAFjB,cAEfI,EAFe,yBAIdA,EAASC,KAAKC,IAAID,MAJJ,2CAAH,qDAYbQ,EAAY,4CAAG,4GACdb,GAAMC,EAAAA,EAAAA,gBAAe,wCADP,SAEGC,EAAAA,QAAAA,IAAeF,GAFlB,cAEdI,EAFc,yBAIbA,EAASC,KAAKC,IAAID,MAJL,2CAAH,qDAYZS,EAAa,4CAAG,WAAOC,GAAP,+FACff,GAAMC,EAAAA,EAAAA,gBAAe,wCADN,SAEEC,EAAAA,QAAAA,IAAeF,EAAK,CAC1Ce,UAAAA,IAHoB,cAEfX,EAFe,yBAMdA,EAASC,KAAKC,IAAID,MANJ,2CAAH,kXCxCnB,IAEA,GACA,cACA,yBACA,0FACA,wFACA,8EAEA,gBACA,2BACA,0FACA,wFACA,8EAEA,QACA,mBACA,0FACA,qFACA,2EAEA,UACA,qBACA,0FACA,2FACA,iFAEA,YACA,uBACA,0FACA,2FACA,iFAEA,kBACA,6BACA,0FACA,4FACA,kFAEA,oBACA,+BACA,0FACA,4FACA,kFAEA,KACA,gBACA,0FACA,oFACA,0EAEA,WACA,sBACA,0FACA,yFACA,+EAEA,MACA,iBACA,0FACA,mFACA,yEAEA,WACA,sBACA,0FACA,yFACA,+EAEA,iBACA,4BACA,0FACA,2FACA,iFAEA,mBACA,8BACA,0FACA,2FACA,iFAEA,sBACA,kCACA,0FACA,iGACA,uFAEA,wBACA,oCACA,0FACA,iGACA,uFAEA,sBACA,kCACA,0FACA,iGACA,uFAEA,wBACA,oCACA,0FACA,iGACA,wFAIA,GACA,WACA,YACA,gGAEA,OACA,QACA,aACA,aAGA,KAXA,WAYA,OACA,yBACA,WACA,gBACA,KA3HA,EA4HA,aACA,SACA,SAEA,SACA,aACA,UACA,aACA,mBAGA,UACA,oBADA,WAEA,+EAEA,gBAJA,WAKA,2CAEA,aAPA,WAQA,wEAEA,YAVA,WAWA,8CAEA,kBAbA,WAcA,wDAEA,YAhBA,WAiBA,8CAEA,kBAnBA,WAoBA,wDAEA,YAtBA,WAuBA,2DAEA,kBAzBA,WA0BA,iEAOA,sBAjCA,WAkCA,oBACA,sCACA,kBACA,kBAEA,2DAGA,gBA1CA,WA2CA,oBACA,sCAEA,0EAGA,kBAjDA,WAkDA,oFAEA,WApDA,WAqDA,yCAEA,sBAvDA,WAwDA,qCACA,eACA,aAEA,sBA5DA,WA6DA,qCACA,4CACA,uCAEA,yBAjEA,WAiEA,WACA,wCACA,yBAGA,oBAtEA,WAuEA,0BACA,kBACA,mBAEA,mBA3EA,WA4EA,0BACA,eACA,KAGA,QA7GA,WA8GA,0BAEA,SACA,kBADA,WACA,2KAEA,IAFA,cAEA,EAFA,OAGA,YACA,YACA,oBACA,cAlOA,IAoOA,OACA,uBApOA,IAqOA,QACA,cAXA,UAaA,IAbA,QAaA,EAbA,OAcA,cAdA,qDAgBA,+DAhBA,wBAiBA,qFAjBA,2BAoBA,2CACA,uDAEA,0FAEA,oBAzBA,6DA4BA,UA7BA,WA6BA,WACA,yBACA,oBACA,iEACA,oBAEA,iBAGA,mBAtCA,WAsCA,WACA,gBACA,qBACA,8CACA,sDACA,0CACA,wBACA,yBACA,WAzQA,GA0QA,OA1QA,EA2QA,+BAEA,YACA,6CACA,iBACA,WA/QA,GAgRA,OAhRA,EAkRA,aACA,cAEA,2BAIA,oCACA,cA1RA,GA2RA,UA3RA,EA4RA,mBAGA,YArEA,WAqEA,mKAEA,IAFA,OAEA,YAFA,uDAIA,kEACA,oBALA,QAOA,aAPA,4DASA,WA9EA,SA8EA,0JACA,aACA,kBAFA,kBAIA,KAJA,QAIA,EAJA,QAKA,SACA,YACA,YACA,oBACA,OAjTA,EAkTA,gBAEA,wDACA,cAbA,gDAgBA,2CACA,uDAEA,gFAEA,aArBA,4DAwBA,aAtGA,SAsGA,8KAEA,OAFA,OAEA,EAFA,OAGA,oBACA,cAJA,gDAMA,2CACA,uDAEA,wEAEA,oBAXA,4DAcA,SApHA,SAoHA,2JAEA,KAFA,sDAIA,2CACA,uDAEA,mEAEA,oBATA,2DAYA,uBAhIA,WAiIA,2BAEA,mBAnIA,WAmIA,uJACA,aADA,kBAGA,IAHA,OAGA,EAHA,OAIA,YACA,YACA,oBACA,OApWA,EAqWA,cARA,kDAUA,2CACA,uDAEA,0EAEA,oBACA,aAhBA,6DAmBA,gBAtJA,WAuJA,4EACA,oBAEA,wBA1JA,SA0JA,GACA,gCACA,SACA,GAEA,yBA/JA,WAgKA,oCACA,MACA,iCACA,OACA,gCAGA,kCAEA,mBAEA,gBA3KA,SA2KA,KAEA,uDACA,iCACA,OACA,2BAEA,uBACA,kBAEA,oBAGA,WAxLA,SAwLA,GACA,4BAEA,eA3LA,SA2LA,kEACA,gEAEA,eA9LA,SA8LA,kEACA,iEAEA,eAjMA,SAiMA,KACA,SACA,qBAEA,UACA,UACA,iBAGA,kBA1MA,SA0MA,mEACA,iBACA,UACA,4CACA,qBACA,GAEA,kDCjgB0K,qICWtKW,EAAU,GAEdA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,YAAiB,WALlD,ICFA,GAXgB,cACd,GCTW,WAAa,IAAIM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACE,MAAM,CAAEC,OAAQP,EAAIO,SAAU,CAACH,EAAG,MAAM,CAACI,MAAM,CAAC,GAAK,6BAA6B,CAACJ,EAAG,UAAU,CAACK,YAAY,sCAAsCD,MAAM,CAAC,eAAeR,EAAIU,YAAY,aAAaV,EAAIW,wBAAwB,CAAEX,EAAc,WAAEI,EAAG,aAAa,CAACI,MAAM,CAAC,KAAOR,EAAIY,oBAAoB,CAACZ,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIe,iBAAiB,cAAcf,EAAIgB,KAAKhB,EAAIa,GAAG,KAAMb,EAAc,WAAEI,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,eAAe,OAAS,SAAS,KAAOR,EAAIiB,kBAAkB,qBAAoB,IAAO,CAACjB,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIkB,cAAc,cAAclB,EAAIgB,KAAKhB,EAAIa,GAAG,KAAMb,EAAc,WAAEI,EAAG,eAAe,CAACI,MAAM,CAAC,KAAOR,EAAImB,uBAAuBC,GAAG,CAAC,MAAQpB,EAAIqB,2BAA2B,CAACrB,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIsB,uBAAuB,cAActB,EAAIgB,KAAKhB,EAAIa,GAAG,KAAMb,EAAInB,UAAYmB,EAAIuB,aAAcnB,EAAG,mBAAmBJ,EAAIgB,KAAKhB,EAAIa,GAAG,KAAKT,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,iBAAiB,qBAAoB,GAAMY,GAAG,CAAC,MAAQpB,EAAIwB,yBAAyB,CAACxB,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIyB,EAAE,iBAAkB,oBAAoB,cAAczB,EAAIa,GAAG,KAAKT,EAAG,cAAc,CAACsB,IAAI,eAAelB,MAAM,CAAC,UAAW,EAAM,KAAO,cAAc,KAAO,OAAO,MAAQ,IAAIY,GAAG,CAAC,OAASpB,EAAI2B,kBAAkB,CAAC3B,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIyB,EAAE,iBAAkB,uBAAuB,cAAczB,EAAIa,GAAG,KAAKT,EAAG,eAAe,CAACwB,WAAW,CAAC,CAACC,KAAK,OAAOC,QAAQ,SAASC,MAAO/B,EAAIP,UAAUuC,OAAS,EAAGC,WAAW,yBAAyBzB,MAAM,CAAC,KAAOR,EAAIkC,qBAAqBd,GAAG,CAAC,MAAQ,SAASe,GAAQnC,EAAIoC,eAAiBpC,EAAIoC,iBAAiB,CAACpC,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIyB,EAAE,iBAAkB,cAAc,cAAczB,EAAIa,GAAG,KAAKb,EAAIqC,GAAIrC,EAAsB,oBAAE,SAASsC,GAAG,OAAOlC,EAAG,eAAe,CAACmC,IAAID,EAAE9B,MAAM,CAAC,KAAO,gBAAgBY,GAAG,CAAC,MAAQ,SAASe,GAAQ,OAAOnC,EAAIwC,gBAAgBL,EAAQG,MAAM,CAACtC,EAAIa,GAAG,aAAab,EAAIc,GAAGwB,GAAG,kBAAiB,IAAI,OACv8D,IDWpB,EACA,KACA,KACA,MAI8B,QEQhCG,EAAAA,GAAoBC,MAAKC,EAAAA,EAAAA,oBAEzBC,EAAAA,QAAAA,UAAAA,EAAkBnB,EAElBoB,SAASC,iBAAiB,oBAAoB,WACxCC,IAAIC,WAITD,IAAIC,UAAUC,eAAe,WAAW,SAACC,GAExC,OAAO,IADWN,EAAAA,QAAAA,OAAWO,GACtB,CAAc,CACpBC,UAAW,CACV7C,QAAQ,KAEP8C,OAAOH,6GCtCRI,EAAgC,IAAIC,IAAI,cACxCC,EAAgC,IAAID,IAAI,aACxCE,EAAgC,IAAIF,IAAI,cACxCG,EAAgC,IAAIH,IAAI,cACxCI,EAAgC,IAAIJ,IAAI,cACxCK,EAAgC,IAAIL,IAAI,cACxCM,EAAgC,IAAIN,IAAI,cACxCO,EAAgC,IAAIP,IAAI,cACxCQ,EAAgC,IAAIR,IAAI,cACxCS,EAAgC,IAAIT,IAAI,cACxCU,EAAiC,IAAIV,IAAI,cACzCW,EAAiC,IAAIX,IAAI,cACzCY,EAAiC,IAAIZ,IAAI,cACzCa,EAAiC,IAAIb,IAAI,cACzCc,EAAiC,IAAId,IAAI,cACzCe,EAAiC,IAAIf,IAAI,cACzCgB,EAAiC,IAAIhB,IAAI,cACzCiB,EAAiC,IAAIjB,IAAI,cACzCkB,EAAiC,IAAIlB,IAAI,cACzCmB,EAAiC,IAAInB,IAAI,cACzCoB,EAA0B,IAA4B,KACtDC,EAAqC,IAAgCtB,GACrEuB,EAAqC,IAAgCrB,GACrEsB,EAAqC,IAAgCrB,GACrEsB,EAAqC,IAAgCrB,GACrEsB,EAAqC,IAAgCrB,GACrEsB,EAAqC,IAAgCrB,GACrEsB,EAAqC,IAAgCrB,GACrEsB,EAAqC,IAAgCrB,GACrEsB,EAAqC,IAAgCrB,GACrEsB,EAAqC,IAAgCrB,GACrEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GACtEsB,EAAsC,IAAgCrB,GAE1EC,EAAwBqB,KAAK,CAACC,EAAOC,GAAI,6CAA+CtB,EAAqC,gEAAkEC,EAAqC,6CAA+CC,EAAqC,+CAAiDC,EAAqC,uCAAyCC,EAAqC,yCAA2CC,EAAqC,2CAA6CC,EAAqC,iDAAmDC,EAAqC,mDAAqDC,EAAqC,oCAAsCC,EAAqC,0CAA4CC,EAAsC,qCAAuCC,EAAsC,0CAA4CC,EAAsC,sDAAwDC,EAAsC,wDAA0DC,EAAsC,gDAAkDC,EAAsC,kDAAoDC,EAAsC,sDAAwDC,EAAsC,wDAA0DC,EAAsC,2FAA6FC,EAAsC,yEAA2EA,EAAsC,mrCAAorC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+CAA+C,MAAQ,GAAG,SAAW,+wBAA+wB,eAAiB,CAAC,+/HAA+/H,WAAa,MAE/8P,6BChDA,IAAII,EAAM,CACT,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,MACX,aAAc,MACd,UAAW,KACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,WAAY,MACZ,cAAe,MACf,UAAW,MACX,aAAc,MACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,YAAa,MACb,eAAgB,MAChB,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,UAAW,KACX,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,QAAS,MACT,WAAY,MACZ,OAAQ,MACR,UAAW,MACX,QAAS,MACT,WAAY,MACZ,QAAS,MACT,aAAc,MACd,gBAAiB,MACjB,WAAY,MACZ,UAAW,KACX,aAAc,KACd,OAAQ,MACR,UAAW,MACX,OAAQ,MACR,UAAW,MACX,OAAQ,KACR,YAAa,MACb,eAAgB,MAChB,UAAW,KACX,OAAQ,MACR,UAAW,MACX,aAAc,MACd,gBAAiB,MACjB,OAAQ,MACR,UAAW,MACX,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,MACd,UAAW,MACX,aAAc,OAIf,SAASC,EAAeC,GACvB,IAAIH,EAAKI,EAAsBD,GAC/B,OAAOE,EAAoBL,GAE5B,SAASI,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEL,EAAKE,GAAM,CACpC,IAAII,EAAI,IAAIC,MAAM,uBAAyBL,EAAM,KAEjD,MADAI,EAAEE,KAAO,mBACHF,EAEP,OAAON,EAAIE,GAEZD,EAAeQ,KAAO,WACrB,OAAOC,OAAOD,KAAKT,IAEpBC,EAAeU,QAAUR,EACzBL,EAAOc,QAAUX,EACjBA,EAAeF,GAAK,+ziCClShBc,EAA2B,GAG/B,SAAST,EAAoBU,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaH,QAGrB,IAAId,EAASe,EAAyBC,GAAY,CACjDf,GAAIe,EACJG,QAAQ,EACRL,QAAS,IAUV,OANAM,EAAoBJ,GAAUK,KAAKrB,EAAOc,QAASd,EAAQA,EAAOc,QAASR,GAG3EN,EAAOmB,QAAS,EAGTnB,EAAOc,QAIfR,EAAoBgB,EAAIF,EC5BxBd,EAAoBiB,KAAO,WAC1B,MAAM,IAAId,MAAM,mCCDjBH,EAAoBkB,KAAO,GZAvBnJ,EAAW,GACfiI,EAAoBmB,EAAI,SAASC,EAAQC,EAAUC,EAAIC,GACtD,IAAGF,EAAH,CAMA,IAAIG,EAAeC,EAAAA,EACnB,IAASC,EAAI,EAAGA,EAAI3J,EAAS0D,OAAQiG,IAAK,CACrCL,EAAWtJ,EAAS2J,GAAG,GACvBJ,EAAKvJ,EAAS2J,GAAG,GACjBH,EAAWxJ,EAAS2J,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIP,EAAS5F,OAAQmG,MACpB,EAAXL,GAAsBC,GAAgBD,IAAajB,OAAOD,KAAKL,EAAoBmB,GAAGU,OAAM,SAAS7F,GAAO,OAAOgE,EAAoBmB,EAAEnF,GAAKqF,EAASO,OAC3JP,EAASS,OAAOF,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACb5J,EAAS+J,OAAOJ,IAAK,GACrB,IAAIK,EAAIT,SACEV,IAANmB,IAAiBX,EAASW,IAGhC,OAAOX,EAzBNG,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAI3J,EAAS0D,OAAQiG,EAAI,GAAK3J,EAAS2J,EAAI,GAAG,GAAKH,EAAUG,IAAK3J,EAAS2J,GAAK3J,EAAS2J,EAAI,GACrG3J,EAAS2J,GAAK,CAACL,EAAUC,EAAIC,IaJ/BvB,EAAoBgC,EAAI,SAAStC,GAChC,IAAIuC,EAASvC,GAAUA,EAAOwC,WAC7B,WAAa,OAAOxC,EAAgB,SACpC,WAAa,OAAOA,GAErB,OADAM,EAAoBmC,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,GCLRjC,EAAoBmC,EAAI,SAAS3B,EAAS6B,GACzC,IAAI,IAAIrG,KAAOqG,EACXrC,EAAoBC,EAAEoC,EAAYrG,KAASgE,EAAoBC,EAAEO,EAASxE,IAC5EsE,OAAOgC,eAAe9B,EAASxE,EAAK,CAAEuG,YAAY,EAAMC,IAAKH,EAAWrG,MCJ3EgE,EAAoByC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOhJ,MAAQ,IAAIiJ,SAAS,cAAb,GACd,MAAOzC,GACR,GAAsB,iBAAX0C,OAAqB,OAAOA,QALjB,GCAxB5C,EAAoBC,EAAI,SAAS4C,EAAKC,GAAQ,OAAOxC,OAAOyC,UAAUC,eAAejC,KAAK8B,EAAKC,ICC/F9C,EAAoB+B,EAAI,SAASvB,GACX,oBAAXyC,QAA0BA,OAAOC,aAC1C5C,OAAOgC,eAAe9B,EAASyC,OAAOC,YAAa,CAAE1H,MAAO,WAE7D8E,OAAOgC,eAAe9B,EAAS,aAAc,CAAEhF,OAAO,KCLvDwE,EAAoBmD,IAAM,SAASzD,GAGlC,OAFAA,EAAO0D,MAAQ,GACV1D,EAAO2D,WAAU3D,EAAO2D,SAAW,IACjC3D,GCHRM,EAAoB4B,EAAI,gBCAxB5B,EAAoBsD,EAAIhH,SAASiH,SAAWC,KAAKC,SAASC,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAaP3D,EAAoBmB,EAAES,EAAI,SAASgC,GAAW,OAAoC,IAA7BD,EAAgBC,IAGrE,IAAIC,EAAuB,SAASC,EAA4BtL,GAC/D,IAKIkI,EAAUkD,EALVvC,EAAW7I,EAAK,GAChBuL,EAAcvL,EAAK,GACnBwL,EAAUxL,EAAK,GAGIkJ,EAAI,EAC3B,GAAGL,EAAS4C,MAAK,SAAStE,GAAM,OAA+B,IAAxBgE,EAAgBhE,MAAe,CACrE,IAAIe,KAAYqD,EACZ/D,EAAoBC,EAAE8D,EAAarD,KACrCV,EAAoBgB,EAAEN,GAAYqD,EAAYrD,IAGhD,GAAGsD,EAAS,IAAI5C,EAAS4C,EAAQhE,GAGlC,IADG8D,GAA4BA,EAA2BtL,GACrDkJ,EAAIL,EAAS5F,OAAQiG,IACzBkC,EAAUvC,EAASK,GAChB1B,EAAoBC,EAAE0D,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAO5D,EAAoBmB,EAAEC,IAG1B8C,EAAqBV,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FU,EAAmBC,QAAQN,EAAqBO,KAAK,KAAM,IAC3DF,EAAmBzE,KAAOoE,EAAqBO,KAAK,KAAMF,EAAmBzE,KAAK2E,KAAKF,OC/CvF,IAAIG,EAAsBrE,EAAoBmB,OAAEP,EAAW,CAAC,OAAO,WAAa,OAAOZ,EAAoB,UAC3GqE,EAAsBrE,EAAoBmB,EAAEkD","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/weather_status/src/services/weatherStatusService.js","webpack:///nextcloud/apps/weather_status/src/App.vue","webpack:///nextcloud/apps/weather_status/src/App.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/weather_status/src/App.vue?aa30","webpack://nextcloud/./apps/weather_status/src/App.vue?02d4","webpack:///nextcloud/apps/weather_status/src/App.vue?vue&type=template&id=02973da6&","webpack:///nextcloud/apps/weather_status/src/weather-status.js","webpack:///nextcloud/apps/weather_status/src/App.vue?vue&type=style&index=0&lang=scss&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * @copyright Copyright (c) 2020, Julien Veyssier\n *\n * @author Julien Veyssier <eneiluj@posteo.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n *\n *\n * @param {string} lat the latitude\n * @param {string} lon the longitude\n * @return {Promise<object>}\n */\nconst setLocation = async (lat, lon) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.put(url, {\n\t\taddress: '',\n\t\tlat,\n\t\tlon,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {string} address The location\n * @return {Promise<object>}\n */\nconst setAddress = async (address) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.put(url, {\n\t\taddress,\n\t\tlat: null,\n\t\tlon: null,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {string} mode can be 1 browser or 2 custom\n * @return {Promise<object>}\n */\nconst setMode = async (mode) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/mode')\n\tconst response = await HttpClient.put(url, {\n\t\tmode,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @return {Promise<object>}\n */\nconst usePersonalAddress = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/use-personal')\n\tconst response = await HttpClient.put(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the location information for current user\n *\n * @return {Promise<object>}\n */\nconst getLocation = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the weather forecast\n *\n * @return {Promise<object>}\n */\nconst fetchForecast = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/forecast')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the location favorites\n *\n * @return {Promise<object>}\n */\nconst getFavorites = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/favorites')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {Array} favorites List of favorite addresses\n * @return {Promise<object>}\n */\nconst saveFavorites = async (favorites) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/favorites')\n\tconst response = await HttpClient.put(url, {\n\t\tfavorites,\n\t})\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tusePersonalAddress,\n\tsetMode,\n\tgetLocation,\n\tsetLocation,\n\tsetAddress,\n\tfetchForecast,\n\tgetFavorites,\n\tsaveFavorites,\n}\n","<!--\n - @copyright Copyright (c) 2020 Julien Veyssier <eneiluj@posteo.net>\n - @author Julien Veyssier <eneiluj@posteo.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li :class=\"{ inline }\">\n\t\t<div id=\"weather-status-menu-item\">\n\t\t\t<Actions class=\"weather-status-menu-item__subheader\"\n\t\t\t\t:default-icon=\"weatherIcon\"\n\t\t\t\t:menu-title=\"currentWeatherMessage\">\n\t\t\t\t<ActionText v-if=\"gotWeather\"\n\t\t\t\t\t:icon=\"futureWeatherIcon\">\n\t\t\t\t\t{{ forecastMessage }}\n\t\t\t\t</ActionText>\n\t\t\t\t<ActionLink v-if=\"gotWeather\"\n\t\t\t\t\ticon=\"icon-address\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t:href=\"weatherLinkTarget\"\n\t\t\t\t\t:close-after-click=\"true\">\n\t\t\t\t\t{{ locationText }}\n\t\t\t\t</ActionLink>\n\t\t\t\t<ActionButton v-if=\"gotWeather\"\n\t\t\t\t\t:icon=\"addRemoveFavoriteIcon\"\n\t\t\t\t\t@click=\"onAddRemoveFavoriteClick\">\n\t\t\t\t\t{{ addRemoveFavoriteText }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionSeparator v-if=\"address && !errorMessage\" />\n\t\t\t\t<ActionButton icon=\"icon-crosshair\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"onBrowserLocationClick\">\n\t\t\t\t\t{{ t('weather_status', 'Detect location') }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionInput ref=\"addressInput\"\n\t\t\t\t\t:disabled=\"false\"\n\t\t\t\t\ticon=\"icon-rename\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue=\"\"\n\t\t\t\t\t@submit=\"onAddressSubmit\">\n\t\t\t\t\t{{ t('weather_status', 'Set custom address') }}\n\t\t\t\t</ActionInput>\n\t\t\t\t<ActionButton v-show=\"favorites.length > 0\"\n\t\t\t\t\t:icon=\"toggleFavoritesIcon\"\n\t\t\t\t\t@click=\"showFavorites = !showFavorites\">\n\t\t\t\t\t{{ t('weather_status', 'Favorites') }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionButton v-for=\"f in displayedFavorites\"\n\t\t\t\t\t:key=\"f\"\n\t\t\t\t\ticon=\"icon-starred\"\n\t\t\t\t\t@click=\"onFavoriteClick($event, f)\">\n\t\t\t\t\t{{ f }}\n\t\t\t\t</ActionButton>\n\t\t\t</Actions>\n\t\t</div>\n\t</li>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\nimport { getLocale } from '@nextcloud/l10n'\nimport Actions from '@nextcloud/vue/dist/Components/Actions'\nimport ActionButton from '@nextcloud/vue/dist/Components/ActionButton'\nimport ActionInput from '@nextcloud/vue/dist/Components/ActionInput'\nimport ActionLink from '@nextcloud/vue/dist/Components/ActionLink'\nimport ActionSeparator from '@nextcloud/vue/dist/Components/ActionSeparator'\nimport ActionText from '@nextcloud/vue/dist/Components/ActionText'\nimport * as network from './services/weatherStatusService'\n\nconst MODE_BROWSER_LOCATION = 1\nconst MODE_MANUAL_LOCATION = 2\nconst weatherOptions = {\n\tclearsky_day: {\n\t\ticon: 'icon-clearsky-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} clear sky later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} clear sky', { temperature, unit }),\n\t},\n\tclearsky_night: {\n\t\ticon: 'icon-clearsky-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} clear sky later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} clear sky', { temperature, unit }),\n\t},\n\tcloudy: {\n\t\ticon: 'icon-cloudy',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} cloudy', { temperature, unit }),\n\t},\n\tfair_day: {\n\t\ticon: 'icon-fair-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} fair weather later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} fair weather', { temperature, unit }),\n\t},\n\tfair_night: {\n\t\ticon: 'icon-fair-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} fair weather later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} fair weather', { temperature, unit }),\n\t},\n\tpartlycloudy_day: {\n\t\ticon: 'icon-partlycloudy-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} partly cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} partly cloudy', { temperature, unit }),\n\t},\n\tpartlycloudy_night: {\n\t\ticon: 'icon-partlycloudy-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} partly cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} partly cloudy', { temperature, unit }),\n\t},\n\tfog: {\n\t\ticon: 'icon-fog',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} foggy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} foggy', { temperature, unit }),\n\t},\n\tlightrain: {\n\t\ticon: 'icon-lightrain',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rain later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rain', { temperature, unit }),\n\t},\n\train: {\n\t\ticon: 'icon-rain',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rain later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rain', { temperature, unit }),\n\t},\n\theavyrain: {\n\t\ticon: 'icon-heavyrain',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rain later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rain', { temperature, unit }),\n\t},\n\trainshowers_day: {\n\t\ticon: 'icon-rainshowers-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rain showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rain showers', { temperature, unit }),\n\t},\n\trainshowers_night: {\n\t\ticon: 'icon-rainshowers-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rain showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rain showers', { temperature, unit }),\n\t},\n\tlightrainshowers_day: {\n\t\ticon: 'icon-light-rainshowers-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rain showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rain showers', { temperature, unit }),\n\t},\n\tlightrainshowers_night: {\n\t\ticon: 'icon-light-rainshowers-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rain showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rain showers', { temperature, unit }),\n\t},\n\theavyrainshowers_day: {\n\t\ticon: 'icon-heavy-rainshowers-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rain showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rain showers', { temperature, unit }),\n\t},\n\theavyrainshowers_night: {\n\t\ticon: 'icon-heavy-rainshowers-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rain showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rain showers', { temperature, unit }),\n\t},\n}\n\nexport default {\n\tname: 'App',\n\tcomponents: {\n\t\tActions, ActionButton, ActionInput, ActionLink, ActionSeparator, ActionText,\n\t},\n\tprops: {\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tlocale: getLocale(),\n\t\t\tloading: true,\n\t\t\terrorMessage: '',\n\t\t\tmode: MODE_BROWSER_LOCATION,\n\t\t\taddress: null,\n\t\t\tlat: null,\n\t\t\tlon: null,\n\t\t\t// how many hours ahead do we want to see the forecast?\n\t\t\toffset: 5,\n\t\t\tforecasts: [],\n\t\t\tloop: null,\n\t\t\tfavorites: [],\n\t\t\tshowFavorites: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tuseFahrenheitLocale() {\n\t\t\treturn ['en_US', 'en_MH', 'en_FM', 'en_PW', 'en_KY', 'en_LR'].includes(this.locale)\n\t\t},\n\t\ttemperatureUnit() {\n\t\t\treturn this.useFahrenheitLocale ? '°F' : '°C'\n\t\t},\n\t\tlocationText() {\n\t\t\treturn t('weather_status', 'More weather for {adr}', { adr: this.address })\n\t\t},\n\t\ttemperature() {\n\t\t\treturn this.getTemperature(this.forecasts, 0)\n\t\t},\n\t\tfutureTemperature() {\n\t\t\treturn this.getTemperature(this.forecasts, this.offset)\n\t\t},\n\t\tweatherCode() {\n\t\t\treturn this.getWeatherCode(this.forecasts, 0)\n\t\t},\n\t\tfutureWeatherCode() {\n\t\t\treturn this.getWeatherCode(this.forecasts, this.offset)\n\t\t},\n\t\tweatherIcon() {\n\t\t\treturn this.getWeatherIcon(this.weatherCode, this.loading)\n\t\t},\n\t\tfutureWeatherIcon() {\n\t\t\treturn this.getWeatherIcon(this.futureWeatherCode, this.loading)\n\t\t},\n\t\t/**\n\t\t * The message displayed in the top right corner\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcurrentWeatherMessage() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('weather_status', 'Loading weather')\n\t\t\t} else if (this.errorMessage) {\n\t\t\t\treturn this.errorMessage\n\t\t\t} else {\n\t\t\t\treturn this.getWeatherMessage(this.weatherCode, this.temperature)\n\t\t\t}\n\t\t},\n\t\tforecastMessage() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('weather_status', 'Loading weather')\n\t\t\t} else {\n\t\t\t\treturn this.getWeatherMessage(this.futureWeatherCode, this.futureTemperature, true)\n\t\t\t}\n\t\t},\n\t\tweatherLinkTarget() {\n\t\t\treturn 'https://www.windy.com/-Rain-thunder-rain?rain,' + this.lat + ',' + this.lon + ',11'\n\t\t},\n\t\tgotWeather() {\n\t\t\treturn this.address && !this.errorMessage\n\t\t},\n\t\taddRemoveFavoriteIcon() {\n\t\t\treturn this.currentAddressIsFavorite\n\t\t\t\t? 'icon-starred'\n\t\t\t\t: 'icon-star'\n\t\t},\n\t\taddRemoveFavoriteText() {\n\t\t\treturn this.currentAddressIsFavorite\n\t\t\t\t? t('weather_status', 'Remove from favorites')\n\t\t\t\t: t('weather_status', 'Add as favorite')\n\t\t},\n\t\tcurrentAddressIsFavorite() {\n\t\t\treturn this.favorites.find((f) => {\n\t\t\t\treturn f === this.address\n\t\t\t})\n\t\t},\n\t\ttoggleFavoritesIcon() {\n\t\t\treturn this.showFavorites\n\t\t\t\t? 'icon-triangle-s'\n\t\t\t\t: 'icon-triangle-e'\n\t\t},\n\t\tdisplayedFavorites() {\n\t\t\treturn this.showFavorites\n\t\t\t\t? this.favorites\n\t\t\t\t: []\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.initWeatherStatus()\n\t},\n\tmethods: {\n\t\tasync initWeatherStatus() {\n\t\t\ttry {\n\t\t\t\tconst loc = await network.getLocation()\n\t\t\t\tthis.lat = loc.lat\n\t\t\t\tthis.lon = loc.lon\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.mode = loc.mode\n\n\t\t\t\tif (this.mode === MODE_BROWSER_LOCATION) {\n\t\t\t\t\tthis.askBrowserLocation()\n\t\t\t\t} else if (this.mode === MODE_MANUAL_LOCATION) {\n\t\t\t\t\tthis.startLoop()\n\t\t\t\t}\n\t\t\t\tconst favs = await network.getFavorites()\n\t\t\t\tthis.favorites = favs\n\t\t\t} catch (err) {\n\t\t\t\tif (err?.code === 'ECONNABORTED') {\n\t\t\t\t\tconsole.info('The weather status request was cancelled because the user navigates.')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error getting the weather status information.'))\n\t\t\t\t}\n\t\t\t\tconsole.error(err)\n\t\t\t}\n\t\t},\n\t\tstartLoop() {\n\t\t\tclearInterval(this.loop)\n\t\t\tif (this.lat && this.lon) {\n\t\t\t\tthis.loop = setInterval(() => this.getForecast(), 60 * 1000 * 60)\n\t\t\t\tthis.getForecast()\n\t\t\t} else {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\taskBrowserLocation() {\n\t\t\tthis.loading = true\n\t\t\tthis.errorMessage = ''\n\t\t\tif (navigator.geolocation && window.isSecureContext) {\n\t\t\t\tnavigator.geolocation.getCurrentPosition((position) => {\n\t\t\t\t\tconsole.debug('browser location success')\n\t\t\t\t\tthis.lat = position.coords.latitude\n\t\t\t\t\tthis.lon = position.coords.longitude\n\t\t\t\t\tthis.saveMode(MODE_BROWSER_LOCATION)\n\t\t\t\t\tthis.mode = MODE_BROWSER_LOCATION\n\t\t\t\t\tthis.saveLocation(this.lat, this.lon)\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.debug('location permission refused')\n\t\t\t\t\tconsole.debug(error)\n\t\t\t\t\tthis.saveMode(MODE_MANUAL_LOCATION)\n\t\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\t\t// fallback on what we have if possible\n\t\t\t\t\tif (this.lat && this.lon) {\n\t\t\t\t\t\tthis.startLoop()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.usePersonalAddress()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tconsole.debug('no secure context!')\n\t\t\t\tthis.saveMode(MODE_MANUAL_LOCATION)\n\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\tthis.startLoop()\n\t\t\t}\n\t\t},\n\t\tasync getForecast() {\n\t\t\ttry {\n\t\t\t\tthis.forecasts = await network.fetchForecast()\n\t\t\t} catch (err) {\n\t\t\t\tthis.errorMessage = t('weather_status', 'No weather information found')\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t\tthis.loading = false\n\t\t},\n\t\tasync setAddress(address) {\n\t\t\tthis.loading = true\n\t\t\tthis.errorMessage = ''\n\t\t\ttry {\n\t\t\t\tconst loc = await network.setAddress(address)\n\t\t\t\tif (loc.success) {\n\t\t\t\t\tthis.lat = loc.lat\n\t\t\t\t\tthis.lon = loc.lon\n\t\t\t\t\tthis.address = loc.address\n\t\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\t\tthis.startLoop()\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorMessage = t('weather_status', 'Location not found')\n\t\t\t\t\tthis.loading = false\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error setting the location address.'))\n\t\t\t\t}\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tasync saveLocation(lat, lon) {\n\t\t\ttry {\n\t\t\t\tconst loc = await network.setLocation(lat, lon)\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.startLoop()\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error setting the location.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t\tasync saveMode(mode) {\n\t\t\ttry {\n\t\t\t\tawait network.setMode(mode)\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error saving the mode.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t\tonBrowserLocationClick() {\n\t\t\tthis.askBrowserLocation()\n\t\t},\n\t\tasync usePersonalAddress() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst loc = await network.usePersonalAddress()\n\t\t\t\tthis.lat = loc.lat\n\t\t\t\tthis.lon = loc.lon\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\tthis.startLoop()\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error using personal address.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tonAddressSubmit() {\n\t\t\tconst newAddress = this.$refs.addressInput.$el.querySelector('input[type=\"text\"]').value\n\t\t\tthis.setAddress(newAddress)\n\t\t},\n\t\tgetLocalizedTemperature(celcius) {\n\t\t\treturn this.useFahrenheitLocale\n\t\t\t\t? (celcius * (9 / 5)) + 32\n\t\t\t\t: celcius\n\t\t},\n\t\tonAddRemoveFavoriteClick() {\n\t\t\tconst currentIsFavorite = this.currentAddressIsFavorite\n\t\t\tif (currentIsFavorite) {\n\t\t\t\tconst i = this.favorites.indexOf(currentIsFavorite)\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tthis.favorites.splice(i, 1)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.favorites.push(this.address)\n\t\t\t}\n\t\t\tnetwork.saveFavorites(this.favorites)\n\t\t},\n\t\tonFavoriteClick(e, favAddress) {\n\t\t\t// clicked on the icon\n\t\t\tif (e.target.classList.contains('action-button__icon')) {\n\t\t\t\tconst i = this.favorites.indexOf(favAddress)\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tthis.favorites.splice(i, 1)\n\t\t\t\t}\n\t\t\t\tnetwork.saveFavorites(this.favorites)\n\t\t\t} else if (favAddress !== this.address) {\n\t\t\t\t// clicked on the text\n\t\t\t\tthis.setAddress(favAddress)\n\t\t\t}\n\t\t},\n\t\tformatTime(time) {\n\t\t\treturn moment(time).format('LT')\n\t\t},\n\t\tgetTemperature(forecasts, offset = 0) {\n\t\t\treturn forecasts.length > offset ? forecasts[offset].data.instant.details.air_temperature : ''\n\t\t},\n\t\tgetWeatherCode(forecasts, offset = 0) {\n\t\t\treturn forecasts.length > offset ? forecasts[offset].data.next_1_hours.summary.symbol_code : ''\n\t\t},\n\t\tgetWeatherIcon(weatherCode, loading) {\n\t\t\tif (loading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t} else {\n\t\t\t\treturn weatherCode && weatherCode in weatherOptions\n\t\t\t\t\t? weatherOptions[weatherCode].icon\n\t\t\t\t\t: 'icon-fair-day'\n\t\t\t}\n\t\t},\n\t\tgetWeatherMessage(weatherCode, temperature, later = false) {\n\t\t\treturn weatherCode && weatherCode in weatherOptions\n\t\t\t\t? weatherOptions[weatherCode].text(\n\t\t\t\t\tMath.round(this.getLocalizedTemperature(temperature)),\n\t\t\t\t\tthis.temperatureUnit,\n\t\t\t\t\tlater\n\t\t\t\t)\n\t\t\t\t: t('weather_status', 'Set location for weather')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.icon-weather-status {\n\tbackground-image: url('./../img/app-dark.svg');\n}\nbody.theme--dark .icon-weather-status {\n\tbackground-image: url('./../img/app.svg');\n}\n.icon-clearsky-day {\n\tbackground-image: url('./../img/sun.svg');\n}\n.icon-clearsky-night {\n\tbackground-image: url('./../img/moon.svg');\n}\n.icon-cloudy {\n\tbackground-image: url('./../img/cloud-cloud.svg');\n}\n.icon-fair-day {\n\tbackground-image: url('./../img/sun-small-cloud.svg');\n}\n.icon-fair-night {\n\tbackground-image: url('./../img/moon-small-cloud.svg');\n}\n.icon-partlycloudy-day {\n\tbackground-image: url('./../img/sun-cloud.svg');\n}\n.icon-partlycloudy-night {\n\tbackground-image: url('./../img/moon-cloud.svg');\n}\n.icon-fog {\n\tbackground-image: url('./../img/fog.svg');\n}\n.icon-lightrain {\n\tbackground-image: url('./../img/light-rain.svg');\n}\n.icon-rain {\n\tbackground-image: url('./../img/rain.svg');\n}\n.icon-heavyrain {\n\tbackground-image: url('./../img/heavy-rain.svg');\n}\n.icon-light-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-light-rain.svg');\n}\n.icon-light-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-light-rain.svg');\n}\n.icon-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-rain.svg');\n}\n.icon-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-rain.svg');\n}\n.icon-heavy-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-heavy-rain.svg');\n}\n.icon-heavy-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-heavy-rain.svg');\n}\n.icon-crosshair {\n background-color: var(--color-main-text);\n padding: 0 !important;\n mask: url(./../img/cross.svg) no-repeat;\n mask-size: 18px 18px;\n mask-position: center;\n -webkit-mask: url(./../img/cross.svg) no-repeat;\n -webkit-mask-size: 18px 18px;\n -webkit-mask-position: center;\n min-width: 44px !important;\n min-height: 44px !important;\n}\n\nli:not(.inline) .weather-status-menu-item {\n\t&__header {\n\t\tdisplay: block;\n\t\talign-items: center;\n\t\tcolor: var(--color-main-text);\n\t\tpadding: 10px 12px 5px 12px;\n\t\tbox-sizing: border-box;\n\t\topacity: 1;\n\t\twhite-space: nowrap;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tmax-width: 250px;\n\t\ttext-overflow: ellipsis;\n\t\tmin-width: 175px;\n\t}\n\n\t&__subheader {\n\t\twidth: 100%;\n\n\t\t.trigger > .icon {\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbackground-size: 16px;\n\t\t\tborder: 0;\n\t\t\tborder-radius: 0;\n\t\t\tfont-weight: normal;\n\t\t\tpadding-left: 40px;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbox-shadow: inset 4px 0 var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.inline .weather-status-menu-item__subheader {\n\twidth: 100%;\n\n\t.trigger > .icon {\n\t\tbackground-size: 16px;\n\t\tborder: 0;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: normal;\n\t\tpadding-left: 40px;\n\n\t\t&.icon-loading-small {\n\t\t\t&::after {\n\t\t\t\tleft: 21px;\n\t\t\t}\n\t\t}\n\t}\n}\n\nli {\n\tlist-style-type: none;\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.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!./App.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=02973da6&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:{ inline: _vm.inline }},[_c('div',{attrs:{\"id\":\"weather-status-menu-item\"}},[_c('Actions',{staticClass:\"weather-status-menu-item__subheader\",attrs:{\"default-icon\":_vm.weatherIcon,\"menu-title\":_vm.currentWeatherMessage}},[(_vm.gotWeather)?_c('ActionText',{attrs:{\"icon\":_vm.futureWeatherIcon}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.forecastMessage)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.gotWeather)?_c('ActionLink',{attrs:{\"icon\":\"icon-address\",\"target\":\"_blank\",\"href\":_vm.weatherLinkTarget,\"close-after-click\":true}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.locationText)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.gotWeather)?_c('ActionButton',{attrs:{\"icon\":_vm.addRemoveFavoriteIcon},on:{\"click\":_vm.onAddRemoveFavoriteClick}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.addRemoveFavoriteText)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.address && !_vm.errorMessage)?_c('ActionSeparator'):_vm._e(),_vm._v(\" \"),_c('ActionButton',{attrs:{\"icon\":\"icon-crosshair\",\"close-after-click\":true},on:{\"click\":_vm.onBrowserLocationClick}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Detect location'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('ActionInput',{ref:\"addressInput\",attrs:{\"disabled\":false,\"icon\":\"icon-rename\",\"type\":\"text\",\"value\":\"\"},on:{\"submit\":_vm.onAddressSubmit}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Set custom address'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('ActionButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.favorites.length > 0),expression:\"favorites.length > 0\"}],attrs:{\"icon\":_vm.toggleFavoritesIcon},on:{\"click\":function($event){_vm.showFavorites = !_vm.showFavorites}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Favorites'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.displayedFavorites),function(f){return _c('ActionButton',{key:f,attrs:{\"icon\":\"icon-starred\"},on:{\"click\":function($event){return _vm.onFavoriteClick($event, f)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(f)+\"\\n\\t\\t\\t\")])})],2)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2016 Julien Veyssier <eneiluj@posteo.net>\n *\n * @author Julien Veyssier <eneiluj@posteo.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport App from './App'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.t = t\n\ndocument.addEventListener('DOMContentLoaded', function() {\n\tif (!OCA.Dashboard) {\n\t\treturn\n\t}\n\n\tOCA.Dashboard.registerStatus('weather', (el) => {\n\t\tconst Dashboard = Vue.extend(App)\n\t\treturn new Dashboard({\n\t\t\tpropsData: {\n\t\t\t\tinline: true,\n\t\t\t},\n\t\t}).$mount(el)\n\t})\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./../img/app-dark.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./../img/app.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./../img/sun.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./../img/moon.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"./../img/cloud-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"./../img/sun-small-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"./../img/moon-small-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"./../img/sun-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_8___ = new URL(\"./../img/moon-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_9___ = new URL(\"./../img/fog.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_10___ = new URL(\"./../img/light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_11___ = new URL(\"./../img/rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_12___ = new URL(\"./../img/heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_13___ = new URL(\"./../img/sun-cloud-light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_14___ = new URL(\"./../img/moon-cloud-light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_15___ = new URL(\"./../img/sun-cloud-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_16___ = new URL(\"./../img/moon-cloud-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_17___ = new URL(\"./../img/sun-cloud-heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_18___ = new URL(\"./../img/moon-cloud-heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_19___ = new URL(\"./../img/cross.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___);\nvar ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon-weather-status{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \")}body.theme--dark .icon-weather-status{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}.icon-clearsky-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")}.icon-clearsky-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.icon-cloudy{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}.icon-fair-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")}.icon-fair-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")}.icon-partlycloudy-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \")}.icon-partlycloudy-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \")}.icon-fog{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \")}.icon-lightrain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \")}.icon-rain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \")}.icon-heavyrain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \")}.icon-light-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \")}.icon-light-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \")}.icon-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \")}.icon-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \")}.icon-heavy-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \")}.icon-heavy-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \")}.icon-crosshair{background-color:var(--color-main-text);padding:0 !important;mask:url(\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \") no-repeat;mask-size:18px 18px;mask-position:center;-webkit-mask:url(\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \") no-repeat;-webkit-mask-size:18px 18px;-webkit-mask-position:center;min-width:44px !important;min-height:44px !important}li:not(.inline) .weather-status-menu-item__header{display:block;align-items:center;color:var(--color-main-text);padding:10px 12px 5px 12px;box-sizing:border-box;opacity:1;white-space:nowrap;width:100%;text-align:center;max-width:250px;text-overflow:ellipsis;min-width:175px}li:not(.inline) .weather-status-menu-item__subheader{width:100%}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon{background-color:var(--color-main-background);background-size:16px;border:0;border-radius:0;font-weight:normal;padding-left:40px}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:hover,li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:focus{box-shadow:inset 4px 0 var(--color-primary-element)}.inline .weather-status-menu-item__subheader{width:100%}.inline .weather-status-menu-item__subheader .trigger>.icon{background-size:16px;border:0;border-radius:var(--border-radius-pill);font-weight:normal;padding-left:40px}.inline .weather-status-menu-item__subheader .trigger>.icon.icon-loading-small::after{left:21px}li{list-style-type:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/weather_status/src/App.vue\"],\"names\":[],\"mappings\":\"AAwgBA,qBACC,wDAAA,CAED,sCACC,wDAAA,CAED,mBACC,wDAAA,CAED,qBACC,wDAAA,CAED,aACC,wDAAA,CAED,eACC,wDAAA,CAED,iBACC,wDAAA,CAED,uBACC,wDAAA,CAED,yBACC,wDAAA,CAED,UACC,wDAAA,CAED,gBACC,yDAAA,CAED,WACC,yDAAA,CAED,gBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,sBACC,yDAAA,CAED,wBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,gBACI,uCAAA,CACA,oBAAA,CACA,uDAAA,CACA,mBAAA,CACA,oBAAA,CACA,+DAAA,CACA,2BAAA,CACA,4BAAA,CACA,yBAAA,CACA,0BAAA,CAIH,kDACC,aAAA,CACA,kBAAA,CACA,4BAAA,CACA,0BAAA,CACA,qBAAA,CACA,SAAA,CACA,kBAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CAGD,qDACC,UAAA,CAEA,oEACC,6CAAA,CACA,oBAAA,CACA,QAAA,CACA,eAAA,CACA,kBAAA,CACA,iBAAA,CAEA,oJAEC,mDAAA,CAMJ,6CACC,UAAA,CAEA,4DACC,oBAAA,CACA,QAAA,CACA,uCAAA,CACA,kBAAA,CACA,iBAAA,CAGC,sFACC,SAAA,CAMJ,GACC,oBAAA\",\"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\\n\\n\\n\\n\\n\\n\\n\\n\\n.icon-weather-status {\\n\\tbackground-image: url('./../img/app-dark.svg');\\n}\\nbody.theme--dark .icon-weather-status {\\n\\tbackground-image: url('./../img/app.svg');\\n}\\n.icon-clearsky-day {\\n\\tbackground-image: url('./../img/sun.svg');\\n}\\n.icon-clearsky-night {\\n\\tbackground-image: url('./../img/moon.svg');\\n}\\n.icon-cloudy {\\n\\tbackground-image: url('./../img/cloud-cloud.svg');\\n}\\n.icon-fair-day {\\n\\tbackground-image: url('./../img/sun-small-cloud.svg');\\n}\\n.icon-fair-night {\\n\\tbackground-image: url('./../img/moon-small-cloud.svg');\\n}\\n.icon-partlycloudy-day {\\n\\tbackground-image: url('./../img/sun-cloud.svg');\\n}\\n.icon-partlycloudy-night {\\n\\tbackground-image: url('./../img/moon-cloud.svg');\\n}\\n.icon-fog {\\n\\tbackground-image: url('./../img/fog.svg');\\n}\\n.icon-lightrain {\\n\\tbackground-image: url('./../img/light-rain.svg');\\n}\\n.icon-rain {\\n\\tbackground-image: url('./../img/rain.svg');\\n}\\n.icon-heavyrain {\\n\\tbackground-image: url('./../img/heavy-rain.svg');\\n}\\n.icon-light-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-light-rain.svg');\\n}\\n.icon-light-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-light-rain.svg');\\n}\\n.icon-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-rain.svg');\\n}\\n.icon-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-rain.svg');\\n}\\n.icon-heavy-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-heavy-rain.svg');\\n}\\n.icon-heavy-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-heavy-rain.svg');\\n}\\n.icon-crosshair {\\n background-color: var(--color-main-text);\\n padding: 0 !important;\\n mask: url(./../img/cross.svg) no-repeat;\\n mask-size: 18px 18px;\\n mask-position: center;\\n -webkit-mask: url(./../img/cross.svg) no-repeat;\\n -webkit-mask-size: 18px 18px;\\n -webkit-mask-position: center;\\n min-width: 44px !important;\\n min-height: 44px !important;\\n}\\n\\nli:not(.inline) .weather-status-menu-item {\\n\\t&__header {\\n\\t\\tdisplay: block;\\n\\t\\talign-items: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tpadding: 10px 12px 5px 12px;\\n\\t\\tbox-sizing: border-box;\\n\\t\\topacity: 1;\\n\\t\\twhite-space: nowrap;\\n\\t\\twidth: 100%;\\n\\t\\ttext-align: center;\\n\\t\\tmax-width: 250px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tmin-width: 175px;\\n\\t}\\n\\n\\t&__subheader {\\n\\t\\twidth: 100%;\\n\\n\\t\\t.trigger > .icon {\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbackground-size: 16px;\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tpadding-left: 40px;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbox-shadow: inset 4px 0 var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.inline .weather-status-menu-item__subheader {\\n\\twidth: 100%;\\n\\n\\t.trigger > .icon {\\n\\t\\tbackground-size: 16px;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\tfont-weight: normal;\\n\\t\\tpadding-left: 40px;\\n\\n\\t\\t&.icon-loading-small {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tleft: 21px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\nli {\\n\\tlist-style-type: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 5275;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t5275: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(59464); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","setLocation","lat","lon","url","generateOcsUrl","HttpClient","address","response","data","ocs","setAddress","setMode","mode","usePersonalAddress","getLocation","fetchForecast","getFavorites","saveFavorites","favorites","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","class","inline","attrs","staticClass","weatherIcon","currentWeatherMessage","futureWeatherIcon","_v","_s","forecastMessage","_e","weatherLinkTarget","locationText","addRemoveFavoriteIcon","on","onAddRemoveFavoriteClick","addRemoveFavoriteText","errorMessage","onBrowserLocationClick","t","ref","onAddressSubmit","directives","name","rawName","value","length","expression","toggleFavoritesIcon","$event","showFavorites","_l","f","key","onFavoriteClick","__webpack_nonce__","btoa","getRequestToken","Vue","document","addEventListener","OCA","Dashboard","registerStatus","el","App","propsData","$mount","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_IMPORT_8___","___CSS_LOADER_URL_IMPORT_9___","___CSS_LOADER_URL_IMPORT_10___","___CSS_LOADER_URL_IMPORT_11___","___CSS_LOADER_URL_IMPORT_12___","___CSS_LOADER_URL_IMPORT_13___","___CSS_LOADER_URL_IMPORT_14___","___CSS_LOADER_URL_IMPORT_15___","___CSS_LOADER_URL_IMPORT_16___","___CSS_LOADER_URL_IMPORT_17___","___CSS_LOADER_URL_IMPORT_18___","___CSS_LOADER_URL_IMPORT_19___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","___CSS_LOADER_URL_REPLACEMENT_19___","push","module","id","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","amdD","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"weather_status-weather-status.js?v=60a853ef3584aef45967","mappings":";gBAAIA,ojBCgCJ,IAAMC,EAAW,4CAAG,WAAOC,EAAKC,GAAZ,+FACbC,GAAMC,EAAAA,EAAAA,gBAAe,uCADR,SAEIC,EAAAA,QAAAA,IAAeF,EAAK,CAC1CG,QAAS,GACTL,IAAAA,EACAC,IAAAA,IALkB,cAEbK,EAFa,yBAQZA,EAASC,KAAKC,IAAID,MARN,2CAAH,wDAgBXE,EAAU,4CAAG,WAAOJ,GAAP,+FACZH,GAAMC,EAAAA,EAAAA,gBAAe,uCADT,SAEKC,EAAAA,QAAAA,IAAeF,EAAK,CAC1CG,QAAAA,EACAL,IAAK,KACLC,IAAK,OALY,cAEZK,EAFY,yBAQXA,EAASC,KAAKC,IAAID,MARP,2CAAH,sDAgBVG,EAAO,4CAAG,WAAOC,GAAP,+FACTT,GAAMC,EAAAA,EAAAA,gBAAe,mCADZ,SAEQC,EAAAA,QAAAA,IAAeF,EAAK,CAC1CS,KAAAA,IAHc,cAETL,EAFS,yBAMRA,EAASC,KAAKC,IAAID,MANV,2CAAH,sDAaPK,EAAkB,4CAAG,4GACpBV,GAAMC,EAAAA,EAAAA,gBAAe,2CADD,SAEHC,EAAAA,QAAAA,IAAeF,GAFZ,cAEpBI,EAFoB,yBAInBA,EAASC,KAAKC,IAAID,MAJC,2CAAH,qDAYlBM,EAAW,4CAAG,4GACbX,GAAMC,EAAAA,EAAAA,gBAAe,uCADR,SAEIC,EAAAA,QAAAA,IAAeF,GAFnB,cAEbI,EAFa,yBAIZA,EAASC,KAAKC,IAAID,MAJN,2CAAH,qDAYXO,EAAa,4CAAG,4GACfZ,GAAMC,EAAAA,EAAAA,gBAAe,uCADN,SAEEC,EAAAA,QAAAA,IAAeF,GAFjB,cAEfI,EAFe,yBAIdA,EAASC,KAAKC,IAAID,MAJJ,2CAAH,qDAYbQ,EAAY,4CAAG,4GACdb,GAAMC,EAAAA,EAAAA,gBAAe,wCADP,SAEGC,EAAAA,QAAAA,IAAeF,GAFlB,cAEdI,EAFc,yBAIbA,EAASC,KAAKC,IAAID,MAJL,2CAAH,qDAYZS,EAAa,4CAAG,WAAOC,GAAP,+FACff,GAAMC,EAAAA,EAAAA,gBAAe,wCADN,SAEEC,EAAAA,QAAAA,IAAeF,EAAK,CAC1Ce,UAAAA,IAHoB,cAEfX,EAFe,yBAMdA,EAASC,KAAKC,IAAID,MANJ,2CAAH,kXCxCnB,IAEA,GACA,cACA,yBACA,0FACA,wFACA,8EAEA,gBACA,2BACA,0FACA,wFACA,8EAEA,QACA,mBACA,0FACA,qFACA,2EAEA,UACA,qBACA,0FACA,2FACA,iFAEA,YACA,uBACA,0FACA,2FACA,iFAEA,kBACA,6BACA,0FACA,4FACA,kFAEA,oBACA,+BACA,0FACA,4FACA,kFAEA,KACA,gBACA,0FACA,oFACA,0EAEA,WACA,sBACA,0FACA,6FACA,mFAEA,MACA,iBACA,0FACA,uFACA,6EAEA,WACA,sBACA,0FACA,6FACA,mFAEA,iBACA,4BACA,0FACA,+FACA,qFAEA,mBACA,8BACA,0FACA,+FACA,qFAEA,sBACA,kCACA,0FACA,qGACA,2FAEA,wBACA,oCACA,0FACA,qGACA,2FAEA,sBACA,kCACA,0FACA,qGACA,2FAEA,wBACA,oCACA,0FACA,qGACA,4FAIA,GACA,WACA,YACA,gGAEA,OACA,QACA,aACA,aAGA,KAXA,WAYA,OACA,yBACA,WACA,gBACA,KA3HA,EA4HA,aACA,SACA,SAEA,SACA,aACA,UACA,aACA,mBAGA,UACA,oBADA,WAEA,+EAEA,gBAJA,WAKA,2CAEA,aAPA,WAQA,wEAEA,YAVA,WAWA,8CAEA,kBAbA,WAcA,wDAEA,YAhBA,WAiBA,8CAEA,kBAnBA,WAoBA,wDAEA,YAtBA,WAuBA,2DAEA,kBAzBA,WA0BA,iEAOA,sBAjCA,WAkCA,oBACA,sCACA,kBACA,kBAEA,2DAGA,gBA1CA,WA2CA,oBACA,sCAEA,0EAGA,kBAjDA,WAkDA,oFAEA,WApDA,WAqDA,yCAEA,sBAvDA,WAwDA,qCACA,eACA,aAEA,sBA5DA,WA6DA,qCACA,4CACA,uCAEA,yBAjEA,WAiEA,WACA,wCACA,yBAGA,oBAtEA,WAuEA,0BACA,kBACA,mBAEA,mBA3EA,WA4EA,0BACA,eACA,KAGA,QA7GA,WA8GA,0BAEA,SACA,kBADA,WACA,2KAEA,IAFA,cAEA,EAFA,OAGA,YACA,YACA,oBACA,cAlOA,IAoOA,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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/weather_status/src/services/weatherStatusService.js","webpack:///nextcloud/apps/weather_status/src/App.vue","webpack:///nextcloud/apps/weather_status/src/App.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/weather_status/src/App.vue?aa30","webpack://nextcloud/./apps/weather_status/src/App.vue?02d4","webpack:///nextcloud/apps/weather_status/src/App.vue?vue&type=template&id=6acc2acd&","webpack:///nextcloud/apps/weather_status/src/weather-status.js","webpack:///nextcloud/apps/weather_status/src/App.vue?vue&type=style&index=0&lang=scss&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/**\n * @copyright Copyright (c) 2020, Julien Veyssier\n *\n * @author Julien Veyssier <eneiluj@posteo.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n *\n *\n * @param {string} lat the latitude\n * @param {string} lon the longitude\n * @return {Promise<object>}\n */\nconst setLocation = async (lat, lon) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.put(url, {\n\t\taddress: '',\n\t\tlat,\n\t\tlon,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {string} address The location\n * @return {Promise<object>}\n */\nconst setAddress = async (address) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.put(url, {\n\t\taddress,\n\t\tlat: null,\n\t\tlon: null,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {string} mode can be 1 browser or 2 custom\n * @return {Promise<object>}\n */\nconst setMode = async (mode) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/mode')\n\tconst response = await HttpClient.put(url, {\n\t\tmode,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @return {Promise<object>}\n */\nconst usePersonalAddress = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/use-personal')\n\tconst response = await HttpClient.put(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the location information for current user\n *\n * @return {Promise<object>}\n */\nconst getLocation = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the weather forecast\n *\n * @return {Promise<object>}\n */\nconst fetchForecast = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/forecast')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the location favorites\n *\n * @return {Promise<object>}\n */\nconst getFavorites = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/favorites')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {Array} favorites List of favorite addresses\n * @return {Promise<object>}\n */\nconst saveFavorites = async (favorites) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/favorites')\n\tconst response = await HttpClient.put(url, {\n\t\tfavorites,\n\t})\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tusePersonalAddress,\n\tsetMode,\n\tgetLocation,\n\tsetLocation,\n\tsetAddress,\n\tfetchForecast,\n\tgetFavorites,\n\tsaveFavorites,\n}\n","<!--\n - @copyright Copyright (c) 2020 Julien Veyssier <eneiluj@posteo.net>\n - @author Julien Veyssier <eneiluj@posteo.net>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li :class=\"{ inline }\">\n\t\t<div id=\"weather-status-menu-item\">\n\t\t\t<Actions class=\"weather-status-menu-item__subheader\"\n\t\t\t\t:default-icon=\"weatherIcon\"\n\t\t\t\t:menu-title=\"currentWeatherMessage\">\n\t\t\t\t<ActionText v-if=\"gotWeather\"\n\t\t\t\t\t:icon=\"futureWeatherIcon\">\n\t\t\t\t\t{{ forecastMessage }}\n\t\t\t\t</ActionText>\n\t\t\t\t<ActionLink v-if=\"gotWeather\"\n\t\t\t\t\ticon=\"icon-address\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t:href=\"weatherLinkTarget\"\n\t\t\t\t\t:close-after-click=\"true\">\n\t\t\t\t\t{{ locationText }}\n\t\t\t\t</ActionLink>\n\t\t\t\t<ActionButton v-if=\"gotWeather\"\n\t\t\t\t\t:icon=\"addRemoveFavoriteIcon\"\n\t\t\t\t\t@click=\"onAddRemoveFavoriteClick\">\n\t\t\t\t\t{{ addRemoveFavoriteText }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionSeparator v-if=\"address && !errorMessage\" />\n\t\t\t\t<ActionButton icon=\"icon-crosshair\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"onBrowserLocationClick\">\n\t\t\t\t\t{{ t('weather_status', 'Detect location') }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionInput ref=\"addressInput\"\n\t\t\t\t\t:disabled=\"false\"\n\t\t\t\t\ticon=\"icon-rename\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue=\"\"\n\t\t\t\t\t@submit=\"onAddressSubmit\">\n\t\t\t\t\t{{ t('weather_status', 'Set custom address') }}\n\t\t\t\t</ActionInput>\n\t\t\t\t<ActionButton v-show=\"favorites.length > 0\"\n\t\t\t\t\t:icon=\"toggleFavoritesIcon\"\n\t\t\t\t\t@click=\"showFavorites = !showFavorites\">\n\t\t\t\t\t{{ t('weather_status', 'Favorites') }}\n\t\t\t\t</ActionButton>\n\t\t\t\t<ActionButton v-for=\"f in displayedFavorites\"\n\t\t\t\t\t:key=\"f\"\n\t\t\t\t\ticon=\"icon-starred\"\n\t\t\t\t\t@click=\"onFavoriteClick($event, f)\">\n\t\t\t\t\t{{ f }}\n\t\t\t\t</ActionButton>\n\t\t\t</Actions>\n\t\t</div>\n\t</li>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\nimport { getLocale } from '@nextcloud/l10n'\nimport Actions from '@nextcloud/vue/dist/Components/Actions'\nimport ActionButton from '@nextcloud/vue/dist/Components/ActionButton'\nimport ActionInput from '@nextcloud/vue/dist/Components/ActionInput'\nimport ActionLink from '@nextcloud/vue/dist/Components/ActionLink'\nimport ActionSeparator from '@nextcloud/vue/dist/Components/ActionSeparator'\nimport ActionText from '@nextcloud/vue/dist/Components/ActionText'\nimport * as network from './services/weatherStatusService'\n\nconst MODE_BROWSER_LOCATION = 1\nconst MODE_MANUAL_LOCATION = 2\nconst weatherOptions = {\n\tclearsky_day: {\n\t\ticon: 'icon-clearsky-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} clear sky later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} clear sky', { temperature, unit }),\n\t},\n\tclearsky_night: {\n\t\ticon: 'icon-clearsky-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} clear sky later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} clear sky', { temperature, unit }),\n\t},\n\tcloudy: {\n\t\ticon: 'icon-cloudy',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} cloudy', { temperature, unit }),\n\t},\n\tfair_day: {\n\t\ticon: 'icon-fair-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} fair weather later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} fair weather', { temperature, unit }),\n\t},\n\tfair_night: {\n\t\ticon: 'icon-fair-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} fair weather later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} fair weather', { temperature, unit }),\n\t},\n\tpartlycloudy_day: {\n\t\ticon: 'icon-partlycloudy-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} partly cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} partly cloudy', { temperature, unit }),\n\t},\n\tpartlycloudy_night: {\n\t\ticon: 'icon-partlycloudy-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} partly cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} partly cloudy', { temperature, unit }),\n\t},\n\tfog: {\n\t\ticon: 'icon-fog',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} foggy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} foggy', { temperature, unit }),\n\t},\n\tlightrain: {\n\t\ticon: 'icon-lightrain',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rainfall later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rainfall', { temperature, unit }),\n\t},\n\train: {\n\t\ticon: 'icon-rain',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rainfall later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rainfall', { temperature, unit }),\n\t},\n\theavyrain: {\n\t\ticon: 'icon-heavyrain',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rainfall later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rainfall', { temperature, unit }),\n\t},\n\trainshowers_day: {\n\t\ticon: 'icon-rainshowers-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rainfall showers', { temperature, unit }),\n\t},\n\trainshowers_night: {\n\t\ticon: 'icon-rainshowers-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rainfall showers', { temperature, unit }),\n\t},\n\tlightrainshowers_day: {\n\t\ticon: 'icon-light-rainshowers-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rainfall showers', { temperature, unit }),\n\t},\n\tlightrainshowers_night: {\n\t\ticon: 'icon-light-rainshowers-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rainfall showers', { temperature, unit }),\n\t},\n\theavyrainshowers_day: {\n\t\ticon: 'icon-heavy-rainshowers-day',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rainfall showers', { temperature, unit }),\n\t},\n\theavyrainshowers_night: {\n\t\ticon: 'icon-heavy-rainshowers-night',\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rainfall showers', { temperature, unit }),\n\t},\n}\n\nexport default {\n\tname: 'App',\n\tcomponents: {\n\t\tActions, ActionButton, ActionInput, ActionLink, ActionSeparator, ActionText,\n\t},\n\tprops: {\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tlocale: getLocale(),\n\t\t\tloading: true,\n\t\t\terrorMessage: '',\n\t\t\tmode: MODE_BROWSER_LOCATION,\n\t\t\taddress: null,\n\t\t\tlat: null,\n\t\t\tlon: null,\n\t\t\t// how many hours ahead do we want to see the forecast?\n\t\t\toffset: 5,\n\t\t\tforecasts: [],\n\t\t\tloop: null,\n\t\t\tfavorites: [],\n\t\t\tshowFavorites: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tuseFahrenheitLocale() {\n\t\t\treturn ['en_US', 'en_MH', 'en_FM', 'en_PW', 'en_KY', 'en_LR'].includes(this.locale)\n\t\t},\n\t\ttemperatureUnit() {\n\t\t\treturn this.useFahrenheitLocale ? '°F' : '°C'\n\t\t},\n\t\tlocationText() {\n\t\t\treturn t('weather_status', 'More weather for {adr}', { adr: this.address })\n\t\t},\n\t\ttemperature() {\n\t\t\treturn this.getTemperature(this.forecasts, 0)\n\t\t},\n\t\tfutureTemperature() {\n\t\t\treturn this.getTemperature(this.forecasts, this.offset)\n\t\t},\n\t\tweatherCode() {\n\t\t\treturn this.getWeatherCode(this.forecasts, 0)\n\t\t},\n\t\tfutureWeatherCode() {\n\t\t\treturn this.getWeatherCode(this.forecasts, this.offset)\n\t\t},\n\t\tweatherIcon() {\n\t\t\treturn this.getWeatherIcon(this.weatherCode, this.loading)\n\t\t},\n\t\tfutureWeatherIcon() {\n\t\t\treturn this.getWeatherIcon(this.futureWeatherCode, this.loading)\n\t\t},\n\t\t/**\n\t\t * The message displayed in the top right corner\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcurrentWeatherMessage() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('weather_status', 'Loading weather')\n\t\t\t} else if (this.errorMessage) {\n\t\t\t\treturn this.errorMessage\n\t\t\t} else {\n\t\t\t\treturn this.getWeatherMessage(this.weatherCode, this.temperature)\n\t\t\t}\n\t\t},\n\t\tforecastMessage() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('weather_status', 'Loading weather')\n\t\t\t} else {\n\t\t\t\treturn this.getWeatherMessage(this.futureWeatherCode, this.futureTemperature, true)\n\t\t\t}\n\t\t},\n\t\tweatherLinkTarget() {\n\t\t\treturn 'https://www.windy.com/-Rain-thunder-rain?rain,' + this.lat + ',' + this.lon + ',11'\n\t\t},\n\t\tgotWeather() {\n\t\t\treturn this.address && !this.errorMessage\n\t\t},\n\t\taddRemoveFavoriteIcon() {\n\t\t\treturn this.currentAddressIsFavorite\n\t\t\t\t? 'icon-starred'\n\t\t\t\t: 'icon-star'\n\t\t},\n\t\taddRemoveFavoriteText() {\n\t\t\treturn this.currentAddressIsFavorite\n\t\t\t\t? t('weather_status', 'Remove from favorites')\n\t\t\t\t: t('weather_status', 'Add as favorite')\n\t\t},\n\t\tcurrentAddressIsFavorite() {\n\t\t\treturn this.favorites.find((f) => {\n\t\t\t\treturn f === this.address\n\t\t\t})\n\t\t},\n\t\ttoggleFavoritesIcon() {\n\t\t\treturn this.showFavorites\n\t\t\t\t? 'icon-triangle-s'\n\t\t\t\t: 'icon-triangle-e'\n\t\t},\n\t\tdisplayedFavorites() {\n\t\t\treturn this.showFavorites\n\t\t\t\t? this.favorites\n\t\t\t\t: []\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.initWeatherStatus()\n\t},\n\tmethods: {\n\t\tasync initWeatherStatus() {\n\t\t\ttry {\n\t\t\t\tconst loc = await network.getLocation()\n\t\t\t\tthis.lat = loc.lat\n\t\t\t\tthis.lon = loc.lon\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.mode = loc.mode\n\n\t\t\t\tif (this.mode === MODE_BROWSER_LOCATION) {\n\t\t\t\t\tthis.askBrowserLocation()\n\t\t\t\t} else if (this.mode === MODE_MANUAL_LOCATION) {\n\t\t\t\t\tthis.startLoop()\n\t\t\t\t}\n\t\t\t\tconst favs = await network.getFavorites()\n\t\t\t\tthis.favorites = favs\n\t\t\t} catch (err) {\n\t\t\t\tif (err?.code === 'ECONNABORTED') {\n\t\t\t\t\tconsole.info('The weather status request was cancelled because the user navigates.')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error getting the weather status information.'))\n\t\t\t\t}\n\t\t\t\tconsole.error(err)\n\t\t\t}\n\t\t},\n\t\tstartLoop() {\n\t\t\tclearInterval(this.loop)\n\t\t\tif (this.lat && this.lon) {\n\t\t\t\tthis.loop = setInterval(() => this.getForecast(), 60 * 1000 * 60)\n\t\t\t\tthis.getForecast()\n\t\t\t} else {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\taskBrowserLocation() {\n\t\t\tthis.loading = true\n\t\t\tthis.errorMessage = ''\n\t\t\tif (navigator.geolocation && window.isSecureContext) {\n\t\t\t\tnavigator.geolocation.getCurrentPosition((position) => {\n\t\t\t\t\tconsole.debug('browser location success')\n\t\t\t\t\tthis.lat = position.coords.latitude\n\t\t\t\t\tthis.lon = position.coords.longitude\n\t\t\t\t\tthis.saveMode(MODE_BROWSER_LOCATION)\n\t\t\t\t\tthis.mode = MODE_BROWSER_LOCATION\n\t\t\t\t\tthis.saveLocation(this.lat, this.lon)\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.debug('location permission refused')\n\t\t\t\t\tconsole.debug(error)\n\t\t\t\t\tthis.saveMode(MODE_MANUAL_LOCATION)\n\t\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\t\t// fallback on what we have if possible\n\t\t\t\t\tif (this.lat && this.lon) {\n\t\t\t\t\t\tthis.startLoop()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.usePersonalAddress()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tconsole.debug('no secure context!')\n\t\t\t\tthis.saveMode(MODE_MANUAL_LOCATION)\n\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\tthis.startLoop()\n\t\t\t}\n\t\t},\n\t\tasync getForecast() {\n\t\t\ttry {\n\t\t\t\tthis.forecasts = await network.fetchForecast()\n\t\t\t} catch (err) {\n\t\t\t\tthis.errorMessage = t('weather_status', 'No weather information found')\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t\tthis.loading = false\n\t\t},\n\t\tasync setAddress(address) {\n\t\t\tthis.loading = true\n\t\t\tthis.errorMessage = ''\n\t\t\ttry {\n\t\t\t\tconst loc = await network.setAddress(address)\n\t\t\t\tif (loc.success) {\n\t\t\t\t\tthis.lat = loc.lat\n\t\t\t\t\tthis.lon = loc.lon\n\t\t\t\t\tthis.address = loc.address\n\t\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\t\tthis.startLoop()\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorMessage = t('weather_status', 'Location not found')\n\t\t\t\t\tthis.loading = false\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error setting the location address.'))\n\t\t\t\t}\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tasync saveLocation(lat, lon) {\n\t\t\ttry {\n\t\t\t\tconst loc = await network.setLocation(lat, lon)\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.startLoop()\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error setting the location.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t\tasync saveMode(mode) {\n\t\t\ttry {\n\t\t\t\tawait network.setMode(mode)\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error saving the mode.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t\tonBrowserLocationClick() {\n\t\t\tthis.askBrowserLocation()\n\t\t},\n\t\tasync usePersonalAddress() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst loc = await network.usePersonalAddress()\n\t\t\t\tthis.lat = loc.lat\n\t\t\t\tthis.lon = loc.lon\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\tthis.startLoop()\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error using personal address.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tonAddressSubmit() {\n\t\t\tconst newAddress = this.$refs.addressInput.$el.querySelector('input[type=\"text\"]').value\n\t\t\tthis.setAddress(newAddress)\n\t\t},\n\t\tgetLocalizedTemperature(celcius) {\n\t\t\treturn this.useFahrenheitLocale\n\t\t\t\t? (celcius * (9 / 5)) + 32\n\t\t\t\t: celcius\n\t\t},\n\t\tonAddRemoveFavoriteClick() {\n\t\t\tconst currentIsFavorite = this.currentAddressIsFavorite\n\t\t\tif (currentIsFavorite) {\n\t\t\t\tconst i = this.favorites.indexOf(currentIsFavorite)\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tthis.favorites.splice(i, 1)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.favorites.push(this.address)\n\t\t\t}\n\t\t\tnetwork.saveFavorites(this.favorites)\n\t\t},\n\t\tonFavoriteClick(e, favAddress) {\n\t\t\t// clicked on the icon\n\t\t\tif (e.target.classList.contains('action-button__icon')) {\n\t\t\t\tconst i = this.favorites.indexOf(favAddress)\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tthis.favorites.splice(i, 1)\n\t\t\t\t}\n\t\t\t\tnetwork.saveFavorites(this.favorites)\n\t\t\t} else if (favAddress !== this.address) {\n\t\t\t\t// clicked on the text\n\t\t\t\tthis.setAddress(favAddress)\n\t\t\t}\n\t\t},\n\t\tformatTime(time) {\n\t\t\treturn moment(time).format('LT')\n\t\t},\n\t\tgetTemperature(forecasts, offset = 0) {\n\t\t\treturn forecasts.length > offset ? forecasts[offset].data.instant.details.air_temperature : ''\n\t\t},\n\t\tgetWeatherCode(forecasts, offset = 0) {\n\t\t\treturn forecasts.length > offset ? forecasts[offset].data.next_1_hours.summary.symbol_code : ''\n\t\t},\n\t\tgetWeatherIcon(weatherCode, loading) {\n\t\t\tif (loading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t} else {\n\t\t\t\treturn weatherCode && weatherCode in weatherOptions\n\t\t\t\t\t? weatherOptions[weatherCode].icon\n\t\t\t\t\t: 'icon-fair-day'\n\t\t\t}\n\t\t},\n\t\tgetWeatherMessage(weatherCode, temperature, later = false) {\n\t\t\treturn weatherCode && weatherCode in weatherOptions\n\t\t\t\t? weatherOptions[weatherCode].text(\n\t\t\t\t\tMath.round(this.getLocalizedTemperature(temperature)),\n\t\t\t\t\tthis.temperatureUnit,\n\t\t\t\t\tlater\n\t\t\t\t)\n\t\t\t\t: t('weather_status', 'Set location for weather')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.icon-weather-status {\n\tbackground-image: url('./../img/app-dark.svg');\n}\nbody.theme--dark .icon-weather-status {\n\tbackground-image: url('./../img/app.svg');\n}\n.icon-clearsky-day {\n\tbackground-image: url('./../img/sun.svg');\n}\n.icon-clearsky-night {\n\tbackground-image: url('./../img/moon.svg');\n}\n.icon-cloudy {\n\tbackground-image: url('./../img/cloud-cloud.svg');\n}\n.icon-fair-day {\n\tbackground-image: url('./../img/sun-small-cloud.svg');\n}\n.icon-fair-night {\n\tbackground-image: url('./../img/moon-small-cloud.svg');\n}\n.icon-partlycloudy-day {\n\tbackground-image: url('./../img/sun-cloud.svg');\n}\n.icon-partlycloudy-night {\n\tbackground-image: url('./../img/moon-cloud.svg');\n}\n.icon-fog {\n\tbackground-image: url('./../img/fog.svg');\n}\n.icon-lightrain {\n\tbackground-image: url('./../img/light-rain.svg');\n}\n.icon-rain {\n\tbackground-image: url('./../img/rain.svg');\n}\n.icon-heavyrain {\n\tbackground-image: url('./../img/heavy-rain.svg');\n}\n.icon-light-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-light-rain.svg');\n}\n.icon-light-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-light-rain.svg');\n}\n.icon-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-rain.svg');\n}\n.icon-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-rain.svg');\n}\n.icon-heavy-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-heavy-rain.svg');\n}\n.icon-heavy-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-heavy-rain.svg');\n}\n.icon-crosshair {\n background-color: var(--color-main-text);\n padding: 0 !important;\n mask: url(./../img/cross.svg) no-repeat;\n mask-size: 18px 18px;\n mask-position: center;\n -webkit-mask: url(./../img/cross.svg) no-repeat;\n -webkit-mask-size: 18px 18px;\n -webkit-mask-position: center;\n min-width: 44px !important;\n min-height: 44px !important;\n}\n\nli:not(.inline) .weather-status-menu-item {\n\t&__header {\n\t\tdisplay: block;\n\t\talign-items: center;\n\t\tcolor: var(--color-main-text);\n\t\tpadding: 10px 12px 5px 12px;\n\t\tbox-sizing: border-box;\n\t\topacity: 1;\n\t\twhite-space: nowrap;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tmax-width: 250px;\n\t\ttext-overflow: ellipsis;\n\t\tmin-width: 175px;\n\t}\n\n\t&__subheader {\n\t\twidth: 100%;\n\n\t\t.trigger > .icon {\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbackground-size: 16px;\n\t\t\tborder: 0;\n\t\t\tborder-radius: 0;\n\t\t\tfont-weight: normal;\n\t\t\tpadding-left: 40px;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbox-shadow: inset 4px 0 var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.inline .weather-status-menu-item__subheader {\n\twidth: 100%;\n\n\t.trigger > .icon {\n\t\tbackground-size: 16px;\n\t\tborder: 0;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: normal;\n\t\tpadding-left: 40px;\n\n\t\t&.icon-loading-small {\n\t\t\t&::after {\n\t\t\t\tleft: 21px;\n\t\t\t}\n\t\t}\n\t}\n}\n\nli {\n\tlist-style-type: none;\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.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!./App.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6acc2acd&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:{ inline: _vm.inline }},[_c('div',{attrs:{\"id\":\"weather-status-menu-item\"}},[_c('Actions',{staticClass:\"weather-status-menu-item__subheader\",attrs:{\"default-icon\":_vm.weatherIcon,\"menu-title\":_vm.currentWeatherMessage}},[(_vm.gotWeather)?_c('ActionText',{attrs:{\"icon\":_vm.futureWeatherIcon}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.forecastMessage)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.gotWeather)?_c('ActionLink',{attrs:{\"icon\":\"icon-address\",\"target\":\"_blank\",\"href\":_vm.weatherLinkTarget,\"close-after-click\":true}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.locationText)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.gotWeather)?_c('ActionButton',{attrs:{\"icon\":_vm.addRemoveFavoriteIcon},on:{\"click\":_vm.onAddRemoveFavoriteClick}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.addRemoveFavoriteText)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.address && !_vm.errorMessage)?_c('ActionSeparator'):_vm._e(),_vm._v(\" \"),_c('ActionButton',{attrs:{\"icon\":\"icon-crosshair\",\"close-after-click\":true},on:{\"click\":_vm.onBrowserLocationClick}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Detect location'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('ActionInput',{ref:\"addressInput\",attrs:{\"disabled\":false,\"icon\":\"icon-rename\",\"type\":\"text\",\"value\":\"\"},on:{\"submit\":_vm.onAddressSubmit}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Set custom address'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('ActionButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.favorites.length > 0),expression:\"favorites.length > 0\"}],attrs:{\"icon\":_vm.toggleFavoritesIcon},on:{\"click\":function($event){_vm.showFavorites = !_vm.showFavorites}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Favorites'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.displayedFavorites),function(f){return _c('ActionButton',{key:f,attrs:{\"icon\":\"icon-starred\"},on:{\"click\":function($event){return _vm.onFavoriteClick($event, f)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(f)+\"\\n\\t\\t\\t\")])})],2)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2016 Julien Veyssier <eneiluj@posteo.net>\n *\n * @author Julien Veyssier <eneiluj@posteo.net>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport App from './App'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nVue.prototype.t = t\n\ndocument.addEventListener('DOMContentLoaded', function() {\n\tif (!OCA.Dashboard) {\n\t\treturn\n\t}\n\n\tOCA.Dashboard.registerStatus('weather', (el) => {\n\t\tconst Dashboard = Vue.extend(App)\n\t\treturn new Dashboard({\n\t\t\tpropsData: {\n\t\t\t\tinline: true,\n\t\t\t},\n\t\t}).$mount(el)\n\t})\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./../img/app-dark.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./../img/app.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./../img/sun.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./../img/moon.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"./../img/cloud-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"./../img/sun-small-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"./../img/moon-small-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"./../img/sun-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_8___ = new URL(\"./../img/moon-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_9___ = new URL(\"./../img/fog.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_10___ = new URL(\"./../img/light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_11___ = new URL(\"./../img/rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_12___ = new URL(\"./../img/heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_13___ = new URL(\"./../img/sun-cloud-light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_14___ = new URL(\"./../img/moon-cloud-light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_15___ = new URL(\"./../img/sun-cloud-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_16___ = new URL(\"./../img/moon-cloud-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_17___ = new URL(\"./../img/sun-cloud-heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_18___ = new URL(\"./../img/moon-cloud-heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_19___ = new URL(\"./../img/cross.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___);\nvar ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon-weather-status{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \")}body.theme--dark .icon-weather-status{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}.icon-clearsky-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")}.icon-clearsky-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.icon-cloudy{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}.icon-fair-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")}.icon-fair-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")}.icon-partlycloudy-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \")}.icon-partlycloudy-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \")}.icon-fog{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \")}.icon-lightrain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \")}.icon-rain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \")}.icon-heavyrain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \")}.icon-light-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \")}.icon-light-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \")}.icon-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \")}.icon-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \")}.icon-heavy-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \")}.icon-heavy-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \")}.icon-crosshair{background-color:var(--color-main-text);padding:0 !important;mask:url(\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \") no-repeat;mask-size:18px 18px;mask-position:center;-webkit-mask:url(\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \") no-repeat;-webkit-mask-size:18px 18px;-webkit-mask-position:center;min-width:44px !important;min-height:44px !important}li:not(.inline) .weather-status-menu-item__header{display:block;align-items:center;color:var(--color-main-text);padding:10px 12px 5px 12px;box-sizing:border-box;opacity:1;white-space:nowrap;width:100%;text-align:center;max-width:250px;text-overflow:ellipsis;min-width:175px}li:not(.inline) .weather-status-menu-item__subheader{width:100%}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon{background-color:var(--color-main-background);background-size:16px;border:0;border-radius:0;font-weight:normal;padding-left:40px}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:hover,li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:focus{box-shadow:inset 4px 0 var(--color-primary-element)}.inline .weather-status-menu-item__subheader{width:100%}.inline .weather-status-menu-item__subheader .trigger>.icon{background-size:16px;border:0;border-radius:var(--border-radius-pill);font-weight:normal;padding-left:40px}.inline .weather-status-menu-item__subheader .trigger>.icon.icon-loading-small::after{left:21px}li{list-style-type:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/weather_status/src/App.vue\"],\"names\":[],\"mappings\":\"AAwgBA,qBACC,wDAAA,CAED,sCACC,wDAAA,CAED,mBACC,wDAAA,CAED,qBACC,wDAAA,CAED,aACC,wDAAA,CAED,eACC,wDAAA,CAED,iBACC,wDAAA,CAED,uBACC,wDAAA,CAED,yBACC,wDAAA,CAED,UACC,wDAAA,CAED,gBACC,yDAAA,CAED,WACC,yDAAA,CAED,gBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,sBACC,yDAAA,CAED,wBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,gBACI,uCAAA,CACA,oBAAA,CACA,uDAAA,CACA,mBAAA,CACA,oBAAA,CACA,+DAAA,CACA,2BAAA,CACA,4BAAA,CACA,yBAAA,CACA,0BAAA,CAIH,kDACC,aAAA,CACA,kBAAA,CACA,4BAAA,CACA,0BAAA,CACA,qBAAA,CACA,SAAA,CACA,kBAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CAGD,qDACC,UAAA,CAEA,oEACC,6CAAA,CACA,oBAAA,CACA,QAAA,CACA,eAAA,CACA,kBAAA,CACA,iBAAA,CAEA,oJAEC,mDAAA,CAMJ,6CACC,UAAA,CAEA,4DACC,oBAAA,CACA,QAAA,CACA,uCAAA,CACA,kBAAA,CACA,iBAAA,CAGC,sFACC,SAAA,CAMJ,GACC,oBAAA\",\"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\\n\\n\\n\\n\\n\\n\\n\\n\\n.icon-weather-status {\\n\\tbackground-image: url('./../img/app-dark.svg');\\n}\\nbody.theme--dark .icon-weather-status {\\n\\tbackground-image: url('./../img/app.svg');\\n}\\n.icon-clearsky-day {\\n\\tbackground-image: url('./../img/sun.svg');\\n}\\n.icon-clearsky-night {\\n\\tbackground-image: url('./../img/moon.svg');\\n}\\n.icon-cloudy {\\n\\tbackground-image: url('./../img/cloud-cloud.svg');\\n}\\n.icon-fair-day {\\n\\tbackground-image: url('./../img/sun-small-cloud.svg');\\n}\\n.icon-fair-night {\\n\\tbackground-image: url('./../img/moon-small-cloud.svg');\\n}\\n.icon-partlycloudy-day {\\n\\tbackground-image: url('./../img/sun-cloud.svg');\\n}\\n.icon-partlycloudy-night {\\n\\tbackground-image: url('./../img/moon-cloud.svg');\\n}\\n.icon-fog {\\n\\tbackground-image: url('./../img/fog.svg');\\n}\\n.icon-lightrain {\\n\\tbackground-image: url('./../img/light-rain.svg');\\n}\\n.icon-rain {\\n\\tbackground-image: url('./../img/rain.svg');\\n}\\n.icon-heavyrain {\\n\\tbackground-image: url('./../img/heavy-rain.svg');\\n}\\n.icon-light-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-light-rain.svg');\\n}\\n.icon-light-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-light-rain.svg');\\n}\\n.icon-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-rain.svg');\\n}\\n.icon-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-rain.svg');\\n}\\n.icon-heavy-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-heavy-rain.svg');\\n}\\n.icon-heavy-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-heavy-rain.svg');\\n}\\n.icon-crosshair {\\n background-color: var(--color-main-text);\\n padding: 0 !important;\\n mask: url(./../img/cross.svg) no-repeat;\\n mask-size: 18px 18px;\\n mask-position: center;\\n -webkit-mask: url(./../img/cross.svg) no-repeat;\\n -webkit-mask-size: 18px 18px;\\n -webkit-mask-position: center;\\n min-width: 44px !important;\\n min-height: 44px !important;\\n}\\n\\nli:not(.inline) .weather-status-menu-item {\\n\\t&__header {\\n\\t\\tdisplay: block;\\n\\t\\talign-items: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tpadding: 10px 12px 5px 12px;\\n\\t\\tbox-sizing: border-box;\\n\\t\\topacity: 1;\\n\\t\\twhite-space: nowrap;\\n\\t\\twidth: 100%;\\n\\t\\ttext-align: center;\\n\\t\\tmax-width: 250px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tmin-width: 175px;\\n\\t}\\n\\n\\t&__subheader {\\n\\t\\twidth: 100%;\\n\\n\\t\\t.trigger > .icon {\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbackground-size: 16px;\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tpadding-left: 40px;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbox-shadow: inset 4px 0 var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.inline .weather-status-menu-item__subheader {\\n\\twidth: 100%;\\n\\n\\t.trigger > .icon {\\n\\t\\tbackground-size: 16px;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\tfont-weight: normal;\\n\\t\\tpadding-left: 40px;\\n\\n\\t\\t&.icon-loading-small {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tleft: 21px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\nli {\\n\\tlist-style-type: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 5275;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t5275: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(76149); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","setLocation","lat","lon","url","generateOcsUrl","HttpClient","address","response","data","ocs","setAddress","setMode","mode","usePersonalAddress","getLocation","fetchForecast","getFavorites","saveFavorites","favorites","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","class","inline","attrs","staticClass","weatherIcon","currentWeatherMessage","futureWeatherIcon","_v","_s","forecastMessage","_e","weatherLinkTarget","locationText","addRemoveFavoriteIcon","on","onAddRemoveFavoriteClick","addRemoveFavoriteText","errorMessage","onBrowserLocationClick","t","ref","onAddressSubmit","directives","name","rawName","value","length","expression","toggleFavoritesIcon","$event","showFavorites","_l","f","key","onFavoriteClick","__webpack_nonce__","btoa","getRequestToken","Vue","document","addEventListener","OCA","Dashboard","registerStatus","el","App","propsData","$mount","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_IMPORT_8___","___CSS_LOADER_URL_IMPORT_9___","___CSS_LOADER_URL_IMPORT_10___","___CSS_LOADER_URL_IMPORT_11___","___CSS_LOADER_URL_IMPORT_12___","___CSS_LOADER_URL_IMPORT_13___","___CSS_LOADER_URL_IMPORT_14___","___CSS_LOADER_URL_IMPORT_15___","___CSS_LOADER_URL_IMPORT_16___","___CSS_LOADER_URL_IMPORT_17___","___CSS_LOADER_URL_IMPORT_18___","___CSS_LOADER_URL_IMPORT_19___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","___CSS_LOADER_URL_REPLACEMENT_19___","push","module","id","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","amdD","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index 69cd3b1116e..4dbb3cc0d05 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname(dirname($vendorDir));
return array(
diff --git a/lib/composer/composer/autoload_namespaces.php b/lib/composer/composer/autoload_namespaces.php
index 4a9c20beed0..f1ae7a0ffec 100644
--- a/lib/composer/composer/autoload_namespaces.php
+++ b/lib/composer/composer/autoload_namespaces.php
@@ -2,7 +2,7 @@
// autoload_namespaces.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname(dirname($vendorDir));
return array(
diff --git a/lib/composer/composer/autoload_psr4.php b/lib/composer/composer/autoload_psr4.php
index b641d9c6a03..74e48cf69ae 100644
--- a/lib/composer/composer/autoload_psr4.php
+++ b/lib/composer/composer/autoload_psr4.php
@@ -2,7 +2,7 @@
// autoload_psr4.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname(dirname($vendorDir));
return array(
diff --git a/lib/composer/composer/autoload_real.php b/lib/composer/composer/autoload_real.php
index a5748c7a891..4b1ab7678ec 100644
--- a/lib/composer/composer/autoload_real.php
+++ b/lib/composer/composer/autoload_real.php
@@ -23,30 +23,11 @@ class ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c
}
spl_autoload_register(array('ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c', '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('ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c', '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\ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c::getInitializer($loader));
- } else {
- $map = require __DIR__ . '/autoload_namespaces.php';
- foreach ($map as $namespace => $path) {
- $loader->set($namespace, $path);
- }
-
- $map = require __DIR__ . '/autoload_psr4.php';
- foreach ($map as $namespace => $path) {
- $loader->setPsr4($namespace, $path);
- }
-
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ \Composer\Autoload\ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c::getInitializer($loader)();
$loader->register(true);
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index fbf1281cdf8..0b64f70f6fd 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -7,7 +7,7 @@ namespace Composer\Autoload;
class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
{
public static $prefixLengthsPsr4 = array (
- 'O' =>
+ 'O' =>
array (
'OC\\Core\\' => 8,
'OC\\' => 3,
@@ -16,15 +16,15 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
);
public static $prefixDirsPsr4 = array (
- 'OC\\Core\\' =>
+ 'OC\\Core\\' =>
array (
0 => __DIR__ . '/../../..' . '/core',
),
- 'OC\\' =>
+ 'OC\\' =>
array (
0 => __DIR__ . '/../../..' . '/lib/private',
),
- 'OCP\\' =>
+ 'OCP\\' =>
array (
0 => __DIR__ . '/../../..' . '/lib/public',
),
diff --git a/lib/l10n/ar.js b/lib/l10n/ar.js
index 8a986850199..853182c5df0 100644
--- a/lib/l10n/ar.js
+++ b/lib/l10n/ar.js
@@ -118,6 +118,7 @@ OC.L10N.register(
"This can usually be fixed by giving the webserver write access to the config directory" : "يمكن حل هذا عادة بإعطاء خادم الوب صلاحية الكتابة في مجلد config",
"Can't create or write into the data directory %s" : "لا يمكن الإنشاء أو الكتابة في مجلد البيانات %s",
"Can't read file" : "لا يمكن قراءة الملف",
- "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "يمكن إصلاح هذا الخطا بإعطاء مخدّم الموقع صلاحيات التعديل على مجلد الإعدادات. أنظر %s"
+ "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "يمكن إصلاح هذا الخطا بإعطاء مخدّم الموقع صلاحيات التعديل على مجلد الإعدادات. أنظر %s",
+ "Please upgrade your database 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/lib/l10n/ar.json b/lib/l10n/ar.json
index 2b4bdc5bd6b..ce726d3b323 100644
--- a/lib/l10n/ar.json
+++ b/lib/l10n/ar.json
@@ -116,6 +116,7 @@
"This can usually be fixed by giving the webserver write access to the config directory" : "يمكن حل هذا عادة بإعطاء خادم الوب صلاحية الكتابة في مجلد config",
"Can't create or write into the data directory %s" : "لا يمكن الإنشاء أو الكتابة في مجلد البيانات %s",
"Can't read file" : "لا يمكن قراءة الملف",
- "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "يمكن إصلاح هذا الخطا بإعطاء مخدّم الموقع صلاحيات التعديل على مجلد الإعدادات. أنظر %s"
+ "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "يمكن إصلاح هذا الخطا بإعطاء مخدّم الموقع صلاحيات التعديل على مجلد الإعدادات. أنظر %s",
+ "Please upgrade your database 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/lib/l10n/sv.js b/lib/l10n/sv.js
index ef690b97a68..d698b06e082 100644
--- a/lib/l10n/sv.js
+++ b/lib/l10n/sv.js
@@ -6,7 +6,7 @@ OC.L10N.register(
"See %s" : "Se %s",
"The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "Filerna i appen %1$s ersattes inte korrekt. Kontrollera att det är en version som är kompatibel med servern.",
"Sample configuration detected" : "Exempel-konfiguration detekterad",
- "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det har upptäckts att provkonfigurationen har kopierats. Detta kan bryta din installation och stöds inte. Vänligen läs dokumentationen innan du utför ändringar på config.php",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det har upptäckts att provkonfigurationen har kopierats. Detta kan bryta din installation och stöds inte. Läs dokumentationen innan du utför ändringar på config.php",
"%s email verification" : "%s e-postverifikation",
"Email verification" : "E-postverifikation",
"Click the following button to confirm your email." : "Klicka på följande knapp för att verifiera din e-postadress.",
@@ -120,9 +120,9 @@ OC.L10N.register(
"Oracle username and/or password not valid" : "Oracle-användarnamnet och/eller lösenordet är felaktigt",
"PostgreSQL username and/or password not valid" : "PostgreSQL-användarnamnet och/eller lösenordet är felaktigt",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X stöds inte och %s kommer inte att fungera korrekt på denna plattform. Använd på egen risk!",
- "For the best results, please consider using a GNU/Linux server instead." : "För bästa resultat, vänligen överväg att använda en GNU/Linux-server istället.",
+ "For the best results, please consider using a GNU/Linux server instead." : "För bästa resultat, överväg att använda en GNU/Linux-server istället.",
"It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Det verkar som om denna %s instans körs på en 32-bitars PHP miljö och open_basedir har konfigurerats i php.ini. Detta kommer att leda till problem med filer över 4 GB och är verkligen inte rekommenderat!",
- "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Vänligen ta bort open_basedir-inställningen i din php.ini eller växla till 64-bitars PHP.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Ta bort open_basedir-inställningen i din php.ini eller växla till 64-bitars PHP.",
"Set an admin username." : "Ange ett användarnamn för administratören.",
"Set an admin password." : "Ange ett administratörslösenord.",
"Cannot create or write into the data directory %s" : "Kan inte skapa eller skriva till data-katalogen %s",
@@ -205,15 +205,15 @@ OC.L10N.register(
"Login canceled by app" : "Inloggningen avbruten av appen",
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Appen \"%1$s\" kan inte installeras eftersom följande beroenden inte är uppfyllda: %2$s",
"a safe home for all your data" : "ett säkert hem för all din data",
- "File is currently busy, please try again later" : "Filen är för tillfället upptagen, vänligen försök igen senare",
+ "File is currently busy, please try again later" : "Filen är för tillfället upptagen, försök igen senare",
"Cannot read file" : "Kan inte läsa fil",
"Application is not enabled" : "Applikationen är inte aktiverad",
"Authentication error" : "Fel vid autentisering",
- "Token expired. Please reload page." : "Token har löpt ut. Vänligen uppdatera sidan.",
+ "Token expired. Please reload page." : "Token har löpt ut. Uppdatera sidan.",
"No database drivers (sqlite, mysql, or postgresql) installed." : "Inga databasdrivrutiner (sqlite, mysql, eller postgresql) installerade.",
"Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Eller, om du föredrar att behålla config.php skrivskyddad, sätt alternativet \"config_is_read_only\" till true i den. Se %s",
"PHP module %s not installed." : "PHP-modulen %s är inte installerad.",
- "Please ask your server administrator to install the module." : "Vänligen be serveradministratören att installera modulen.",
+ "Please ask your server administrator to install the module." : "Be serveradministratören att installera modulen.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-inställning \"%s\" är inte inställd på \"%s\".",
"Adjusting this setting in php.ini will make Nextcloud run again" : "Att ändra denna inställning i php.ini kommer göra så att Nextcloud fungerar igen",
"libxml2 2.7.0 is at least required. Currently %s is installed." : "libxml2 2.7.0 är det minsta som krävs. För närvarande är %s installerat.",
@@ -221,8 +221,8 @@ OC.L10N.register(
"PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställt för att tömma \"inline doc blocks\". Detta kommer att göra flera kärnprogram otillgängliga.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har installerats, men de listas fortfarande som saknade?",
- "Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webbservern.",
- "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Vänligen ändra behörigheterna till 0770 så att katalogen inte kan listas av andra användare.",
+ "Please ask your server administrator to restart the web server." : "Be din serveradministratör att starta om webbservern.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Ändra behörigheterna till 0770 så att katalogen inte kan listas av andra användare.",
"Ensure there is a file called \".ocdata\" in the root of the data directory." : "Säkerställ att du har filen \".ocdata\" i huvudkatalogen för din data.",
"Action \"%s\" not supported or implemented." : "Åtgärd \"%s\" stöds inte eller är inte implementerad.",
"Authentication failed, wrong token or provider ID given" : "Autentisering misslyckades, felaktig token eller leverantörs-ID",
@@ -252,11 +252,11 @@ OC.L10N.register(
"This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Detta kan vanligtvis åtgärda genom att ge webbservern skrivåtkomst till rotkatalogen. Se %s",
"Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Rättigheter kan vanligtvis fixas genom att ge webbservern skrivåtkomst till rotkatalogen. Se %s.",
"Setting locale to %s failed" : "Sätta locale till %s misslyckades",
- "Please install one of these locales on your system and restart your webserver." : "Vänligen Installera en av dessa språk på ditt system och starta om webbservern.",
+ "Please install one of these locales on your system and restart your webserver." : "Installera en av dessa språk på ditt system och starta om webbservern.",
"mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload är satt till \"%s\" istället för det förväntade värdet \"0\"",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "För att åtgärda detta problem sätt värdet <code> mbstring.func_overload till </ code> <code> 0 </ code> i din php.ini",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 krävs",
- "Please upgrade your database version" : "Vänligen uppgradera din databasversion",
+ "Please upgrade your database version" : "Uppgradera din databasversion",
"Your data directory is readable by other users" : "Din datamapp är läsbar av andra användare",
"Your data directory must be an absolute path" : "Du måste specificera en korrekt sökväg till datamappen",
"Check the value of \"datadirectory\" in your configuration" : "Kontrollera värdet av \"datakatalog\" i din konfiguration",
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
index 444d8d908bb..74526fac761 100644
--- a/lib/l10n/sv.json
+++ b/lib/l10n/sv.json
@@ -4,7 +4,7 @@
"See %s" : "Se %s",
"The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "Filerna i appen %1$s ersattes inte korrekt. Kontrollera att det är en version som är kompatibel med servern.",
"Sample configuration detected" : "Exempel-konfiguration detekterad",
- "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det har upptäckts att provkonfigurationen har kopierats. Detta kan bryta din installation och stöds inte. Vänligen läs dokumentationen innan du utför ändringar på config.php",
+ "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Det har upptäckts att provkonfigurationen har kopierats. Detta kan bryta din installation och stöds inte. Läs dokumentationen innan du utför ändringar på config.php",
"%s email verification" : "%s e-postverifikation",
"Email verification" : "E-postverifikation",
"Click the following button to confirm your email." : "Klicka på följande knapp för att verifiera din e-postadress.",
@@ -118,9 +118,9 @@
"Oracle username and/or password not valid" : "Oracle-användarnamnet och/eller lösenordet är felaktigt",
"PostgreSQL username and/or password not valid" : "PostgreSQL-användarnamnet och/eller lösenordet är felaktigt",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X stöds inte och %s kommer inte att fungera korrekt på denna plattform. Använd på egen risk!",
- "For the best results, please consider using a GNU/Linux server instead." : "För bästa resultat, vänligen överväg att använda en GNU/Linux-server istället.",
+ "For the best results, please consider using a GNU/Linux server instead." : "För bästa resultat, överväg att använda en GNU/Linux-server istället.",
"It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Det verkar som om denna %s instans körs på en 32-bitars PHP miljö och open_basedir har konfigurerats i php.ini. Detta kommer att leda till problem med filer över 4 GB och är verkligen inte rekommenderat!",
- "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Vänligen ta bort open_basedir-inställningen i din php.ini eller växla till 64-bitars PHP.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Ta bort open_basedir-inställningen i din php.ini eller växla till 64-bitars PHP.",
"Set an admin username." : "Ange ett användarnamn för administratören.",
"Set an admin password." : "Ange ett administratörslösenord.",
"Cannot create or write into the data directory %s" : "Kan inte skapa eller skriva till data-katalogen %s",
@@ -203,15 +203,15 @@
"Login canceled by app" : "Inloggningen avbruten av appen",
"App \"%1$s\" cannot be installed because the following dependencies are not fulfilled: %2$s" : "Appen \"%1$s\" kan inte installeras eftersom följande beroenden inte är uppfyllda: %2$s",
"a safe home for all your data" : "ett säkert hem för all din data",
- "File is currently busy, please try again later" : "Filen är för tillfället upptagen, vänligen försök igen senare",
+ "File is currently busy, please try again later" : "Filen är för tillfället upptagen, försök igen senare",
"Cannot read file" : "Kan inte läsa fil",
"Application is not enabled" : "Applikationen är inte aktiverad",
"Authentication error" : "Fel vid autentisering",
- "Token expired. Please reload page." : "Token har löpt ut. Vänligen uppdatera sidan.",
+ "Token expired. Please reload page." : "Token har löpt ut. Uppdatera sidan.",
"No database drivers (sqlite, mysql, or postgresql) installed." : "Inga databasdrivrutiner (sqlite, mysql, eller postgresql) installerade.",
"Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Eller, om du föredrar att behålla config.php skrivskyddad, sätt alternativet \"config_is_read_only\" till true i den. Se %s",
"PHP module %s not installed." : "PHP-modulen %s är inte installerad.",
- "Please ask your server administrator to install the module." : "Vänligen be serveradministratören att installera modulen.",
+ "Please ask your server administrator to install the module." : "Be serveradministratören att installera modulen.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-inställning \"%s\" är inte inställd på \"%s\".",
"Adjusting this setting in php.ini will make Nextcloud run again" : "Att ändra denna inställning i php.ini kommer göra så att Nextcloud fungerar igen",
"libxml2 2.7.0 is at least required. Currently %s is installed." : "libxml2 2.7.0 är det minsta som krävs. För närvarande är %s installerat.",
@@ -219,8 +219,8 @@
"PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställt för att tömma \"inline doc blocks\". Detta kommer att göra flera kärnprogram otillgängliga.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har installerats, men de listas fortfarande som saknade?",
- "Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webbservern.",
- "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Vänligen ändra behörigheterna till 0770 så att katalogen inte kan listas av andra användare.",
+ "Please ask your server administrator to restart the web server." : "Be din serveradministratör att starta om webbservern.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Ändra behörigheterna till 0770 så att katalogen inte kan listas av andra användare.",
"Ensure there is a file called \".ocdata\" in the root of the data directory." : "Säkerställ att du har filen \".ocdata\" i huvudkatalogen för din data.",
"Action \"%s\" not supported or implemented." : "Åtgärd \"%s\" stöds inte eller är inte implementerad.",
"Authentication failed, wrong token or provider ID given" : "Autentisering misslyckades, felaktig token eller leverantörs-ID",
@@ -250,11 +250,11 @@
"This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Detta kan vanligtvis åtgärda genom att ge webbservern skrivåtkomst till rotkatalogen. Se %s",
"Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Rättigheter kan vanligtvis fixas genom att ge webbservern skrivåtkomst till rotkatalogen. Se %s.",
"Setting locale to %s failed" : "Sätta locale till %s misslyckades",
- "Please install one of these locales on your system and restart your webserver." : "Vänligen Installera en av dessa språk på ditt system och starta om webbservern.",
+ "Please install one of these locales on your system and restart your webserver." : "Installera en av dessa språk på ditt system och starta om webbservern.",
"mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload är satt till \"%s\" istället för det förväntade värdet \"0\"",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "För att åtgärda detta problem sätt värdet <code> mbstring.func_overload till </ code> <code> 0 </ code> i din php.ini",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 krävs",
- "Please upgrade your database version" : "Vänligen uppgradera din databasversion",
+ "Please upgrade your database version" : "Uppgradera din databasversion",
"Your data directory is readable by other users" : "Din datamapp är läsbar av andra användare",
"Your data directory must be an absolute path" : "Du måste specificera en korrekt sökväg till datamappen",
"Check the value of \"datadirectory\" in your configuration" : "Kontrollera värdet av \"datakatalog\" i din konfiguration",
diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php
index a0f905115cc..046e3a4924b 100644
--- a/lib/private/DB/MigrationService.php
+++ b/lib/private/DB/MigrationService.php
@@ -595,6 +595,10 @@ class MigrationService {
if ((!$sourceTable instanceof Table || !$sourceTable->hasColumn($thing->getName())) && $thing->getNotnull() && $thing->getType()->getName() === Types::BOOLEAN) {
throw new \InvalidArgumentException('Column "' . $table->getName() . '"."' . $thing->getName() . '" is type Bool and also NotNull, so it can not store "false".');
}
+
+ if ($thing->getLength() > 4000 && $thing->getType()->getName() === Types::STRING) {
+ throw new \InvalidArgumentException('Column "' . $table->getName() . '"."' . $thing->getName() . '" is type String, but exceeding the 4.000 length limit.');
+ }
}
foreach ($table->getIndexes() as $thing) {
diff --git a/lib/private/Repair/Owncloud/MigrateOauthTables.php b/lib/private/Repair/Owncloud/MigrateOauthTables.php
index 274c2ee28db..4011a043f20 100644
--- a/lib/private/Repair/Owncloud/MigrateOauthTables.php
+++ b/lib/private/Repair/Owncloud/MigrateOauthTables.php
@@ -55,23 +55,34 @@ class MigrateOauthTables implements IRepairStep {
$output->info("Update the oauth2_access_tokens table schema.");
$schema = new SchemaWrapper($this->db);
$table = $schema->getTable('oauth2_access_tokens');
- $table->addColumn('hashed_code', 'string', [
- 'notnull' => true,
- 'length' => 128,
- ]);
- $table->addColumn('encrypted_token', 'string', [
- 'notnull' => true,
- 'length' => 786,
- ]);
- $table->addUniqueIndex(['hashed_code'], 'oauth2_access_hash_idx');
- $table->addIndex(['client_id'], 'oauth2_access_client_id_idx');
-
+ if (!$table->hasColumn('hashed_code')) {
+ $table->addColumn('hashed_code', 'string', [
+ 'notnull' => true,
+ 'length' => 128,
+ ]);
+ }
+ if (!$table->hasColumn('encrypted_token')) {
+ $table->addColumn('encrypted_token', 'string', [
+ 'notnull' => true,
+ 'length' => 786,
+ ]);
+ }
+ if (!$table->hasIndex('oauth2_access_hash_idx')) {
+ $table->addUniqueIndex(['hashed_code'], 'oauth2_access_hash_idx');
+ }
+ if (!$table->hasIndex('oauth2_access_client_id_idx')) {
+ $table->addIndex(['client_id'], 'oauth2_access_client_id_idx');
+ }
$output->info("Update the oauth2_clients table schema.");
$schema = new SchemaWrapper($this->db);
$table = $schema->getTable('oauth2_clients');
- $table->getColumn('name')->setLength(64);
- $table->dropColumn('allow_subdomains');
+ if ($table->getColumn('name')->getLength() !== 64) {
+ $table->getColumn('name')->setLength(64);
+ }
+ if ($table->hasColumn('allow_subdomains')) {
+ $table->dropColumn('allow_subdomains');
+ }
if (!$schema->getTable('oauth2_clients')->hasColumn('client_identifier')) {
$table->addColumn('client_identifier', 'string', [
diff --git a/tests/lib/DB/MigrationsTest.php b/tests/lib/DB/MigrationsTest.php
index b00b094b4aa..206fe1a3798 100644
--- a/tests/lib/DB/MigrationsTest.php
+++ b/tests/lib/DB/MigrationsTest.php
@@ -716,4 +716,44 @@ class MigrationsTest extends \Test\TestCase {
self::invokePrivate($this->migrationService, 'ensureOracleConstraints', [$sourceSchema, $schema, 3]);
}
+
+
+ public function testEnsureOracleConstraintsStringLength4000() {
+ $this->expectException(\InvalidArgumentException::class);
+
+ $column = $this->createMock(Column::class);
+ $column->expects($this->any())
+ ->method('getName')
+ ->willReturn('aaaa');
+ $column->expects($this->any())
+ ->method('getType')
+ ->willReturn(Type::getType('string'));
+ $column->expects($this->any())
+ ->method('getLength')
+ ->willReturn(4001);
+
+ $table = $this->createMock(Table::class);
+ $table->expects($this->any())
+ ->method('getName')
+ ->willReturn(\str_repeat('a', 30));
+
+ $table->expects($this->once())
+ ->method('getColumns')
+ ->willReturn([$column]);
+
+ $schema = $this->createMock(Schema::class);
+ $schema->expects($this->once())
+ ->method('getTables')
+ ->willReturn([$table]);
+
+ $sourceSchema = $this->createMock(Schema::class);
+ $sourceSchema->expects($this->any())
+ ->method('getTable')
+ ->willThrowException(new SchemaException());
+ $sourceSchema->expects($this->any())
+ ->method('hasSequence')
+ ->willReturn(false);
+
+ self::invokePrivate($this->migrationService, 'ensureOracleConstraints', [$sourceSchema, $schema, 3]);
+ }
}
diff --git a/version.php b/version.php
index 8eb364be40a..65ab45ae313 100644
--- a/version.php
+++ b/version.php
@@ -30,10 +30,10 @@
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
// when updating major/minor version number.
-$OC_Version = [24, 0, 0, 6];
+$OC_Version = [24, 0, 0, 7];
// The human readable string
-$OC_VersionString = '24.0.0 beta 1';
+$OC_VersionString = '24.0.0 beta 2';
$OC_VersionCanBeUpgradedFrom = [
'nextcloud' => [