summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--apps/encryption/appinfo/info.xml2
-rw-r--r--apps/encryption/l10n/bg.js1
-rw-r--r--apps/encryption/l10n/bg.json1
-rw-r--r--apps/encryption/l10n/de.js1
-rw-r--r--apps/encryption/l10n/de.json1
-rw-r--r--apps/encryption/l10n/de_DE.js2
-rw-r--r--apps/encryption/l10n/de_DE.json2
-rw-r--r--apps/encryption/l10n/en_GB.js2
-rw-r--r--apps/encryption/l10n/en_GB.json2
-rw-r--r--apps/encryption/l10n/es.js1
-rw-r--r--apps/encryption/l10n/es.json1
-rw-r--r--apps/encryption/l10n/fr.js2
-rw-r--r--apps/encryption/l10n/fr.json2
-rw-r--r--apps/encryption/l10n/hu.js1
-rw-r--r--apps/encryption/l10n/hu.json1
-rw-r--r--apps/encryption/l10n/pt_BR.js1
-rw-r--r--apps/encryption/l10n/pt_BR.json1
-rw-r--r--apps/encryption/l10n/sr.js1
-rw-r--r--apps/encryption/l10n/sr.json1
-rw-r--r--apps/encryption/l10n/tr.js1
-rw-r--r--apps/encryption/l10n/tr.json1
-rw-r--r--apps/encryption/l10n/zh_HK.js2
-rw-r--r--apps/encryption/l10n/zh_HK.json2
-rw-r--r--apps/encryption/l10n/zh_TW.js1
-rw-r--r--apps/encryption/l10n/zh_TW.json1
-rw-r--r--apps/encryption/tests/EncryptedStorageTest.php85
-rw-r--r--apps/files_sharing/l10n/fr.js2
-rw-r--r--apps/files_sharing/l10n/fr.json2
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php2
-rw-r--r--apps/settings/l10n/ar.js1
-rw-r--r--apps/settings/l10n/ar.json1
-rw-r--r--apps/settings/l10n/bg.js1
-rw-r--r--apps/settings/l10n/bg.json1
-rw-r--r--apps/settings/l10n/br.js1
-rw-r--r--apps/settings/l10n/br.json1
-rw-r--r--apps/settings/l10n/ca.js1
-rw-r--r--apps/settings/l10n/ca.json1
-rw-r--r--apps/settings/l10n/cs.js1
-rw-r--r--apps/settings/l10n/cs.json1
-rw-r--r--apps/settings/l10n/da.js1
-rw-r--r--apps/settings/l10n/da.json1
-rw-r--r--apps/settings/l10n/de.js1
-rw-r--r--apps/settings/l10n/de.json1
-rw-r--r--apps/settings/l10n/de_DE.js1
-rw-r--r--apps/settings/l10n/de_DE.json1
-rw-r--r--apps/settings/l10n/el.js1
-rw-r--r--apps/settings/l10n/el.json1
-rw-r--r--apps/settings/l10n/en_GB.js1
-rw-r--r--apps/settings/l10n/en_GB.json1
-rw-r--r--apps/settings/l10n/es.js1
-rw-r--r--apps/settings/l10n/es.json1
-rw-r--r--apps/settings/l10n/eu.js1
-rw-r--r--apps/settings/l10n/eu.json1
-rw-r--r--apps/settings/l10n/fi.js1
-rw-r--r--apps/settings/l10n/fi.json1
-rw-r--r--apps/settings/l10n/fr.js1
-rw-r--r--apps/settings/l10n/fr.json1
-rw-r--r--apps/settings/l10n/gl.js1
-rw-r--r--apps/settings/l10n/gl.json1
-rw-r--r--apps/settings/l10n/he.js1
-rw-r--r--apps/settings/l10n/he.json1
-rw-r--r--apps/settings/l10n/hr.js1
-rw-r--r--apps/settings/l10n/hr.json1
-rw-r--r--apps/settings/l10n/hu.js1
-rw-r--r--apps/settings/l10n/hu.json1
-rw-r--r--apps/settings/l10n/id.js1
-rw-r--r--apps/settings/l10n/id.json1
-rw-r--r--apps/settings/l10n/is.js1
-rw-r--r--apps/settings/l10n/is.json1
-rw-r--r--apps/settings/l10n/it.js1
-rw-r--r--apps/settings/l10n/it.json1
-rw-r--r--apps/settings/l10n/ja.js1
-rw-r--r--apps/settings/l10n/ja.json1
-rw-r--r--apps/settings/l10n/ko.js1
-rw-r--r--apps/settings/l10n/ko.json1
-rw-r--r--apps/settings/l10n/lt_LT.js1
-rw-r--r--apps/settings/l10n/lt_LT.json1
-rw-r--r--apps/settings/l10n/mk.js1
-rw-r--r--apps/settings/l10n/mk.json1
-rw-r--r--apps/settings/l10n/nb.js1
-rw-r--r--apps/settings/l10n/nb.json1
-rw-r--r--apps/settings/l10n/nl.js1
-rw-r--r--apps/settings/l10n/nl.json1
-rw-r--r--apps/settings/l10n/oc.js1
-rw-r--r--apps/settings/l10n/oc.json1
-rw-r--r--apps/settings/l10n/pl.js1
-rw-r--r--apps/settings/l10n/pl.json1
-rw-r--r--apps/settings/l10n/pt_BR.js1
-rw-r--r--apps/settings/l10n/pt_BR.json1
-rw-r--r--apps/settings/l10n/ru.js1
-rw-r--r--apps/settings/l10n/ru.json1
-rw-r--r--apps/settings/l10n/sc.js1
-rw-r--r--apps/settings/l10n/sc.json1
-rw-r--r--apps/settings/l10n/sk.js1
-rw-r--r--apps/settings/l10n/sk.json1
-rw-r--r--apps/settings/l10n/sl.js1
-rw-r--r--apps/settings/l10n/sl.json1
-rw-r--r--apps/settings/l10n/sr.js1
-rw-r--r--apps/settings/l10n/sr.json1
-rw-r--r--apps/settings/l10n/sv.js1
-rw-r--r--apps/settings/l10n/sv.json1
-rw-r--r--apps/settings/l10n/th.js1
-rw-r--r--apps/settings/l10n/th.json1
-rw-r--r--apps/settings/l10n/tr.js1
-rw-r--r--apps/settings/l10n/tr.json1
-rw-r--r--apps/settings/l10n/uk.js1
-rw-r--r--apps/settings/l10n/uk.json1
-rw-r--r--apps/settings/l10n/zh_CN.js1
-rw-r--r--apps/settings/l10n/zh_CN.json1
-rw-r--r--apps/settings/l10n/zh_HK.js1
-rw-r--r--apps/settings/l10n/zh_HK.json1
-rw-r--r--apps/settings/l10n/zh_TW.js1
-rw-r--r--apps/settings/l10n/zh_TW.json1
-rw-r--r--apps/settings/src/components/PersonalInfo/EmailSection/Email.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue7
-rw-r--r--apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/shared/FederationControl.vue6
-rw-r--r--apps/settings/src/utils/handlers.js48
-rw-r--r--apps/updatenotification/l10n/cs.js1
-rw-r--r--apps/updatenotification/l10n/cs.json1
-rw-r--r--apps/updatenotification/l10n/de_DE.js1
-rw-r--r--apps/updatenotification/l10n/de_DE.json1
-rw-r--r--apps/updatenotification/l10n/en_GB.js1
-rw-r--r--apps/updatenotification/l10n/en_GB.json1
-rw-r--r--apps/updatenotification/l10n/fi.js4
-rw-r--r--apps/updatenotification/l10n/fi.json4
-rw-r--r--apps/updatenotification/l10n/fr.js1
-rw-r--r--apps/updatenotification/l10n/fr.json1
-rw-r--r--apps/updatenotification/l10n/sv.js1
-rw-r--r--apps/updatenotification/l10n/sv.json1
-rw-r--r--apps/updatenotification/l10n/tr.js1
-rw-r--r--apps/updatenotification/l10n/tr.json1
-rw-r--r--apps/updatenotification/l10n/zh_HK.js1
-rw-r--r--apps/updatenotification/l10n/zh_HK.json1
-rw-r--r--config/config.sample.php15
-rw-r--r--core/Controller/ProfileApiController.php1
-rw-r--r--core/css/apps.css2
-rw-r--r--core/css/apps.css.map2
-rw-r--r--core/css/apps.scss2
-rw-r--r--core/css/server.css2
-rw-r--r--core/css/server.css.map2
-rw-r--r--core/l10n/fi.js3
-rw-r--r--core/l10n/fi.json3
-rw-r--r--dist/settings-vue-settings-personal-info.js4
-rw-r--r--dist/settings-vue-settings-personal-info.js.map2
-rw-r--r--lib/private/Files/Cache/Cache.php22
-rw-r--r--lib/private/Files/Cache/Wrapper/CacheWrapper.php9
-rw-r--r--lib/private/Files/Storage/Common.php2
-rw-r--r--lib/private/Files/Storage/DAV.php2
-rw-r--r--lib/private/Files/Storage/Local.php3
-rw-r--r--lib/private/Files/Storage/Wrapper/Encoding.php4
-rw-r--r--lib/private/Files/Storage/Wrapper/Jail.php4
-rw-r--r--lib/private/Files/Storage/Wrapper/Quota.php18
-rw-r--r--lib/private/Files/Storage/Wrapper/Wrapper.php4
-rwxr-xr-xlib/private/LargeFileHelper.php5
-rw-r--r--lib/public/Files/Storage.php4
-rw-r--r--lib/public/Files/Storage/IStorage.php4
162 files changed, 349 insertions, 99 deletions
diff --git a/.gitignore b/.gitignore
index 5845018f9c9..de380d992bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -96,6 +96,7 @@ nbproject
# vscode
.vscode
+*.code-workspace
# geany
*.geany
diff --git a/apps/encryption/appinfo/info.xml b/apps/encryption/appinfo/info.xml
index 15e95ee475a..e77261c4712 100644
--- a/apps/encryption/appinfo/info.xml
+++ b/apps/encryption/appinfo/info.xml
@@ -6,7 +6,7 @@
<summary>Default encryption module for server-side encryption</summary>
<description>
In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.
-The module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.
+The module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.
Please read the documentation to know all implications before you decide to enable server-side encryption.
</description>
<version>2.15.0</version>
diff --git a/apps/encryption/l10n/bg.js b/apps/encryption/l10n/bg.js
index d91e6c5ca9d..b2327744101 100644
--- a/apps/encryption/l10n/bg.js
+++ b/apps/encryption/l10n/bg.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Файлът не може да бъде прочетен, вероятно е споделен файл. Моля, помолете собственика на файла да го сподели повторно с вас.",
"Default encryption module" : "Модул за криптиране по подразбиране:",
"Default encryption module for server-side encryption" : "Модул за криптиране по подразбиране за сървърно криптиране",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "За да използвате този модул за криптиране, трябва да активирате от страна на сървъра криптирането в администраторските настройки. След като бъде активиран, този модул ще шифрова всичките ви файлове прозрачно. Криптирането се базира на AES 256 ключове.\nМодулът няма да засяга съществуващи файлове, само новите файлове ще бъдат криптирани след активиране на криптиране от страна на сървъра. Също така не е възможно да деактивирате криптирането отново и да се върнете към нешифрована система.\nМоля, прочетете документацията, за да сте наясно за всички последици, преди да решите да активирате сървърното криптиране.",
"Hey there,\n\nThe administration 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" : "Здравей,\n\nАдминистрацията активира шифроването от страна на сървъра. Файловете ви са криптирани със следната парола \"%s\".\n\nМоля да влезете в уеб интерфейса, да отидете в раздела „основен модул за криптиране“ на вашите лични настройки и да актуализирате паролата си за криптиране, като въведете тази парола в полето „стара парола за влизане“ и текущата парола за вход.\n\n",
"The share will expire on %s." : "Споделянето ще изтече на %s.",
"Cheers!" : "Поздрави!",
diff --git a/apps/encryption/l10n/bg.json b/apps/encryption/l10n/bg.json
index b93772c1cf7..8fdd30e7892 100644
--- a/apps/encryption/l10n/bg.json
+++ b/apps/encryption/l10n/bg.json
@@ -30,7 +30,6 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Файлът не може да бъде прочетен, вероятно е споделен файл. Моля, помолете собственика на файла да го сподели повторно с вас.",
"Default encryption module" : "Модул за криптиране по подразбиране:",
"Default encryption module for server-side encryption" : "Модул за криптиране по подразбиране за сървърно криптиране",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "За да използвате този модул за криптиране, трябва да активирате от страна на сървъра криптирането в администраторските настройки. След като бъде активиран, този модул ще шифрова всичките ви файлове прозрачно. Криптирането се базира на AES 256 ключове.\nМодулът няма да засяга съществуващи файлове, само новите файлове ще бъдат криптирани след активиране на криптиране от страна на сървъра. Също така не е възможно да деактивирате криптирането отново и да се върнете към нешифрована система.\nМоля, прочетете документацията, за да сте наясно за всички последици, преди да решите да активирате сървърното криптиране.",
"Hey there,\n\nThe administration 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" : "Здравей,\n\nАдминистрацията активира шифроването от страна на сървъра. Файловете ви са криптирани със следната парола \"%s\".\n\nМоля да влезете в уеб интерфейса, да отидете в раздела „основен модул за криптиране“ на вашите лични настройки и да актуализирате паролата си за криптиране, като въведете тази парола в полето „стара парола за влизане“ и текущата парола за вход.\n\n",
"The share will expire on %s." : "Споделянето ще изтече на %s.",
"Cheers!" : "Поздрави!",
diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js
index 29001bdbb5b..13a5ce7008c 100644
--- a/apps/encryption/l10n/de.js
+++ b/apps/encryption/l10n/de.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Diese Datei kann nicht gelesen werden, es handelt sich wahrscheinlich um eine geteilte Datei. Bitte kontaktiere den Eigentümer der Datei und bitte darum, die Datei noch einmal mit dir zu teilen.",
"Default encryption module" : "Standard-Verschlüsselungsmodul",
"Default encryption module for server-side encryption" : "Standard-Verschlüsselungsmodul für serverseitige Verschlüsselung",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Um dieses Verschlüsselungsmodul nutzen zu können, musst du die serverseitige Verschlüsselung in den Administrations-Einstellungen aktivieren. Sobald das Modul aktiviert ist, verschlüsselt es alle deine Dateien transparent. Die Verschlüsselung basiert auf AES 256 Schlüsseln.\nDas Modul ändert keine vorhandenen Dateien, nur neue Dateien werden verschlüsselt, nachdem die serverseitige Verschlüsselung aktiviert wurde. Es ist nicht möglich, die Verschlüsselung zu deaktivieren und wieder auf ein unverschlüsseltes System umzuschalten.\nBitte lese die Dokumentation, um alle Auswirkungen zu kennen, bevor du dich entscheidest, die serverseitige Verschlüsselung zu aktivieren.",
"Hey there,\n\nThe administration 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" : "Hallo,\n\nder Administrator hat die serverseitige Verschlüsselung aktiviert. Deine Dateien wurden mit dem Passwort '%s' verschlüsselt.\n\nBitte melde dich auf der Web-Oberfläche an, gehe zu deinen persönlichen Einstellungen und aktualisiere dort dein Verschlüsselungspasswort, indem du das Passwort in das 'altes Anmelde-Passwort' und in das 'aktuelles Anmelde-Passwort' Feld eingibst.\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
"Cheers!" : "Noch einen schönen Tag!",
diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json
index a9a88692249..6e10b1b6caf 100644
--- a/apps/encryption/l10n/de.json
+++ b/apps/encryption/l10n/de.json
@@ -30,7 +30,6 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Diese Datei kann nicht gelesen werden, es handelt sich wahrscheinlich um eine geteilte Datei. Bitte kontaktiere den Eigentümer der Datei und bitte darum, die Datei noch einmal mit dir zu teilen.",
"Default encryption module" : "Standard-Verschlüsselungsmodul",
"Default encryption module for server-side encryption" : "Standard-Verschlüsselungsmodul für serverseitige Verschlüsselung",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Um dieses Verschlüsselungsmodul nutzen zu können, musst du die serverseitige Verschlüsselung in den Administrations-Einstellungen aktivieren. Sobald das Modul aktiviert ist, verschlüsselt es alle deine Dateien transparent. Die Verschlüsselung basiert auf AES 256 Schlüsseln.\nDas Modul ändert keine vorhandenen Dateien, nur neue Dateien werden verschlüsselt, nachdem die serverseitige Verschlüsselung aktiviert wurde. Es ist nicht möglich, die Verschlüsselung zu deaktivieren und wieder auf ein unverschlüsseltes System umzuschalten.\nBitte lese die Dokumentation, um alle Auswirkungen zu kennen, bevor du dich entscheidest, die serverseitige Verschlüsselung zu aktivieren.",
"Hey there,\n\nThe administration 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" : "Hallo,\n\nder Administrator hat die serverseitige Verschlüsselung aktiviert. Deine Dateien wurden mit dem Passwort '%s' verschlüsselt.\n\nBitte melde dich auf der Web-Oberfläche an, gehe zu deinen persönlichen Einstellungen und aktualisiere dort dein Verschlüsselungspasswort, indem du das Passwort in das 'altes Anmelde-Passwort' und in das 'aktuelles Anmelde-Passwort' Feld eingibst.\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
"Cheers!" : "Noch einen schönen Tag!",
diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js
index fb8cb035399..0b592be826a 100644
--- a/apps/encryption/l10n/de_DE.js
+++ b/apps/encryption/l10n/de_DE.js
@@ -32,7 +32,7 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Diese Datei kann nicht gelesen werden, es handelt sich wahrscheinlich um eine geteilte Datei. Bitte kontaktieren Sie den Eigentümer der Datei und bitten Sie darum, die Datei noch einmal mit Ihnen zu teilen.",
"Default encryption module" : "Standard-Verschlüsselungsmodul",
"Default encryption module for server-side encryption" : "Standard-Verschlüsselungsmodul für serverseitige Verschlüsselung",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Um dieses Verschlüsselungsmodul nutzen zu können, müssen Sie die serverseitige Verschlüsselung in den Administrations-Einstellungen aktivieren. Sobald das Modul aktiviert ist, verschlüsselt es alle Ihre Dateien transparent. Die Verschlüsselung basiert auf AES 256 Schlüsseln.\nDas Modul ändert keine vorhandenen Dateien, nur neue Dateien werden verschlüsselt, nachdem die serverseitige Verschlüsselung aktiviert wurde. Es ist nicht möglich, die Verschlüsselung zu deaktivieren und wieder auf ein unverschlüsseltes System umzuschalten.\nBitte lesen Sie die Dokumentation, um alle Auswirkungen zu kennen, bevor Sie sich entscheiden, die serverseitige Verschlüsselung zu aktivieren.",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Um dieses Verschlüsselungsmodul nutzen zu können, müssen Sie die serverseitige Verschlüsselung in den Administrationseinstellungen aktivieren. Sobald das Modul aktiviert ist, verschlüsselt es alle Ihre Dateien transparent. Die Verschlüsselung basiert auf AES-256-Schlüsseln.\nDas Modul ändert keine vorhandenen Dateien, nur neue Dateien werden verschlüsselt, nachdem die serverseitige Verschlüsselung aktiviert wurde. Es ist nicht möglich, die Verschlüsselung zu deaktivieren und wieder auf ein unverschlüsseltes System umzuschalten.\nBitte lesen Sie die Dokumentation, um alle Auswirkungen zu kennen, bevor Sie sich entscheiden, die serverseitige Verschlüsselung zu aktivieren.",
"Hey there,\n\nThe administration 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" : "Hallo,\n\ndie Administration hat die servereitige Verschlüsselung aktiviert. Ihre Dateien wurden mit dem Passwort '%s' verschlüsselt.\n\nBitte melden Sie sich auf der Web-Oberfläche an, gehen Sie zu Ihren persönlichen Einstellungen und aktualisieren Sie dort ihr Verschlüsselungspasswort, indem Sie das Passwort in das 'altes Anmelde-Passwort' und in das 'aktuelles Anmelde-Passwort' Feld eingeben.\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
"Cheers!" : "Noch einen schönen Tag!",
diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json
index b4dbedcaa8e..4b6a7c6cad9 100644
--- a/apps/encryption/l10n/de_DE.json
+++ b/apps/encryption/l10n/de_DE.json
@@ -30,7 +30,7 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Diese Datei kann nicht gelesen werden, es handelt sich wahrscheinlich um eine geteilte Datei. Bitte kontaktieren Sie den Eigentümer der Datei und bitten Sie darum, die Datei noch einmal mit Ihnen zu teilen.",
"Default encryption module" : "Standard-Verschlüsselungsmodul",
"Default encryption module for server-side encryption" : "Standard-Verschlüsselungsmodul für serverseitige Verschlüsselung",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Um dieses Verschlüsselungsmodul nutzen zu können, müssen Sie die serverseitige Verschlüsselung in den Administrations-Einstellungen aktivieren. Sobald das Modul aktiviert ist, verschlüsselt es alle Ihre Dateien transparent. Die Verschlüsselung basiert auf AES 256 Schlüsseln.\nDas Modul ändert keine vorhandenen Dateien, nur neue Dateien werden verschlüsselt, nachdem die serverseitige Verschlüsselung aktiviert wurde. Es ist nicht möglich, die Verschlüsselung zu deaktivieren und wieder auf ein unverschlüsseltes System umzuschalten.\nBitte lesen Sie die Dokumentation, um alle Auswirkungen zu kennen, bevor Sie sich entscheiden, die serverseitige Verschlüsselung zu aktivieren.",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Um dieses Verschlüsselungsmodul nutzen zu können, müssen Sie die serverseitige Verschlüsselung in den Administrationseinstellungen aktivieren. Sobald das Modul aktiviert ist, verschlüsselt es alle Ihre Dateien transparent. Die Verschlüsselung basiert auf AES-256-Schlüsseln.\nDas Modul ändert keine vorhandenen Dateien, nur neue Dateien werden verschlüsselt, nachdem die serverseitige Verschlüsselung aktiviert wurde. Es ist nicht möglich, die Verschlüsselung zu deaktivieren und wieder auf ein unverschlüsseltes System umzuschalten.\nBitte lesen Sie die Dokumentation, um alle Auswirkungen zu kennen, bevor Sie sich entscheiden, die serverseitige Verschlüsselung zu aktivieren.",
"Hey there,\n\nThe administration 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" : "Hallo,\n\ndie Administration hat die servereitige Verschlüsselung aktiviert. Ihre Dateien wurden mit dem Passwort '%s' verschlüsselt.\n\nBitte melden Sie sich auf der Web-Oberfläche an, gehen Sie zu Ihren persönlichen Einstellungen und aktualisieren Sie dort ihr Verschlüsselungspasswort, indem Sie das Passwort in das 'altes Anmelde-Passwort' und in das 'aktuelles Anmelde-Passwort' Feld eingeben.\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
"Cheers!" : "Noch einen schönen Tag!",
diff --git a/apps/encryption/l10n/en_GB.js b/apps/encryption/l10n/en_GB.js
index d9721ddc338..6d4e50a1e95 100644
--- a/apps/encryption/l10n/en_GB.js
+++ b/apps/encryption/l10n/en_GB.js
@@ -32,7 +32,7 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.",
"Default encryption module" : "Default encryption module",
"Default encryption module for server-side encryption" : "Default encryption module for server-side encryption",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption.",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption.",
"Hey there,\n\nThe administration 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" : "Hey there,\n\nThe administration 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",
"The share will expire on %s." : "The share will expire on %s.",
"Cheers!" : "Cheers!",
diff --git a/apps/encryption/l10n/en_GB.json b/apps/encryption/l10n/en_GB.json
index 03fde0cefa6..4b57251925d 100644
--- a/apps/encryption/l10n/en_GB.json
+++ b/apps/encryption/l10n/en_GB.json
@@ -30,7 +30,7 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.",
"Default encryption module" : "Default encryption module",
"Default encryption module for server-side encryption" : "Default encryption module for server-side encryption",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption.",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption.",
"Hey there,\n\nThe administration 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" : "Hey there,\n\nThe administration 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",
"The share will expire on %s." : "The share will expire on %s.",
"Cheers!" : "Cheers!",
diff --git a/apps/encryption/l10n/es.js b/apps/encryption/l10n/es.js
index 73c2a8f58f4..7edb0917fc7 100644
--- a/apps/encryption/l10n/es.js
+++ b/apps/encryption/l10n/es.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede leer este archivo, probablemente se trate de un archivo compartido. Por favor, pida al propietario del archivo que vuelva a compartirlo con usted.",
"Default encryption module" : "Módulo de cifrado por defecto",
"Default encryption module for server-side encryption" : "Módulo de cifrado por defecto para el cifrado en el lado del servidor",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "De manera de usar este módulo de cifrado necesitas activar el cifrado del lado del servido en la configuraciones de administrador. Una vez que esté habilitado este módulo cifrará todos tus archivos de manera transparente. El cifrado está basado en llaves AES-256\nEl módulo no tocará los archivos existentes, solo los archivos nuevos serán cifrados una vez que el cifrado del lado del servidor se habilite. Además, no es posible deshabilitar el cifrado de nuevo y cambiar a un sistema sin cifrado.\nPor favor lea la documentación para que entienda todas las implicaciones antes de habilitar el cifrado del lado del servidor.",
"Hey there,\n\nThe administration 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" : "Hola,\n\nEl administrador habilitó el cifrado de datos del servidor. Tus archivos fueron cifrados con la contraseña \"%s\".\n\nPor favor, inicia sesión en la interfaz web, ve a la sección \"módulo de cifrado básico\" de tu área de ajustes personales y actualiza tu contraseña de cifrado introduciendo esta contraseña en el campo \"contraseña de inicio de sesión antigua\" y su contraseña de inicio de sesión actual.\n\n",
"The share will expire on %s." : "El archivo dejará de ser compartido el %s.",
"Cheers!" : "¡Saludos!",
diff --git a/apps/encryption/l10n/es.json b/apps/encryption/l10n/es.json
index 752cfefd23a..bbdd8fb296a 100644
--- a/apps/encryption/l10n/es.json
+++ b/apps/encryption/l10n/es.json
@@ -30,7 +30,6 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede leer este archivo, probablemente se trate de un archivo compartido. Por favor, pida al propietario del archivo que vuelva a compartirlo con usted.",
"Default encryption module" : "Módulo de cifrado por defecto",
"Default encryption module for server-side encryption" : "Módulo de cifrado por defecto para el cifrado en el lado del servidor",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "De manera de usar este módulo de cifrado necesitas activar el cifrado del lado del servido en la configuraciones de administrador. Una vez que esté habilitado este módulo cifrará todos tus archivos de manera transparente. El cifrado está basado en llaves AES-256\nEl módulo no tocará los archivos existentes, solo los archivos nuevos serán cifrados una vez que el cifrado del lado del servidor se habilite. Además, no es posible deshabilitar el cifrado de nuevo y cambiar a un sistema sin cifrado.\nPor favor lea la documentación para que entienda todas las implicaciones antes de habilitar el cifrado del lado del servidor.",
"Hey there,\n\nThe administration 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" : "Hola,\n\nEl administrador habilitó el cifrado de datos del servidor. Tus archivos fueron cifrados con la contraseña \"%s\".\n\nPor favor, inicia sesión en la interfaz web, ve a la sección \"módulo de cifrado básico\" de tu área de ajustes personales y actualiza tu contraseña de cifrado introduciendo esta contraseña en el campo \"contraseña de inicio de sesión antigua\" y su contraseña de inicio de sesión actual.\n\n",
"The share will expire on %s." : "El archivo dejará de ser compartido el %s.",
"Cheers!" : "¡Saludos!",
diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js
index b5f50509e85..d8ace3d2ec1 100644
--- a/apps/encryption/l10n/fr.js
+++ b/apps/encryption/l10n/fr.js
@@ -32,7 +32,7 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de lire ce fichier, ceci est probablement un fichier partagé. Merci de demander à son propriétaire de repartager le fichier avec vous.",
"Default encryption module" : "Module de chiffrement par défaut",
"Default encryption module for server-side encryption" : "Module de chiffrement par défaut pour le chiffrement côté serveur",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Pour utiliser ce module de chiffrement, vous devez activer le chiffrement côté serveur dans les paramètres d'administration. Une fois activé, ce module chiffrera tous vos fichiers de manière transparente. Le chiffrement est basé sur des clés AES 256 bits.\nLe module ne touchera pas les fichiers existants, seuls les nouveaux fichiers seront chiffrés après activation du chiffrement côté serveur. Une fois le chiffrement côté serveur activé, il est impossible de désactiver le chiffrement et de revenir à un système non chiffré.\nVeuillez lire la documentation pour connaître toutes les implications avant de décider d'activer le chiffrement côté serveur.",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Pour utiliser ce module de chiffrement, vous devez activer le chiffrement côté serveur dans les paramètres d'administration. Une fois activé, ce module chiffrera tous vos fichiers de manière transparente. Le chiffrement est basé sur des clés AES 256 bits.\nLe module ne touchera pas les fichiers existants, seuls les nouveaux fichiers seront chiffrés après activation du chiffrement côté serveur. Une fois le chiffrement côté serveur activé, il est impossible de désactiver le chiffrement et de revenir à un système non chiffré.\nVeuillez lire la documentation pour connaître toutes les implications avant de décider d'activer le chiffrement côté serveur.",
"Hey there,\n\nThe administration 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" : "Bonjour,\n\nL'administration a activé le chiffrement côté serveur. Vos fichiers ont été chiffrés avec le mot de passe \"%s\".\n\nVeuillez vous connecter à l'interface web, vous rendre à la section \"Module de chiffrement de base\" de vos paramètres personnels et mettre à jour votre mot de passe de chiffrement en insérant ce mot de passe dans le champ \"Ancien mot de passe de connexion\" ainsi que votre mot de passe actuel.\n\n",
"The share will expire on %s." : "Le partage expirera le %s.",
"Cheers!" : "À bientôt !",
diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json
index 3a12defa3a9..6e510eb16e7 100644
--- a/apps/encryption/l10n/fr.json
+++ b/apps/encryption/l10n/fr.json
@@ -30,7 +30,7 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de lire ce fichier, ceci est probablement un fichier partagé. Merci de demander à son propriétaire de repartager le fichier avec vous.",
"Default encryption module" : "Module de chiffrement par défaut",
"Default encryption module for server-side encryption" : "Module de chiffrement par défaut pour le chiffrement côté serveur",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Pour utiliser ce module de chiffrement, vous devez activer le chiffrement côté serveur dans les paramètres d'administration. Une fois activé, ce module chiffrera tous vos fichiers de manière transparente. Le chiffrement est basé sur des clés AES 256 bits.\nLe module ne touchera pas les fichiers existants, seuls les nouveaux fichiers seront chiffrés après activation du chiffrement côté serveur. Une fois le chiffrement côté serveur activé, il est impossible de désactiver le chiffrement et de revenir à un système non chiffré.\nVeuillez lire la documentation pour connaître toutes les implications avant de décider d'activer le chiffrement côté serveur.",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Pour utiliser ce module de chiffrement, vous devez activer le chiffrement côté serveur dans les paramètres d'administration. Une fois activé, ce module chiffrera tous vos fichiers de manière transparente. Le chiffrement est basé sur des clés AES 256 bits.\nLe module ne touchera pas les fichiers existants, seuls les nouveaux fichiers seront chiffrés après activation du chiffrement côté serveur. Une fois le chiffrement côté serveur activé, il est impossible de désactiver le chiffrement et de revenir à un système non chiffré.\nVeuillez lire la documentation pour connaître toutes les implications avant de décider d'activer le chiffrement côté serveur.",
"Hey there,\n\nThe administration 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" : "Bonjour,\n\nL'administration a activé le chiffrement côté serveur. Vos fichiers ont été chiffrés avec le mot de passe \"%s\".\n\nVeuillez vous connecter à l'interface web, vous rendre à la section \"Module de chiffrement de base\" de vos paramètres personnels et mettre à jour votre mot de passe de chiffrement en insérant ce mot de passe dans le champ \"Ancien mot de passe de connexion\" ainsi que votre mot de passe actuel.\n\n",
"The share will expire on %s." : "Le partage expirera le %s.",
"Cheers!" : "À bientôt !",
diff --git a/apps/encryption/l10n/hu.js b/apps/encryption/l10n/hu.js
index 76bfc978486..001757cb3c6 100644
--- a/apps/encryption/l10n/hu.js
+++ b/apps/encryption/l10n/hu.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ez a fájl nem olvasható, valószínűleg ez egy megosztott fájl. Kérje meg a fájl tulajdonosát, hogy ossza meg újra Önnel ezt a fájlt.",
"Default encryption module" : "Alapértelmezett titkosítási modul",
"Default encryption module for server-side encryption" : "Alapértelmezett titkosítási modul a kiszolgálóoldali titkosításhoz",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Ahhoz, hogy ezt a titkosítási modult használhassa, be kell kapcsolnia a kiszolgálóoldali titkosítást az adminisztrációs felületen. Engedélyezést követően a modul minden fájlt transzparensen titkosít. A titkosítás AES 256 kulcsokon alapul.\nA modul nem módosítja a meglévő fájlokat, csak az újakat titkosítja, miután bekapcsolta a kiszolgálóoldali titkosítást. Nem lehet kikapcsolni a titkosítást, hogy titkosítatlan rendszerre váltson vissza.\nOlvassa el a dokumentációt, hogy minden következménnyel tisztában legyen, mielőtt úgy dönt, hogy engedélyezi a kiszolgálóoldali titkosítást.",
"Hey there,\n\nThe administration 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" : "Üdvözöljük!\n\nA rendszergazda engedélyezte a kiszolgálóoldali titkosítást. A fájljai a következő jelszóval lettek titkosítva: „%s”.\n\nJelentkezzen be a webes felületen, ugorjon az „Alapvető titkosítási modulhoz” a személyes beállításokban, és frissítse a titkosítási jelszavát úgy, hogy ezt a jelszót adja meg a „Régi titkosítási jelszó” mezőben, majd írja be a jelenlegi bejelentkezési jelszavát is.\n\n",
"The share will expire on %s." : "A megosztás lejár ekkor: %s.",
"Cheers!" : "Üdv!",
diff --git a/apps/encryption/l10n/hu.json b/apps/encryption/l10n/hu.json
index 891980f2c62..53fbb176a33 100644
--- a/apps/encryption/l10n/hu.json
+++ b/apps/encryption/l10n/hu.json
@@ -30,7 +30,6 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ez a fájl nem olvasható, valószínűleg ez egy megosztott fájl. Kérje meg a fájl tulajdonosát, hogy ossza meg újra Önnel ezt a fájlt.",
"Default encryption module" : "Alapértelmezett titkosítási modul",
"Default encryption module for server-side encryption" : "Alapértelmezett titkosítási modul a kiszolgálóoldali titkosításhoz",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Ahhoz, hogy ezt a titkosítási modult használhassa, be kell kapcsolnia a kiszolgálóoldali titkosítást az adminisztrációs felületen. Engedélyezést követően a modul minden fájlt transzparensen titkosít. A titkosítás AES 256 kulcsokon alapul.\nA modul nem módosítja a meglévő fájlokat, csak az újakat titkosítja, miután bekapcsolta a kiszolgálóoldali titkosítást. Nem lehet kikapcsolni a titkosítást, hogy titkosítatlan rendszerre váltson vissza.\nOlvassa el a dokumentációt, hogy minden következménnyel tisztában legyen, mielőtt úgy dönt, hogy engedélyezi a kiszolgálóoldali titkosítást.",
"Hey there,\n\nThe administration 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" : "Üdvözöljük!\n\nA rendszergazda engedélyezte a kiszolgálóoldali titkosítást. A fájljai a következő jelszóval lettek titkosítva: „%s”.\n\nJelentkezzen be a webes felületen, ugorjon az „Alapvető titkosítási modulhoz” a személyes beállításokban, és frissítse a titkosítási jelszavát úgy, hogy ezt a jelszót adja meg a „Régi titkosítási jelszó” mezőben, majd írja be a jelenlegi bejelentkezési jelszavát is.\n\n",
"The share will expire on %s." : "A megosztás lejár ekkor: %s.",
"Cheers!" : "Üdv!",
diff --git a/apps/encryption/l10n/pt_BR.js b/apps/encryption/l10n/pt_BR.js
index 40b921fdd4b..eb4494e3fa3 100644
--- a/apps/encryption/l10n/pt_BR.js
+++ b/apps/encryption/l10n/pt_BR.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível ler este arquivo pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.",
"Default encryption module" : "Módulo de criptografia padrão",
"Default encryption module for server-side encryption" : "Módulo de criptografia padrão para criptografia do lado do servidor",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption.",
"Hey there,\n\nThe administration 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" : "Olá,\n\nA administração habilitou a criptografia do lado do servidor. Seus arquivos foram criptografados com a senha \"%s\".\n\nFaça login na interface da web, vá para a seção \"Módulo de criptografia básico\" de suas configurações pessoais e atualize sua senha de criptografia inserindo essa senha no campo \"Senha de login antiga\" e sua senha de login atual. \n\n",
"The share will expire on %s." : "O compartilhamento irá expirar em %s.",
"Cheers!" : "Saudações!",
diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json
index c229aebd27d..c08bdcd8461 100644
--- a/apps/encryption/l10n/pt_BR.json
+++ b/apps/encryption/l10n/pt_BR.json
@@ -30,7 +30,6 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível ler este arquivo pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.",
"Default encryption module" : "Módulo de criptografia padrão",
"Default encryption module for server-side encryption" : "Módulo de criptografia padrão para criptografia do lado do servidor",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption.",
"Hey there,\n\nThe administration 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" : "Olá,\n\nA administração habilitou a criptografia do lado do servidor. Seus arquivos foram criptografados com a senha \"%s\".\n\nFaça login na interface da web, vá para a seção \"Módulo de criptografia básico\" de suas configurações pessoais e atualize sua senha de criptografia inserindo essa senha no campo \"Senha de login antiga\" e sua senha de login atual. \n\n",
"The share will expire on %s." : "O compartilhamento irá expirar em %s.",
"Cheers!" : "Saudações!",
diff --git a/apps/encryption/l10n/sr.js b/apps/encryption/l10n/sr.js
index 06942a839aa..3122b3e44a0 100644
--- a/apps/encryption/l10n/sr.js
+++ b/apps/encryption/l10n/sr.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Овај фајл не може да се прочита, то је вероватно дељени фајл. Молимо вас да замолите власника да га поново подели са вама.",
"Default encryption module" : "Подразумевани модул за шифровање",
"Default encryption module for server-side encryption" : "Подразумевани модул за шифровање на серверској страни",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Да бисте користили овај модул, морате на серверској страни омогућити шифровање у администраторским поставкама. Једном укључен, овај модул ће шифровати све фајлове транспарентно. Шифровање је базирано на „AES 256“ кључевима.\nМодул неће дирати постојеће фајлове, само ће нови фајлови бити шифровани након укључења шифровања на серверској страни. Такође, шифровање не може да се искључи и да врати се на нешифровани систем.\nПрочитајте документацију да бисте сазнали све импликације пре него што се одлучите да укључите шифровање на серверу.",
"Hey there,\n\nThe administration 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" : "Здраво,\n\nАдминистрација је укључила енкрипцију на страни сервера. Ваши фајлови су шифровани коришћењем лозинке „%s”.\n\nМолимо вас да се пријавите веб интерфејсом, одете на одељак „Модул основне енкрипције” у вашим личним подешавањима и ажурирате лозинку шифрирања уношењем ове лозинке у поље „Стара лозинка за пријаву” и вашу текућу лозинку за пријаву.\n\n",
"The share will expire on %s." : "Дељење истиче %s.",
"Cheers!" : "Здраво!",
diff --git a/apps/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json
index c150a00bd5e..94654ab8a29 100644
--- a/apps/encryption/l10n/sr.json
+++ b/apps/encryption/l10n/sr.json
@@ -30,7 +30,6 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Овај фајл не може да се прочита, то је вероватно дељени фајл. Молимо вас да замолите власника да га поново подели са вама.",
"Default encryption module" : "Подразумевани модул за шифровање",
"Default encryption module for server-side encryption" : "Подразумевани модул за шифровање на серверској страни",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Да бисте користили овај модул, морате на серверској страни омогућити шифровање у администраторским поставкама. Једном укључен, овај модул ће шифровати све фајлове транспарентно. Шифровање је базирано на „AES 256“ кључевима.\nМодул неће дирати постојеће фајлове, само ће нови фајлови бити шифровани након укључења шифровања на серверској страни. Такође, шифровање не може да се искључи и да врати се на нешифровани систем.\nПрочитајте документацију да бисте сазнали све импликације пре него што се одлучите да укључите шифровање на серверу.",
"Hey there,\n\nThe administration 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" : "Здраво,\n\nАдминистрација је укључила енкрипцију на страни сервера. Ваши фајлови су шифровани коришћењем лозинке „%s”.\n\nМолимо вас да се пријавите веб интерфејсом, одете на одељак „Модул основне енкрипције” у вашим личним подешавањима и ажурирате лозинку шифрирања уношењем ове лозинке у поље „Стара лозинка за пријаву” и вашу текућу лозинку за пријаву.\n\n",
"The share will expire on %s." : "Дељење истиче %s.",
"Cheers!" : "Здраво!",
diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js
index 9384163c3d2..c27658f3db7 100644
--- a/apps/encryption/l10n/tr.js
+++ b/apps/encryption/l10n/tr.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya okunamadı ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.",
"Default encryption module" : "Varsayılan şifreleme modülü",
"Default encryption module for server-side encryption" : "Sunucu tarafında şifreleme için varsayılan şifreleme modülü",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Bu şifreleme modülünün kullanılması için sunucu tarafında yönetim bölümünden şifreleme seçeneği etkinleştirilmelidir. Bu modül etkinleştirildikten sonra tüm dosyalarınızı size farkettirmeden şifreler. Şifreleme AES 256 anahtarları ile yapılır. \nModül var olan dosyaları değiştirmez, yalnızca sunucu tarafında şifreleme etkinleştirildikten sonra eklenen yeni dosyalar şifrelenir. Şifreleme etkinleştirildikten sonra devre dışı bırakılamaz ve şifreleme olmayan sisteme geri dönülemez.\nLütfen sunucu tarafı şifrelemeyi etkinleştirmeden önce belgeleri okuyun ve uygulamadan doğacak tüm sonuçlarını öğrenin.",
"Hey there,\n\nThe administration 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" : "Selam,\n\nSistem yöneticisi sunucu tarafında şifrelemeyi etkinleştirdi. Dosyalarınız \"%s\" parolası kullanılarak şifrelendi.\n\nLütfen site arayüzünde oturum açın ve kişisel ayarlarınızdan \"Temel şifreleme modülü\" bölümüne giderek \"Eski oturum açma parolası\" alanına bu parolayı ve geçerli oturum açma parolanızı yazarak şifreleme parolanızı güncelleyin.\n\n",
"The share will expire on %s." : "Bu paylaşımın geçerlilik süresi %s tarihinde dolacak.",
"Cheers!" : "Hoşçakalın!",
diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json
index ed6ed72c484..be9798ae047 100644
--- a/apps/encryption/l10n/tr.json
+++ b/apps/encryption/l10n/tr.json
@@ -30,7 +30,6 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya okunamadı ve büyük olasılıkla paylaşılan bir dosya. Lütfen dosya sahibi ile görüşerek sizinle yeniden paylaşmasını isteyin.",
"Default encryption module" : "Varsayılan şifreleme modülü",
"Default encryption module for server-side encryption" : "Sunucu tarafında şifreleme için varsayılan şifreleme modülü",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Bu şifreleme modülünün kullanılması için sunucu tarafında yönetim bölümünden şifreleme seçeneği etkinleştirilmelidir. Bu modül etkinleştirildikten sonra tüm dosyalarınızı size farkettirmeden şifreler. Şifreleme AES 256 anahtarları ile yapılır. \nModül var olan dosyaları değiştirmez, yalnızca sunucu tarafında şifreleme etkinleştirildikten sonra eklenen yeni dosyalar şifrelenir. Şifreleme etkinleştirildikten sonra devre dışı bırakılamaz ve şifreleme olmayan sisteme geri dönülemez.\nLütfen sunucu tarafı şifrelemeyi etkinleştirmeden önce belgeleri okuyun ve uygulamadan doğacak tüm sonuçlarını öğrenin.",
"Hey there,\n\nThe administration 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" : "Selam,\n\nSistem yöneticisi sunucu tarafında şifrelemeyi etkinleştirdi. Dosyalarınız \"%s\" parolası kullanılarak şifrelendi.\n\nLütfen site arayüzünde oturum açın ve kişisel ayarlarınızdan \"Temel şifreleme modülü\" bölümüne giderek \"Eski oturum açma parolası\" alanına bu parolayı ve geçerli oturum açma parolanızı yazarak şifreleme parolanızı güncelleyin.\n\n",
"The share will expire on %s." : "Bu paylaşımın geçerlilik süresi %s tarihinde dolacak.",
"Cheers!" : "Hoşçakalın!",
diff --git a/apps/encryption/l10n/zh_HK.js b/apps/encryption/l10n/zh_HK.js
index 2089573b3e2..698aae2855c 100644
--- a/apps/encryption/l10n/zh_HK.js
+++ b/apps/encryption/l10n/zh_HK.js
@@ -32,7 +32,7 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法檢視這個檔案,或許這是分享的檔案。請讓檔案所有者與您重新共享檔案。",
"Default encryption module" : "默認加密模組",
"Default encryption module for server-side encryption" : "伺服器端的默認加密模組",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "為了使用此加密模組,您需要啟用伺服器端管理員設置中的加密設定。啟用後,該模組將加密您的所有之後傳輸的檔案。此加密方式使用AES 256密鑰。該模組不會觸及已存在的檔案,只會加密新處理的檔案啟用伺服器端加密後。也不可能再次停用加密,然後切換回未加密的系統。在決定啟用伺服器端加密之前,請閱讀文檔以了解所有含義。",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "您需要在管理員設置中啟用服務器端加密才能使用此加密模塊您需要在管理員設置中啟用服務器端加密。啟用後,此模塊將透明地加密您的所有文件。加密基於 AES 256 密鑰。\n該模塊不會觸及現有文件,啟用伺服器端加密後只會對新檔案進行加密。也不可能再次禁用加密並切換回未加密的系統。\n在您決定啟用伺服器端加密之前,請閱讀文檔以了解所有含義。一旦啟用,此模塊將透明地加密您的所有文件。加密基於 AES 256 密鑰。\n該模塊不會觸及現有文件,啟伺服器端加密後只會對新文件進行加密。也不可能再次禁用加密並切換回未加密的系統。\n在您決定啟用伺服器端加密之前,請閱讀文檔以了解所有含義。",
"Hey there,\n\nThe administration 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" : "嗨,\n\n系管理員啟用了伺服器端的加密功能,您的檔案已使用密碼 \"%s\" 加密。\n\n請使用網頁介面登入,到您個人設定中的「基本加密模組」,並在「舊登入密碼」欄位輸入此密碼與您目前的登入密碼來更新加密密碼。\n",
"The share will expire on %s." : "這個分享將會於 %s 過期。",
"Cheers!" : "太棒了!",
diff --git a/apps/encryption/l10n/zh_HK.json b/apps/encryption/l10n/zh_HK.json
index 841c361e5ff..91202f5d491 100644
--- a/apps/encryption/l10n/zh_HK.json
+++ b/apps/encryption/l10n/zh_HK.json
@@ -30,7 +30,7 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法檢視這個檔案,或許這是分享的檔案。請讓檔案所有者與您重新共享檔案。",
"Default encryption module" : "默認加密模組",
"Default encryption module for server-side encryption" : "伺服器端的默認加密模組",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "為了使用此加密模組,您需要啟用伺服器端管理員設置中的加密設定。啟用後,該模組將加密您的所有之後傳輸的檔案。此加密方式使用AES 256密鑰。該模組不會觸及已存在的檔案,只會加密新處理的檔案啟用伺服器端加密後。也不可能再次停用加密,然後切換回未加密的系統。在決定啟用伺服器端加密之前,請閱讀文檔以了解所有含義。",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "您需要在管理員設置中啟用服務器端加密才能使用此加密模塊您需要在管理員設置中啟用服務器端加密。啟用後,此模塊將透明地加密您的所有文件。加密基於 AES 256 密鑰。\n該模塊不會觸及現有文件,啟用伺服器端加密後只會對新檔案進行加密。也不可能再次禁用加密並切換回未加密的系統。\n在您決定啟用伺服器端加密之前,請閱讀文檔以了解所有含義。一旦啟用,此模塊將透明地加密您的所有文件。加密基於 AES 256 密鑰。\n該模塊不會觸及現有文件,啟伺服器端加密後只會對新文件進行加密。也不可能再次禁用加密並切換回未加密的系統。\n在您決定啟用伺服器端加密之前,請閱讀文檔以了解所有含義。",
"Hey there,\n\nThe administration 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" : "嗨,\n\n系管理員啟用了伺服器端的加密功能,您的檔案已使用密碼 \"%s\" 加密。\n\n請使用網頁介面登入,到您個人設定中的「基本加密模組」,並在「舊登入密碼」欄位輸入此密碼與您目前的登入密碼來更新加密密碼。\n",
"The share will expire on %s." : "這個分享將會於 %s 過期。",
"Cheers!" : "太棒了!",
diff --git a/apps/encryption/l10n/zh_TW.js b/apps/encryption/l10n/zh_TW.js
index 4f2bf0f6803..6f829ba8c7c 100644
--- a/apps/encryption/l10n/zh_TW.js
+++ b/apps/encryption/l10n/zh_TW.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法讀取這個檔案,也許這是分享的檔案。請要求檔案所有人重新分享檔案給您。",
"Default encryption module" : "預設加密模組",
"Default encryption module for server-side encryption" : "伺服器端加密的預設加密模組",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "為了使用此加密模組,您必須在管理員設定中啟用伺服器端加密。啟用後,此模組將會加密您之後傳輸的所有檔案。此加密是以 AES 256 金鑰為基礎。\n此模組將不會處理既有的檔案,僅會加密在伺服器端加密啟用後的新檔案。同時也無法停用加密並切換回未加密的系統。\n在您決定啟用伺服器端加密前,請閱讀文件得知其實際作用與影響。",
"Hey there,\n\nThe administration 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" : "嗨,請看這裡,\n\n管理員啟用了伺服器端加密的功能,您的檔案將會使用密碼「%s」加密。\n\n請使用網頁介面登入,到您個人設定中的「基本加密模組」,並在「舊登入密碼」欄位輸入此密碼與您目前的登入密碼來更新加密密碼。\n\n",
"The share will expire on %s." : "這個分享將會於 %s 過期。",
"Cheers!" : "太棒了!",
diff --git a/apps/encryption/l10n/zh_TW.json b/apps/encryption/l10n/zh_TW.json
index 55de317b892..1ec9a8ee925 100644
--- a/apps/encryption/l10n/zh_TW.json
+++ b/apps/encryption/l10n/zh_TW.json
@@ -30,7 +30,6 @@
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法讀取這個檔案,也許這是分享的檔案。請要求檔案所有人重新分享檔案給您。",
"Default encryption module" : "預設加密模組",
"Default encryption module for server-side encryption" : "伺服器端加密的預設加密模組",
- "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to a unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "為了使用此加密模組,您必須在管理員設定中啟用伺服器端加密。啟用後,此模組將會加密您之後傳輸的所有檔案。此加密是以 AES 256 金鑰為基礎。\n此模組將不會處理既有的檔案,僅會加密在伺服器端加密啟用後的新檔案。同時也無法停用加密並切換回未加密的系統。\n在您決定啟用伺服器端加密前,請閱讀文件得知其實際作用與影響。",
"Hey there,\n\nThe administration 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" : "嗨,請看這裡,\n\n管理員啟用了伺服器端加密的功能,您的檔案將會使用密碼「%s」加密。\n\n請使用網頁介面登入,到您個人設定中的「基本加密模組」,並在「舊登入密碼」欄位輸入此密碼與您目前的登入密碼來更新加密密碼。\n\n",
"The share will expire on %s." : "這個分享將會於 %s 過期。",
"Cheers!" : "太棒了!",
diff --git a/apps/encryption/tests/EncryptedStorageTest.php b/apps/encryption/tests/EncryptedStorageTest.php
new file mode 100644
index 00000000000..3219707d48b
--- /dev/null
+++ b/apps/encryption/tests/EncryptedStorageTest.php
@@ -0,0 +1,85 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2023 Robin Appelman <robin@icewind.nl>
+ *
+ * @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\encryption\tests;
+
+use OC\Files\Storage\Temporary;
+use OC\Files\Storage\Wrapper\Encryption;
+use OC\Files\View;
+use OCP\Files\Mount\IMountManager;
+use OCP\Files\Storage\IDisableEncryptionStorage;
+use Test\TestCase;
+use Test\Traits\EncryptionTrait;
+use Test\Traits\MountProviderTrait;
+use Test\Traits\UserTrait;
+
+class TemporaryNoEncrypted extends Temporary implements IDisableEncryptionStorage {
+
+}
+
+/**
+ * @group DB
+ */
+class EncryptedStorageTest extends TestCase {
+ use MountProviderTrait;
+ use EncryptionTrait;
+ use UserTrait;
+
+ public function testMoveFromEncrypted() {
+ $this->createUser("test1", "test2");
+ $this->setupForUser("test1", 'test2');
+
+ $unwrapped = new Temporary();
+
+ $this->registerMount("test1", new TemporaryNoEncrypted(), "/test1/files/unenc");
+ $this->registerMount("test1", $unwrapped, "/test1/files/enc");
+
+ $this->loginWithEncryption("test1");
+
+ $view = new View("/test1/files");
+
+ /** @var IMountManager $mountManager */
+ $mountManager = \OC::$server->get(IMountManager::class);
+
+ $encryptedMount = $mountManager->find("/test1/files/enc");
+ $unencryptedMount = $mountManager->find("/test1/files/unenc");
+ $encryptedStorage = $encryptedMount->getStorage();
+ $unencryptedStorage = $unencryptedMount->getStorage();
+ $encryptedCache = $encryptedStorage->getCache();
+ $unencryptedCache = $unencryptedStorage->getCache();
+
+ $this->assertTrue($encryptedStorage->instanceOfStorage(Encryption::class));
+ $this->assertFalse($unencryptedStorage->instanceOfStorage(Encryption::class));
+
+ $encryptedStorage->file_put_contents("foo.txt", "bar");
+ $this->assertEquals("bar", $encryptedStorage->file_get_contents("foo.txt"));
+ $this->assertStringStartsWith("HBEGIN:oc_encryption_module:", $unwrapped->file_get_contents("foo.txt"));
+
+ $this->assertTrue($encryptedCache->get("foo.txt")->isEncrypted());
+
+ $view->rename("enc/foo.txt", "unenc/foo.txt");
+
+ $this->assertEquals("bar", $unencryptedStorage->file_get_contents("foo.txt"));
+ $this->assertFalse($unencryptedCache->get("foo.txt")->isEncrypted());
+ }
+}
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 9b0847325fc..dcbbdb3d9de 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -244,7 +244,7 @@ OC.L10N.register(
"Error updating the share" : "Erreur lors de la mise à jour du partage",
"File \"{path}\" has been unshared" : "Le partage du fichier \"{path}\" a été retiré",
"Folder \"{path}\" has been unshared" : "Le partage du dossier \"{path}\" a été retiré",
- "Share {propertyName} saved" : "Le partage {nom de la propriété} a été enregistré",
+ "Share {propertyName} saved" : "Le partage {propertyName} a été enregistré",
"Shared" : "Partagé",
"Share" : "Partager",
"Shared with" : "Partagé avec",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 43f0452401d..cecf40a7296 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -242,7 +242,7 @@
"Error updating the share" : "Erreur lors de la mise à jour du partage",
"File \"{path}\" has been unshared" : "Le partage du fichier \"{path}\" a été retiré",
"Folder \"{path}\" has been unshared" : "Le partage du dossier \"{path}\" a été retiré",
- "Share {propertyName} saved" : "Le partage {nom de la propriété} a été enregistré",
+ "Share {propertyName} saved" : "Le partage {propertyName} a été enregistré",
"Shared" : "Partagé",
"Share" : "Partager",
"Shared with" : "Partagé avec",
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index 40f35136b84..bc97e32faa4 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -631,6 +631,7 @@ class UsersController extends AUserData {
* @NoAdminRequired
* @NoSubAdminRequired
* @PasswordConfirmationRequired
+ * @UserRateThrottle(limit=5, period=60)
*
* @throws OCSException
*/
@@ -723,6 +724,7 @@ class UsersController extends AUserData {
* @NoAdminRequired
* @NoSubAdminRequired
* @PasswordConfirmationRequired
+ * @UserRateThrottle(limit=50, period=600)
*
* edit users
*
diff --git a/apps/settings/l10n/ar.js b/apps/settings/l10n/ar.js
index e4694b8097b..d0a4995c95a 100644
--- a/apps/settings/l10n/ar.js
+++ b/apps/settings/l10n/ar.js
@@ -185,6 +185,7 @@ OC.L10N.register(
"App bundles" : "حُزَم التطبيقات",
"Hide" : "إخفاء",
"Never" : "أبدا",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "يوجد طلبات أقصى من الحد المسموح به في الشبكة. أعد المحاولة أو اتصل بمسؤول النظام.",
"Documentation" : "الدليل",
"Forum" : "منتدى",
"Login" : "تسجيل الدخول",
diff --git a/apps/settings/l10n/ar.json b/apps/settings/l10n/ar.json
index b8b0592f814..a1f7687be03 100644
--- a/apps/settings/l10n/ar.json
+++ b/apps/settings/l10n/ar.json
@@ -183,6 +183,7 @@
"App bundles" : "حُزَم التطبيقات",
"Hide" : "إخفاء",
"Never" : "أبدا",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "يوجد طلبات أقصى من الحد المسموح به في الشبكة. أعد المحاولة أو اتصل بمسؤول النظام.",
"Documentation" : "الدليل",
"Forum" : "منتدى",
"Login" : "تسجيل الدخول",
diff --git a/apps/settings/l10n/bg.js b/apps/settings/l10n/bg.js
index 58fadf52ed9..d36a599cb17 100644
--- a/apps/settings/l10n/bg.js
+++ b/apps/settings/l10n/bg.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Възникна грешка по време на заявката. Не може да се продължи.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Приложението е активирано, но трябва да бъде актуализирано. Ще бъдете пренасочени към страницата за актуализация след 5 секунди.",
"Error: This app cannot be enabled because it makes the server unstable" : "Грешка: Това приложение не може да бъде активирано, защото прави сървъра нестабилен",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Имаше твърде много заявки от вашата мрежа. Опитайте отново по-късно или се свържете с вашия администратор, ако това е грешка.",
"Documentation" : "Документация",
"Forum" : "Форум",
"Login" : "Вписване",
diff --git a/apps/settings/l10n/bg.json b/apps/settings/l10n/bg.json
index d7951912aeb..7cd22e6ab5a 100644
--- a/apps/settings/l10n/bg.json
+++ b/apps/settings/l10n/bg.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Възникна грешка по време на заявката. Не може да се продължи.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Приложението е активирано, но трябва да бъде актуализирано. Ще бъдете пренасочени към страницата за актуализация след 5 секунди.",
"Error: This app cannot be enabled because it makes the server unstable" : "Грешка: Това приложение не може да бъде активирано, защото прави сървъра нестабилен",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Имаше твърде много заявки от вашата мрежа. Опитайте отново по-късно или се свържете с вашия администратор, ако това е грешка.",
"Documentation" : "Документация",
"Forum" : "Форум",
"Login" : "Вписване",
diff --git a/apps/settings/l10n/br.js b/apps/settings/l10n/br.js
index b9ed3564331..69f40861552 100644
--- a/apps/settings/l10n/br.js
+++ b/apps/settings/l10n/br.js
@@ -301,6 +301,7 @@ OC.L10N.register(
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "N'eo ket ar meziant keverlec'h gant stumm Nextcloud. Ma kendalc'hit e o posupl deoc'h staliañ ar meziant. Taolit evez, ne labouro ket ar meziant evel ma zlefe.",
"Never" : "James",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aotreet eo bet ar meziant mes ezomm e deus bezhan adnevesaet. Kaset a voc'h d'ar bajenn adneveziñ a benn 5 eilenn.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Re a goulennoù a zo bet eus ar rouedat. Klaskit en dro diwezhatoc'h pe galvit ho merour m'az eus ur fazi.",
"Documentation" : "Diellvadur",
"Forum" : "Forum",
"Login" : "Anv arveriad",
diff --git a/apps/settings/l10n/br.json b/apps/settings/l10n/br.json
index 8e972303f67..866e999e255 100644
--- a/apps/settings/l10n/br.json
+++ b/apps/settings/l10n/br.json
@@ -299,6 +299,7 @@
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "N'eo ket ar meziant keverlec'h gant stumm Nextcloud. Ma kendalc'hit e o posupl deoc'h staliañ ar meziant. Taolit evez, ne labouro ket ar meziant evel ma zlefe.",
"Never" : "James",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aotreet eo bet ar meziant mes ezomm e deus bezhan adnevesaet. Kaset a voc'h d'ar bajenn adneveziñ a benn 5 eilenn.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Re a goulennoù a zo bet eus ar rouedat. Klaskit en dro diwezhatoc'h pe galvit ho merour m'az eus ur fazi.",
"Documentation" : "Diellvadur",
"Forum" : "Forum",
"Login" : "Anv arveriad",
diff --git a/apps/settings/l10n/ca.js b/apps/settings/l10n/ca.js
index b0f8990d0f4..7e0493f250a 100644
--- a/apps/settings/l10n/ca.js
+++ b/apps/settings/l10n/ca.js
@@ -433,6 +433,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "S'ha produït un error durant la sol·licitud. No es pot continuar.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "L'aplicació s'ha habilitat però ha de ser actualitzada. Sereu redirigits a la pàgina d’actualització d'aquí 5 segons.",
"Error: This app cannot be enabled because it makes the server unstable" : "Error: aquesta aplicació no es pot habilitar perquè fa que el servidor sigui inestable",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hi havia massa sol·licituds de la seva xarxa. Reintentar més tard o contactar amb l'administrador si això és un error.",
"Documentation" : "Documentació",
"Forum" : "Fòrum",
"Login" : "Inici de sessió",
diff --git a/apps/settings/l10n/ca.json b/apps/settings/l10n/ca.json
index 0af7a8ebc91..fa8debac38d 100644
--- a/apps/settings/l10n/ca.json
+++ b/apps/settings/l10n/ca.json
@@ -431,6 +431,7 @@
"An error occurred during the request. Unable to proceed." : "S'ha produït un error durant la sol·licitud. No es pot continuar.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "L'aplicació s'ha habilitat però ha de ser actualitzada. Sereu redirigits a la pàgina d’actualització d'aquí 5 segons.",
"Error: This app cannot be enabled because it makes the server unstable" : "Error: aquesta aplicació no es pot habilitar perquè fa que el servidor sigui inestable",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hi havia massa sol·licituds de la seva xarxa. Reintentar més tard o contactar amb l'administrador si això és un error.",
"Documentation" : "Documentació",
"Forum" : "Fòrum",
"Login" : "Inici de sessió",
diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js
index 17ded880ae4..d14fb3b4653 100644
--- a/apps/settings/l10n/cs.js
+++ b/apps/settings/l10n/cs.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Během požadavku došlo k chybě. Nelze pokračovat.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikace byla zapnuta ale je třeba ji ještě aktualizovat. Za 5 sekund budete přesměrování na stránku pro aktualizaci.",
"Error: This app cannot be enabled because it makes the server unstable" : "Chyba: tuto aplikaci nelze zapnout, protože způsobuje nestabilitu serveru",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Z vaší sítě bylo příliš mnoho požadavků. Zkuste to později nebo (pokud je toto chyba) se obraťte na svého správce.",
"Documentation" : "Dokumentace",
"Forum" : "Diskuzní fórum",
"Login" : "Přihlásit",
diff --git a/apps/settings/l10n/cs.json b/apps/settings/l10n/cs.json
index 9cf5efa16fc..4760c3f2323 100644
--- a/apps/settings/l10n/cs.json
+++ b/apps/settings/l10n/cs.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Během požadavku došlo k chybě. Nelze pokračovat.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikace byla zapnuta ale je třeba ji ještě aktualizovat. Za 5 sekund budete přesměrování na stránku pro aktualizaci.",
"Error: This app cannot be enabled because it makes the server unstable" : "Chyba: tuto aplikaci nelze zapnout, protože způsobuje nestabilitu serveru",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Z vaší sítě bylo příliš mnoho požadavků. Zkuste to později nebo (pokud je toto chyba) se obraťte na svého správce.",
"Documentation" : "Dokumentace",
"Forum" : "Diskuzní fórum",
"Login" : "Přihlásit",
diff --git a/apps/settings/l10n/da.js b/apps/settings/l10n/da.js
index 91b96845c0f..50a6e72b02f 100644
--- a/apps/settings/l10n/da.js
+++ b/apps/settings/l10n/da.js
@@ -380,6 +380,7 @@ OC.L10N.register(
"Never" : "Aldrig",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Appen er blevet aktiveret, men skal opdateres. Du vil blive omdirigeret til opdateringssiden om 5 sekunder.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fejl: Denne app kan ikke aktiveres, fordi den gør serveren ustabil",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Der har været for mange forespørgsmåler fra dit netværk. Forsøg igen senere eller kontakt din administrator hvis dette er en fejl.",
"Documentation" : "Dokumentation",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/da.json b/apps/settings/l10n/da.json
index 9e70c4dbd68..5309044f92c 100644
--- a/apps/settings/l10n/da.json
+++ b/apps/settings/l10n/da.json
@@ -378,6 +378,7 @@
"Never" : "Aldrig",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Appen er blevet aktiveret, men skal opdateres. Du vil blive omdirigeret til opdateringssiden om 5 sekunder.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fejl: Denne app kan ikke aktiveres, fordi den gør serveren ustabil",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Der har været for mange forespørgsmåler fra dit netværk. Forsøg igen senere eller kontakt din administrator hvis dette er en fejl.",
"Documentation" : "Dokumentation",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js
index df881a1764c..a59207fc529 100644
--- a/apps/settings/l10n/de.js
+++ b/apps/settings/l10n/de.js
@@ -434,6 +434,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Die App wurde aktiviert, muss aber aktualisiert werden. Du wirst in 5 Sekunden zur Aktualisierungsseite weitergeleitet.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zu viele Anfragen aus deinem Netzwerk. Versuche es später erneut oder wende dich an deinen Administrator, wenn dies ein Fehler sein sollte.",
"Documentation" : "Dokumentation",
"Forum" : "Forum",
"Login" : "Anmelden",
diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json
index ff257a6897b..b2744a962f5 100644
--- a/apps/settings/l10n/de.json
+++ b/apps/settings/l10n/de.json
@@ -432,6 +432,7 @@
"An error occurred during the request. Unable to proceed." : "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Die App wurde aktiviert, muss aber aktualisiert werden. Du wirst in 5 Sekunden zur Aktualisierungsseite weitergeleitet.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zu viele Anfragen aus deinem Netzwerk. Versuche es später erneut oder wende dich an deinen Administrator, wenn dies ein Fehler sein sollte.",
"Documentation" : "Dokumentation",
"Forum" : "Forum",
"Login" : "Anmelden",
diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js
index dc26a1c611e..4a25b6a204a 100644
--- a/apps/settings/l10n/de_DE.js
+++ b/apps/settings/l10n/de_DE.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Die App wurde aktiviert, muss aber aktualisiert werden. Sie werden in 5 Sekunden zur Aktualisierungsseite weitergeleitet.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zu viele Anfragen aus Ihrem Netzwerk. Versuchen Sie es später erneut oder wenden Sie sich an Ihre Administration, wenn dies ein Fehler sein sollte.",
"Documentation" : "Dokumentation",
"Forum" : "Forum",
"Login" : "Anmelden",
diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json
index ac2de6e244b..bbd01510edc 100644
--- a/apps/settings/l10n/de_DE.json
+++ b/apps/settings/l10n/de_DE.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Die App wurde aktiviert, muss aber aktualisiert werden. Sie werden in 5 Sekunden zur Aktualisierungsseite weitergeleitet.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zu viele Anfragen aus Ihrem Netzwerk. Versuchen Sie es später erneut oder wenden Sie sich an Ihre Administration, wenn dies ein Fehler sein sollte.",
"Documentation" : "Dokumentation",
"Forum" : "Forum",
"Login" : "Anmelden",
diff --git a/apps/settings/l10n/el.js b/apps/settings/l10n/el.js
index 645e59a86fc..5b5250d3eae 100644
--- a/apps/settings/l10n/el.js
+++ b/apps/settings/l10n/el.js
@@ -398,6 +398,7 @@ OC.L10N.register(
"Never" : "Ποτέ",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Η εφαρμογή έχει ενεργοποιηθεί αλλά χρειάζεται ενημέρωση. Θα μεταφερθείτε στη σελίδα ενημέρωσης σε 5 δευτερόλεπτα.",
"Error: This app cannot be enabled because it makes the server unstable" : "Σφάλμα: Αυτή η εφαρμογή δεν μπορεί να ενεργοποιηθεί γιατί θα καταστήσει ασταθή τον διακομιστή.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Υπήρχαν πάρα πολλά αιτήματα από το δίκτυό σας. Δοκιμάστε ξανά αργότερα ή επικοινωνήστε με τον διαχειριστή σας εάν πρόκειται για σφάλμα.",
"Documentation" : "Τεκμηρίωση",
"Forum" : "Φόρουμ",
"Login" : "Σύνδεση",
diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json
index 3cd924e7db8..ac150eaa2e9 100644
--- a/apps/settings/l10n/el.json
+++ b/apps/settings/l10n/el.json
@@ -396,6 +396,7 @@
"Never" : "Ποτέ",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Η εφαρμογή έχει ενεργοποιηθεί αλλά χρειάζεται ενημέρωση. Θα μεταφερθείτε στη σελίδα ενημέρωσης σε 5 δευτερόλεπτα.",
"Error: This app cannot be enabled because it makes the server unstable" : "Σφάλμα: Αυτή η εφαρμογή δεν μπορεί να ενεργοποιηθεί γιατί θα καταστήσει ασταθή τον διακομιστή.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Υπήρχαν πάρα πολλά αιτήματα από το δίκτυό σας. Δοκιμάστε ξανά αργότερα ή επικοινωνήστε με τον διαχειριστή σας εάν πρόκειται για σφάλμα.",
"Documentation" : "Τεκμηρίωση",
"Forum" : "Φόρουμ",
"Login" : "Σύνδεση",
diff --git a/apps/settings/l10n/en_GB.js b/apps/settings/l10n/en_GB.js
index 940c5d6c77f..c44d5b78ca2 100644
--- a/apps/settings/l10n/en_GB.js
+++ b/apps/settings/l10n/en_GB.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "An error occurred during the request. Unable to proceed.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.",
"Error: This app cannot be enabled because it makes the server unstable" : "Error: This app cannot be enabled because it makes the server unstable",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "There were too many requests from your network. Retry later or contact your administrator if this is an error.",
"Documentation" : "Documentation",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/en_GB.json b/apps/settings/l10n/en_GB.json
index f453442abee..02e532e410b 100644
--- a/apps/settings/l10n/en_GB.json
+++ b/apps/settings/l10n/en_GB.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "An error occurred during the request. Unable to proceed.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.",
"Error: This app cannot be enabled because it makes the server unstable" : "Error: This app cannot be enabled because it makes the server unstable",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "There were too many requests from your network. Retry later or contact your administrator if this is an error.",
"Documentation" : "Documentation",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/es.js b/apps/settings/l10n/es.js
index 9de3e189b1c..7ddb5f67063 100644
--- a/apps/settings/l10n/es.js
+++ b/apps/settings/l10n/es.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Ha ocurrido un error durante la solicitud. No se puede continuar.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La app ha sido activada pero tiene que actualizarse. Serás redirigido a la página de actualización en 5 segundos.",
"Error: This app cannot be enabled because it makes the server unstable" : "Error: Esta app no se puede activar porque hace inestable al servidor",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hubo demasiadas peticiones desde su red. Vuelva a intentarlo más tarde o póngase en contacto con su administrador si se trata de un error.",
"Documentation" : "Documentación",
"Forum" : "Foro",
"Login" : "Iniciar sesión",
diff --git a/apps/settings/l10n/es.json b/apps/settings/l10n/es.json
index 5ce4235a21d..ed9c9c09d85 100644
--- a/apps/settings/l10n/es.json
+++ b/apps/settings/l10n/es.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Ha ocurrido un error durante la solicitud. No se puede continuar.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La app ha sido activada pero tiene que actualizarse. Serás redirigido a la página de actualización en 5 segundos.",
"Error: This app cannot be enabled because it makes the server unstable" : "Error: Esta app no se puede activar porque hace inestable al servidor",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Hubo demasiadas peticiones desde su red. Vuelva a intentarlo más tarde o póngase en contacto con su administrador si se trata de un error.",
"Documentation" : "Documentación",
"Forum" : "Foro",
"Login" : "Iniciar sesión",
diff --git a/apps/settings/l10n/eu.js b/apps/settings/l10n/eu.js
index 11506cfb1e6..adce62f50e2 100644
--- a/apps/settings/l10n/eu.js
+++ b/apps/settings/l10n/eu.js
@@ -432,6 +432,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Errorea gertatu da eskaeran. Ezin da jarraitu.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikazioa gaitu da baina eguneratu behar da. Eguneratze orrira joango zara 5 segundotan.",
"Error: This app cannot be enabled because it makes the server unstable" : "Errorea: aplikazio hau ezin da gaitu zerbitzaria ezegonkorra izatea eragiten duelako",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Eskaera gehiegi zeuden zure saretik. Saiatu beranduago edo kontaktatu zure administrailearekin hau errorea bada.",
"Documentation" : "Dokumentazioa",
"Forum" : "Foroa",
"Login" : "Saio hasiera",
diff --git a/apps/settings/l10n/eu.json b/apps/settings/l10n/eu.json
index 2dd0a04b2f7..d62be039198 100644
--- a/apps/settings/l10n/eu.json
+++ b/apps/settings/l10n/eu.json
@@ -430,6 +430,7 @@
"An error occurred during the request. Unable to proceed." : "Errorea gertatu da eskaeran. Ezin da jarraitu.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikazioa gaitu da baina eguneratu behar da. Eguneratze orrira joango zara 5 segundotan.",
"Error: This app cannot be enabled because it makes the server unstable" : "Errorea: aplikazio hau ezin da gaitu zerbitzaria ezegonkorra izatea eragiten duelako",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Eskaera gehiegi zeuden zure saretik. Saiatu beranduago edo kontaktatu zure administrailearekin hau errorea bada.",
"Documentation" : "Dokumentazioa",
"Forum" : "Foroa",
"Login" : "Saio hasiera",
diff --git a/apps/settings/l10n/fi.js b/apps/settings/l10n/fi.js
index 2374efb6eb3..1b5db478fd8 100644
--- a/apps/settings/l10n/fi.js
+++ b/apps/settings/l10n/fi.js
@@ -382,6 +382,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Pyynnön aikana tapahtui virhe. Jatkaminen ei onnistu.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Sovellus on käytössä, mutta se tulee päivittää. Sinut ohjataan sovelluksen päivityssivulle viiden sekunnin kuluttua.",
"Error: This app cannot be enabled because it makes the server unstable" : "Virhe: Sovellusta ei voida ottaa käyttöön, koska se aiheuttaa palvelimen epävakauden",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Verkostasi tehtiin liian monta pyyntöä. Yritä myöhemmin uudelleen tai ole yhteydessä ylläpitäjään, jos tämä on mielestäsi virhe.",
"Documentation" : "Dokumentaatio",
"Forum" : "Keskustelupalsta",
"Login" : "Kirjaudu",
diff --git a/apps/settings/l10n/fi.json b/apps/settings/l10n/fi.json
index d29551117b2..08b44efb3dd 100644
--- a/apps/settings/l10n/fi.json
+++ b/apps/settings/l10n/fi.json
@@ -380,6 +380,7 @@
"An error occurred during the request. Unable to proceed." : "Pyynnön aikana tapahtui virhe. Jatkaminen ei onnistu.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Sovellus on käytössä, mutta se tulee päivittää. Sinut ohjataan sovelluksen päivityssivulle viiden sekunnin kuluttua.",
"Error: This app cannot be enabled because it makes the server unstable" : "Virhe: Sovellusta ei voida ottaa käyttöön, koska se aiheuttaa palvelimen epävakauden",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Verkostasi tehtiin liian monta pyyntöä. Yritä myöhemmin uudelleen tai ole yhteydessä ylläpitäjään, jos tämä on mielestäsi virhe.",
"Documentation" : "Dokumentaatio",
"Forum" : "Keskustelupalsta",
"Login" : "Kirjaudu",
diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js
index 267c5d22e46..c099bf1dc00 100644
--- a/apps/settings/l10n/fr.js
+++ b/apps/settings/l10n/fr.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Une erreur s'est produite pendant la demande. Impossible de poursuivre.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "L'application a été activée mais doit être mise à jour. Vous allez être redirigé vers la page des mises à jour dans 5 secondes.",
"Error: This app cannot be enabled because it makes the server unstable" : "Erreur : cette application ne peut être activée car elle rend le serveur instable",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Il y a trop de requêtes depuis votre réseau. Réessayez plus tard ou contactez votre administrateur s'il s'agit d'une erreur.",
"Documentation" : "Documentation",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json
index 486b3f395fc..2bd4c697557 100644
--- a/apps/settings/l10n/fr.json
+++ b/apps/settings/l10n/fr.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Une erreur s'est produite pendant la demande. Impossible de poursuivre.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "L'application a été activée mais doit être mise à jour. Vous allez être redirigé vers la page des mises à jour dans 5 secondes.",
"Error: This app cannot be enabled because it makes the server unstable" : "Erreur : cette application ne peut être activée car elle rend le serveur instable",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Il y a trop de requêtes depuis votre réseau. Réessayez plus tard ou contactez votre administrateur s'il s'agit d'une erreur.",
"Documentation" : "Documentation",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/gl.js b/apps/settings/l10n/gl.js
index a4978ffb186..a0d1e38490f 100644
--- a/apps/settings/l10n/gl.js
+++ b/apps/settings/l10n/gl.js
@@ -433,6 +433,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Produciuse un erro durante a solicitude. Non se pode continuar.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "A aplicación foi activada pero necesita ser actualizada. Vai ser redirixido cara a páxina de actualizarións en 5 segundos.",
"Error: This app cannot be enabled because it makes the server unstable" : "Erro: esta aplicación non se pode activar porque fai que o servidor sexa inestable",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houbo demasiadas solicitudes da súa rede. Volva tentalo máis adiante ou póñase en contacto co seu administrador se se trata dun erro.",
"Documentation" : "Documentación",
"Forum" : "Foro",
"Login" : "Acceso",
diff --git a/apps/settings/l10n/gl.json b/apps/settings/l10n/gl.json
index 5c3dee19014..45515c8177e 100644
--- a/apps/settings/l10n/gl.json
+++ b/apps/settings/l10n/gl.json
@@ -431,6 +431,7 @@
"An error occurred during the request. Unable to proceed." : "Produciuse un erro durante a solicitude. Non se pode continuar.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "A aplicación foi activada pero necesita ser actualizada. Vai ser redirixido cara a páxina de actualizarións en 5 segundos.",
"Error: This app cannot be enabled because it makes the server unstable" : "Erro: esta aplicación non se pode activar porque fai que o servidor sexa inestable",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houbo demasiadas solicitudes da súa rede. Volva tentalo máis adiante ou póñase en contacto co seu administrador se se trata dun erro.",
"Documentation" : "Documentación",
"Forum" : "Foro",
"Login" : "Acceso",
diff --git a/apps/settings/l10n/he.js b/apps/settings/l10n/he.js
index 98b4ec174ea..87a37b35060 100644
--- a/apps/settings/l10n/he.js
+++ b/apps/settings/l10n/he.js
@@ -308,6 +308,7 @@ OC.L10N.register(
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "היישומון הזה לא מסומן כנתמך בגרסת ה־Nextcloud. עדיין יתאפשר לך להמשיך ולהתקין את היישומון. נא לשים לב שיכול להיות שהיישומון לא יעבוד כצפוי.",
"Never" : "מעולם לא",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "היישומון הופעל אך יש לעדכן אותו. ההפניה לעמוד העדכון תחל בעוד 5 שניות.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "היו יותר מדי בקשות מהרשת שלך. נסה שוב מאוחר יותר, או צור קשר עם מנהל המערכת שלך אם זו שגיאה.",
"Documentation" : "תיעוד",
"Forum" : "פורום",
"Login" : "התחברות",
diff --git a/apps/settings/l10n/he.json b/apps/settings/l10n/he.json
index 1d39fcbe970..df13d7b6baa 100644
--- a/apps/settings/l10n/he.json
+++ b/apps/settings/l10n/he.json
@@ -306,6 +306,7 @@
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "היישומון הזה לא מסומן כנתמך בגרסת ה־Nextcloud. עדיין יתאפשר לך להמשיך ולהתקין את היישומון. נא לשים לב שיכול להיות שהיישומון לא יעבוד כצפוי.",
"Never" : "מעולם לא",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "היישומון הופעל אך יש לעדכן אותו. ההפניה לעמוד העדכון תחל בעוד 5 שניות.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "היו יותר מדי בקשות מהרשת שלך. נסה שוב מאוחר יותר, או צור קשר עם מנהל המערכת שלך אם זו שגיאה.",
"Documentation" : "תיעוד",
"Forum" : "פורום",
"Login" : "התחברות",
diff --git a/apps/settings/l10n/hr.js b/apps/settings/l10n/hr.js
index 0e0dfe68521..10bed018864 100644
--- a/apps/settings/l10n/hr.js
+++ b/apps/settings/l10n/hr.js
@@ -359,6 +359,7 @@ OC.L10N.register(
"Never" : "Nikad",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacija je omogućena, ali je treba ažurirati. Za 5 sekundi bit ćete preusmjereni na stranicu za ažuriranje.",
"Error: This app cannot be enabled because it makes the server unstable" : "Pogreška: ova aplikacija ne može biti omogućena jer čini poslužitelj nestabilnim",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zaprimljeno je previše zahtjeva iz vaše mreže. Pokušajte kasnije ili se obratite administratoru ako se radi o pogrešci.",
"Documentation" : "Dokumentacija",
"Forum" : "Forum",
"Login" : "Prijava",
diff --git a/apps/settings/l10n/hr.json b/apps/settings/l10n/hr.json
index ab315adb8fe..0f638be3037 100644
--- a/apps/settings/l10n/hr.json
+++ b/apps/settings/l10n/hr.json
@@ -357,6 +357,7 @@
"Never" : "Nikad",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacija je omogućena, ali je treba ažurirati. Za 5 sekundi bit ćete preusmjereni na stranicu za ažuriranje.",
"Error: This app cannot be enabled because it makes the server unstable" : "Pogreška: ova aplikacija ne može biti omogućena jer čini poslužitelj nestabilnim",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zaprimljeno je previše zahtjeva iz vaše mreže. Pokušajte kasnije ili se obratite administratoru ako se radi o pogrešci.",
"Documentation" : "Dokumentacija",
"Forum" : "Forum",
"Login" : "Prijava",
diff --git a/apps/settings/l10n/hu.js b/apps/settings/l10n/hu.js
index f81a5dfc3ca..4a0caf9aaa4 100644
--- a/apps/settings/l10n/hu.js
+++ b/apps/settings/l10n/hu.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Hiba történt a kérés során. Nem lehet folytatni.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Ez az alkalmazás engedélyezett, de frissíteni kell. 5 másodpercen belül a frissítési oldalra lesz irányítva.",
"Error: This app cannot be enabled because it makes the server unstable" : "Hiba: az alkalmazás nem nem engedélyezhető, mert instabillá tenné a kiszolgálót",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Túl sok kérés érkezett a hálózatától. Próbálja újra később, vagy ha ez egy hiba, akkor forduljon a rendszergazdához.",
"Documentation" : "Dokumentáció",
"Forum" : "Fórum",
"Login" : "Bejelentkezés",
diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json
index e0d53043de9..bd55cce22be 100644
--- a/apps/settings/l10n/hu.json
+++ b/apps/settings/l10n/hu.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Hiba történt a kérés során. Nem lehet folytatni.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Ez az alkalmazás engedélyezett, de frissíteni kell. 5 másodpercen belül a frissítési oldalra lesz irányítva.",
"Error: This app cannot be enabled because it makes the server unstable" : "Hiba: az alkalmazás nem nem engedélyezhető, mert instabillá tenné a kiszolgálót",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Túl sok kérés érkezett a hálózatától. Próbálja újra később, vagy ha ez egy hiba, akkor forduljon a rendszergazdához.",
"Documentation" : "Dokumentáció",
"Forum" : "Fórum",
"Login" : "Bejelentkezés",
diff --git a/apps/settings/l10n/id.js b/apps/settings/l10n/id.js
index 8d359501cdc..4767ef6087f 100644
--- a/apps/settings/l10n/id.js
+++ b/apps/settings/l10n/id.js
@@ -302,6 +302,7 @@ OC.L10N.register(
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Aplikasi ini tidak ditandai sebagai versi Nextcloud Anda yang kompatibel. Jika Anda tetap ingin melanjutkannya, Anda tetap dapat memasang aplikasi. Catatan bahwa aplikasinya mungkin tidak akan berjalan seperti yang diharapkan.",
"Never" : "Tidak pernah",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikasi diaktifkan namun butuh diperbarui. Anda akan dialihkan ke halaman pembaruan dalam 5 detik.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ada terlalu banyak permintaan dari jaringan Anda. Coba lagi nanti atau hubungi administrator Anda jika ini adalah kesalahan.",
"Documentation" : "Dokumentasi",
"Forum" : "Forum",
"Login" : "Masuk",
diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json
index bab2162659c..be1d06b242c 100644
--- a/apps/settings/l10n/id.json
+++ b/apps/settings/l10n/id.json
@@ -300,6 +300,7 @@
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Aplikasi ini tidak ditandai sebagai versi Nextcloud Anda yang kompatibel. Jika Anda tetap ingin melanjutkannya, Anda tetap dapat memasang aplikasi. Catatan bahwa aplikasinya mungkin tidak akan berjalan seperti yang diharapkan.",
"Never" : "Tidak pernah",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikasi diaktifkan namun butuh diperbarui. Anda akan dialihkan ke halaman pembaruan dalam 5 detik.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ada terlalu banyak permintaan dari jaringan Anda. Coba lagi nanti atau hubungi administrator Anda jika ini adalah kesalahan.",
"Documentation" : "Dokumentasi",
"Forum" : "Forum",
"Login" : "Masuk",
diff --git a/apps/settings/l10n/is.js b/apps/settings/l10n/is.js
index d4d610a057a..da5caaceceb 100644
--- a/apps/settings/l10n/is.js
+++ b/apps/settings/l10n/is.js
@@ -285,6 +285,7 @@ OC.L10N.register(
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Þetta forrit er merkt sem ekki samhæft við þína útgáfu af Nextcloud. Ef þú heldur áfram er mögulegt að þú getir samt sett forritið upp. En athugaðu þá að ekki er víst að forritið virki eins og skyldi.",
"Never" : "Aldrei",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Forritið hefur verið virkjað, en það þarf að uppfæra það. Þú verður áframsendur á uppfærslusíðuna eftir 5 sekúndur.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Það komu of margar beiðnir frá netkerfinu þínu. Reyndu aftur eða hafðu samband við kerfisstjóra ef þetta er ekki rétt.",
"Documentation" : "Hjálparskjöl",
"Forum" : "Vefspjall",
"Login" : "Innskráning",
diff --git a/apps/settings/l10n/is.json b/apps/settings/l10n/is.json
index 72d04589072..c860b4ce509 100644
--- a/apps/settings/l10n/is.json
+++ b/apps/settings/l10n/is.json
@@ -283,6 +283,7 @@
"This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected." : "Þetta forrit er merkt sem ekki samhæft við þína útgáfu af Nextcloud. Ef þú heldur áfram er mögulegt að þú getir samt sett forritið upp. En athugaðu þá að ekki er víst að forritið virki eins og skyldi.",
"Never" : "Aldrei",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Forritið hefur verið virkjað, en það þarf að uppfæra það. Þú verður áframsendur á uppfærslusíðuna eftir 5 sekúndur.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Það komu of margar beiðnir frá netkerfinu þínu. Reyndu aftur eða hafðu samband við kerfisstjóra ef þetta er ekki rétt.",
"Documentation" : "Hjálparskjöl",
"Forum" : "Vefspjall",
"Login" : "Innskráning",
diff --git a/apps/settings/l10n/it.js b/apps/settings/l10n/it.js
index 177d0730647..351f084c3f0 100644
--- a/apps/settings/l10n/it.js
+++ b/apps/settings/l10n/it.js
@@ -392,6 +392,7 @@ OC.L10N.register(
"Never" : "Mai",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "L'applicazione è stata abilitata, ma deve essere aggiornata. Sarai rediretto alla pagina di aggiornamento in 5 secondi.",
"Error: This app cannot be enabled because it makes the server unstable" : "Errore: questa applicazione non può essere abilitata perché rende il server instabile",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Sono arrivate troppe richieste dalla tua rete. Riprova più tardi o contatta il tuo amministratore se questo è un errore.",
"Documentation" : "Documentazione",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/it.json b/apps/settings/l10n/it.json
index 7978c52957c..1402115c80a 100644
--- a/apps/settings/l10n/it.json
+++ b/apps/settings/l10n/it.json
@@ -390,6 +390,7 @@
"Never" : "Mai",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "L'applicazione è stata abilitata, ma deve essere aggiornata. Sarai rediretto alla pagina di aggiornamento in 5 secondi.",
"Error: This app cannot be enabled because it makes the server unstable" : "Errore: questa applicazione non può essere abilitata perché rende il server instabile",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Sono arrivate troppe richieste dalla tua rete. Riprova più tardi o contatta il tuo amministratore se questo è un errore.",
"Documentation" : "Documentazione",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/ja.js b/apps/settings/l10n/ja.js
index 2a0659eefd8..4f067c82bc8 100644
--- a/apps/settings/l10n/ja.js
+++ b/apps/settings/l10n/ja.js
@@ -429,6 +429,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "要求中にエラーが発生しました。 続行できません。",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "アプリは有効ですが、更新が必要です。5秒後に更新ページにリダイレクトします。",
"Error: This app cannot be enabled because it makes the server unstable" : "エラー:このアプリは、サーバーを不安定にするため、有効にすることができません。",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "ネットワークからのリクエストが多すぎました。このようなエラーが発生した場合は、後で再試行するか、管理者に連絡してください。",
"Documentation" : "ドキュメント",
"Forum" : "フォーラム",
"Login" : "ログイン",
diff --git a/apps/settings/l10n/ja.json b/apps/settings/l10n/ja.json
index f0bb84f2bff..84078c2efc1 100644
--- a/apps/settings/l10n/ja.json
+++ b/apps/settings/l10n/ja.json
@@ -427,6 +427,7 @@
"An error occurred during the request. Unable to proceed." : "要求中にエラーが発生しました。 続行できません。",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "アプリは有効ですが、更新が必要です。5秒後に更新ページにリダイレクトします。",
"Error: This app cannot be enabled because it makes the server unstable" : "エラー:このアプリは、サーバーを不安定にするため、有効にすることができません。",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "ネットワークからのリクエストが多すぎました。このようなエラーが発生した場合は、後で再試行するか、管理者に連絡してください。",
"Documentation" : "ドキュメント",
"Forum" : "フォーラム",
"Login" : "ログイン",
diff --git a/apps/settings/l10n/ko.js b/apps/settings/l10n/ko.js
index 4c92203220e..6ea3cb1c952 100644
--- a/apps/settings/l10n/ko.js
+++ b/apps/settings/l10n/ko.js
@@ -391,6 +391,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "요청을 보내는 도중 에러가 발생하였습니다. 더 이상 진행할 수 없습니다.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "앱이 활성화되었지만, 앱을 업데이트해야 합니다. 5초 후 앱 업데이트 페이지로 넘어갑니다.",
"Error: This app cannot be enabled because it makes the server unstable" : "오류: 이 앱은 서버를 불안정하게 만들 수 있어서 활성화할 수 없습니다",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "이 네트워크에 너무 요청이 많습니다. 나중에 다시 시도하십시오. 이것이 오류일 경우 관리자에게 문의하십시오.",
"Documentation" : "문서",
"Forum" : "포럼",
"Login" : "로그인",
diff --git a/apps/settings/l10n/ko.json b/apps/settings/l10n/ko.json
index 6b70340d6d5..4addb384322 100644
--- a/apps/settings/l10n/ko.json
+++ b/apps/settings/l10n/ko.json
@@ -389,6 +389,7 @@
"An error occurred during the request. Unable to proceed." : "요청을 보내는 도중 에러가 발생하였습니다. 더 이상 진행할 수 없습니다.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "앱이 활성화되었지만, 앱을 업데이트해야 합니다. 5초 후 앱 업데이트 페이지로 넘어갑니다.",
"Error: This app cannot be enabled because it makes the server unstable" : "오류: 이 앱은 서버를 불안정하게 만들 수 있어서 활성화할 수 없습니다",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "이 네트워크에 너무 요청이 많습니다. 나중에 다시 시도하십시오. 이것이 오류일 경우 관리자에게 문의하십시오.",
"Documentation" : "문서",
"Forum" : "포럼",
"Login" : "로그인",
diff --git a/apps/settings/l10n/lt_LT.js b/apps/settings/l10n/lt_LT.js
index 7d50b8120a9..d18dbc9bad0 100644
--- a/apps/settings/l10n/lt_LT.js
+++ b/apps/settings/l10n/lt_LT.js
@@ -390,6 +390,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Užklausos metu įvyko klaida. Nepavyksta tęsti.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Programėlė įjungta, tačiau turi būti atnaujinta. Po 5 sekundžių būsite peradresuoti į atnaujinimo puslapį.",
"Error: This app cannot be enabled because it makes the server unstable" : "Klaida: Ši programėlė negali būti įjungta, nes ji neigiamai veikia serverio stabilumą",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Iš jūsų tinklo buvo per daug užklausų. Bandykite dar kartą vėliau arba, jeigu tai klaida, susisiekite su savo administratoriumi.",
"Documentation" : "Dokumentacija",
"Forum" : "Forumas",
"Login" : "Prisijungti",
diff --git a/apps/settings/l10n/lt_LT.json b/apps/settings/l10n/lt_LT.json
index 27dfce43484..356e58e13c5 100644
--- a/apps/settings/l10n/lt_LT.json
+++ b/apps/settings/l10n/lt_LT.json
@@ -388,6 +388,7 @@
"An error occurred during the request. Unable to proceed." : "Užklausos metu įvyko klaida. Nepavyksta tęsti.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Programėlė įjungta, tačiau turi būti atnaujinta. Po 5 sekundžių būsite peradresuoti į atnaujinimo puslapį.",
"Error: This app cannot be enabled because it makes the server unstable" : "Klaida: Ši programėlė negali būti įjungta, nes ji neigiamai veikia serverio stabilumą",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Iš jūsų tinklo buvo per daug užklausų. Bandykite dar kartą vėliau arba, jeigu tai klaida, susisiekite su savo administratoriumi.",
"Documentation" : "Dokumentacija",
"Forum" : "Forumas",
"Login" : "Prisijungti",
diff --git a/apps/settings/l10n/mk.js b/apps/settings/l10n/mk.js
index 10bfc552480..a8b701ee2ec 100644
--- a/apps/settings/l10n/mk.js
+++ b/apps/settings/l10n/mk.js
@@ -415,6 +415,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Настана грешка во процесот. Не може да продолжи.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Оваа апликација е овозможена но треба да биде надоградена. Ќе бидете пренасочени кон страната за надоградување за 5 секунди.",
"Error: This app cannot be enabled because it makes the server unstable" : "Грешка: Оваа апликација неможе да се овозможи бидејќи ќе го направи серверот нестабилен",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Има испратено премногу барање од вашата мрежа. Обидете се подоцна повторно или контактирајте го администраторот.",
"Documentation" : "Документација",
"Forum" : "Форум",
"Login" : "Најава",
diff --git a/apps/settings/l10n/mk.json b/apps/settings/l10n/mk.json
index 6efb6485cb7..857498e5854 100644
--- a/apps/settings/l10n/mk.json
+++ b/apps/settings/l10n/mk.json
@@ -413,6 +413,7 @@
"An error occurred during the request. Unable to proceed." : "Настана грешка во процесот. Не може да продолжи.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Оваа апликација е овозможена но треба да биде надоградена. Ќе бидете пренасочени кон страната за надоградување за 5 секунди.",
"Error: This app cannot be enabled because it makes the server unstable" : "Грешка: Оваа апликација неможе да се овозможи бидејќи ќе го направи серверот нестабилен",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Има испратено премногу барање од вашата мрежа. Обидете се подоцна повторно или контактирајте го администраторот.",
"Documentation" : "Документација",
"Forum" : "Форум",
"Login" : "Најава",
diff --git a/apps/settings/l10n/nb.js b/apps/settings/l10n/nb.js
index 9a5da202948..ca5892f1617 100644
--- a/apps/settings/l10n/nb.js
+++ b/apps/settings/l10n/nb.js
@@ -382,6 +382,7 @@ OC.L10N.register(
"The app will be downloaded from the App Store" : "Appen vil bli lastet ned fra app-butikken",
"Never" : "Aldri",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Appen er aktivert men må oppdateres. Du vil bli videresendt til oppdateringssiden om 5 sekunder.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Det var for mange forespørsler fra ditt nettverk. Prøv igjen senere eller kontakt din administrator hvis dette er en feil.",
"Documentation" : "Dokumentasjon",
"Forum" : "Forum",
"Login" : "Innlogging",
diff --git a/apps/settings/l10n/nb.json b/apps/settings/l10n/nb.json
index 1e939e359ac..edcab77cdf9 100644
--- a/apps/settings/l10n/nb.json
+++ b/apps/settings/l10n/nb.json
@@ -380,6 +380,7 @@
"The app will be downloaded from the App Store" : "Appen vil bli lastet ned fra app-butikken",
"Never" : "Aldri",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Appen er aktivert men må oppdateres. Du vil bli videresendt til oppdateringssiden om 5 sekunder.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Det var for mange forespørsler fra ditt nettverk. Prøv igjen senere eller kontakt din administrator hvis dette er en feil.",
"Documentation" : "Dokumentasjon",
"Forum" : "Forum",
"Login" : "Innlogging",
diff --git a/apps/settings/l10n/nl.js b/apps/settings/l10n/nl.js
index 85f6844f279..35e400e33ed 100644
--- a/apps/settings/l10n/nl.js
+++ b/apps/settings/l10n/nl.js
@@ -385,6 +385,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Er is een fout opgetreden tijdens het verzoek. Kan niet doorgaan.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "De app is ingeschakeld maar moet worden geüpdate. Je wordt over 5 seconden doorgeleid naar de updatepagina.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fout: Deze app kan niet ingeschakeld worden, omdat die de server onstabiel maakt",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Er waren te veel aanvragen afkomstig uit uw netwerk. Probeer later opnieuw of contacteer de beheerder als dat niet correct is.",
"Documentation" : "Documentatie",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/nl.json b/apps/settings/l10n/nl.json
index fc8351e2fb7..256aeafe410 100644
--- a/apps/settings/l10n/nl.json
+++ b/apps/settings/l10n/nl.json
@@ -383,6 +383,7 @@
"An error occurred during the request. Unable to proceed." : "Er is een fout opgetreden tijdens het verzoek. Kan niet doorgaan.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "De app is ingeschakeld maar moet worden geüpdate. Je wordt over 5 seconden doorgeleid naar de updatepagina.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fout: Deze app kan niet ingeschakeld worden, omdat die de server onstabiel maakt",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Er waren te veel aanvragen afkomstig uit uw netwerk. Probeer later opnieuw of contacteer de beheerder als dat niet correct is.",
"Documentation" : "Documentatie",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/oc.js b/apps/settings/l10n/oc.js
index a052d1d6725..d9e0a5ccad4 100644
--- a/apps/settings/l10n/oc.js
+++ b/apps/settings/l10n/oc.js
@@ -216,6 +216,7 @@ OC.L10N.register(
"Show to everyone" : "Afichar a tot lo monde",
"Hide" : "Amagar",
"Never" : "Pas jamais",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "I a agut tròp de requèstas a partir de vòstre ret. Tornatz ensajar mai tard o contactatz vòstre administrator s’aquò es una error.",
"Documentation" : "Documentacion",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/oc.json b/apps/settings/l10n/oc.json
index 75722e18430..643c1c77593 100644
--- a/apps/settings/l10n/oc.json
+++ b/apps/settings/l10n/oc.json
@@ -214,6 +214,7 @@
"Show to everyone" : "Afichar a tot lo monde",
"Hide" : "Amagar",
"Never" : "Pas jamais",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "I a agut tròp de requèstas a partir de vòstre ret. Tornatz ensajar mai tard o contactatz vòstre administrator s’aquò es una error.",
"Documentation" : "Documentacion",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js
index 37e621090d3..42ddf779932 100644
--- a/apps/settings/l10n/pl.js
+++ b/apps/settings/l10n/pl.js
@@ -433,6 +433,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Wystąpił błąd podczas żądania. Nie można kontynuować.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacja została włączona, ponieważ wymaga aktualizacji. Za 5 sekund nastąpi przekierowanie do strony aktualizacji.",
"Error: This app cannot be enabled because it makes the server unstable" : "Błąd: Ta aplikacja nie zostanie włączona ze względu na możliwość niestabilnej pracy serwera",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zbyt wiele żądań z Twojej sieci. Spróbuj ponownie później lub skontaktuj się z administratorem, jeśli jest to błąd.",
"Documentation" : "Dokumentacja",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json
index 50b22db2777..12570d52839 100644
--- a/apps/settings/l10n/pl.json
+++ b/apps/settings/l10n/pl.json
@@ -431,6 +431,7 @@
"An error occurred during the request. Unable to proceed." : "Wystąpił błąd podczas żądania. Nie można kontynuować.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacja została włączona, ponieważ wymaga aktualizacji. Za 5 sekund nastąpi przekierowanie do strony aktualizacji.",
"Error: This app cannot be enabled because it makes the server unstable" : "Błąd: Ta aplikacja nie zostanie włączona ze względu na możliwość niestabilnej pracy serwera",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Zbyt wiele żądań z Twojej sieci. Spróbuj ponownie później lub skontaktuj się z administratorem, jeśli jest to błąd.",
"Documentation" : "Dokumentacja",
"Forum" : "Forum",
"Login" : "Login",
diff --git a/apps/settings/l10n/pt_BR.js b/apps/settings/l10n/pt_BR.js
index 730026c9853..c1a1b7ea5bc 100644
--- a/apps/settings/l10n/pt_BR.js
+++ b/apps/settings/l10n/pt_BR.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Ocorreu um erro durante a solicitação. Não foi possível prosseguir.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "O aplicativo foi ativado, mas precisa ser atualizado. Você será redirecionado para a página de atualização em 5 segundos.",
"Error: This app cannot be enabled because it makes the server unstable" : "Erro: Este aplicativo não pode ser habilitado pois torna o servidor instável.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houve muitas solicitações de sua rede. Tente novamente mais tarde ou entre em contato com o administrador se isso for um erro.",
"Documentation" : "Documentação",
"Forum" : "Fórum",
"Login" : "Login",
diff --git a/apps/settings/l10n/pt_BR.json b/apps/settings/l10n/pt_BR.json
index 8cb7dc46c36..b889d3b8f4d 100644
--- a/apps/settings/l10n/pt_BR.json
+++ b/apps/settings/l10n/pt_BR.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Ocorreu um erro durante a solicitação. Não foi possível prosseguir.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "O aplicativo foi ativado, mas precisa ser atualizado. Você será redirecionado para a página de atualização em 5 segundos.",
"Error: This app cannot be enabled because it makes the server unstable" : "Erro: Este aplicativo não pode ser habilitado pois torna o servidor instável.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Houve muitas solicitações de sua rede. Tente novamente mais tarde ou entre em contato com o administrador se isso for um erro.",
"Documentation" : "Documentação",
"Forum" : "Fórum",
"Login" : "Login",
diff --git a/apps/settings/l10n/ru.js b/apps/settings/l10n/ru.js
index 823686fd692..3cc00d84331 100644
--- a/apps/settings/l10n/ru.js
+++ b/apps/settings/l10n/ru.js
@@ -425,6 +425,7 @@ OC.L10N.register(
"Never" : "Никогда",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Приложение было включено, но нуждается в обновлении. В течении 5 секунд будет выполнено перенаправление на страницу обновления.",
"Error: This app cannot be enabled because it makes the server unstable" : "Ошибка: это приложение не может быть включено, так как оно сделает сервер нестабильным",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Превышено количество запросов из вашей сети. Попробуйте позднее или сообщите администратору об этой ошибке.",
"Documentation" : "Документация",
"Forum" : "Форум",
"Login" : "Логин",
diff --git a/apps/settings/l10n/ru.json b/apps/settings/l10n/ru.json
index e680bdd8f26..99eee2985fc 100644
--- a/apps/settings/l10n/ru.json
+++ b/apps/settings/l10n/ru.json
@@ -423,6 +423,7 @@
"Never" : "Никогда",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Приложение было включено, но нуждается в обновлении. В течении 5 секунд будет выполнено перенаправление на страницу обновления.",
"Error: This app cannot be enabled because it makes the server unstable" : "Ошибка: это приложение не может быть включено, так как оно сделает сервер нестабильным",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Превышено количество запросов из вашей сети. Попробуйте позднее или сообщите администратору об этой ошибке.",
"Documentation" : "Документация",
"Forum" : "Форум",
"Login" : "Логин",
diff --git a/apps/settings/l10n/sc.js b/apps/settings/l10n/sc.js
index 704507f0faf..0fce7740e35 100644
--- a/apps/settings/l10n/sc.js
+++ b/apps/settings/l10n/sc.js
@@ -327,6 +327,7 @@ OC.L10N.register(
"Never" : "Mai",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "S'aplicatzione est istada ativada ma tenet bisòngiu de un'agiornamentu. T'amus a deretare a sa pàgina de agiornamentu tra 5 segundos.",
"Error: This app cannot be enabled because it makes the server unstable" : "Errore: Custa aplicatzione non si podet ativare ca faghet su serbidore no istàbile",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Tropu rechestas sunt arribadas dae sa rete tua. Torra a proare prus a tardu o cuntata s'amministradore tuo chi ddoe at un'errore.",
"Documentation" : "Documentatzione",
"Forum" : "Forum",
"Login" : "Atzessu",
diff --git a/apps/settings/l10n/sc.json b/apps/settings/l10n/sc.json
index 54a0f4156c2..dbb4aa1c0f0 100644
--- a/apps/settings/l10n/sc.json
+++ b/apps/settings/l10n/sc.json
@@ -325,6 +325,7 @@
"Never" : "Mai",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "S'aplicatzione est istada ativada ma tenet bisòngiu de un'agiornamentu. T'amus a deretare a sa pàgina de agiornamentu tra 5 segundos.",
"Error: This app cannot be enabled because it makes the server unstable" : "Errore: Custa aplicatzione non si podet ativare ca faghet su serbidore no istàbile",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Tropu rechestas sunt arribadas dae sa rete tua. Torra a proare prus a tardu o cuntata s'amministradore tuo chi ddoe at un'errore.",
"Documentation" : "Documentatzione",
"Forum" : "Forum",
"Login" : "Atzessu",
diff --git a/apps/settings/l10n/sk.js b/apps/settings/l10n/sk.js
index 8efb19f4c45..05ce000dda2 100644
--- a/apps/settings/l10n/sk.js
+++ b/apps/settings/l10n/sk.js
@@ -428,6 +428,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Počas vykonania požiadavky nastala chyba. Nie je možné pokračovať.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikácia bola povolená, ale vyžaduje sa aktualizácia. Presmerovanie na stránku aktualizácie o 5 sekúnd.",
"Error: This app cannot be enabled because it makes the server unstable" : "Chyba: aplikáciu nie je možné povoliť, lebo naruší stabilitu servera",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Príliš mnoho požiadaviek z vašej siete. Skúste to znovu neskôr alebo kontaktujte svojho administrátora ak je toto chyba.",
"Documentation" : "Dokumentácia",
"Forum" : "Fórum",
"Login" : "Prihlásenie",
diff --git a/apps/settings/l10n/sk.json b/apps/settings/l10n/sk.json
index efe2498a2f1..548ee681f2b 100644
--- a/apps/settings/l10n/sk.json
+++ b/apps/settings/l10n/sk.json
@@ -426,6 +426,7 @@
"An error occurred during the request. Unable to proceed." : "Počas vykonania požiadavky nastala chyba. Nie je možné pokračovať.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikácia bola povolená, ale vyžaduje sa aktualizácia. Presmerovanie na stránku aktualizácie o 5 sekúnd.",
"Error: This app cannot be enabled because it makes the server unstable" : "Chyba: aplikáciu nie je možné povoliť, lebo naruší stabilitu servera",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Príliš mnoho požiadaviek z vašej siete. Skúste to znovu neskôr alebo kontaktujte svojho administrátora ak je toto chyba.",
"Documentation" : "Dokumentácia",
"Forum" : "Fórum",
"Login" : "Prihlásenie",
diff --git a/apps/settings/l10n/sl.js b/apps/settings/l10n/sl.js
index 1c0ebed54b4..1da03b05db2 100644
--- a/apps/settings/l10n/sl.js
+++ b/apps/settings/l10n/sl.js
@@ -396,6 +396,7 @@ OC.L10N.register(
"Never" : "Nikoli",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Program je omogočen, vendar zahteva posodobitev. Po nekaj sekundah boste preusmerjeni na stran za posodobitev.",
"Error: This app cannot be enabled because it makes the server unstable" : "Napaka: tega programa ni mogoče namestiti, ker povzroča nestabilnost strežnika.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Iz omrežja je bilo prejetih preveč zahtev. Če je to napaka, stopite v stik s skrbnikom, sicer pa poskusite spet kasneje.",
"Documentation" : "Dokumentacija",
"Forum" : "Forum",
"Login" : "Prijava",
diff --git a/apps/settings/l10n/sl.json b/apps/settings/l10n/sl.json
index ea8f0a3f803..61c79cf6e2b 100644
--- a/apps/settings/l10n/sl.json
+++ b/apps/settings/l10n/sl.json
@@ -394,6 +394,7 @@
"Never" : "Nikoli",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Program je omogočen, vendar zahteva posodobitev. Po nekaj sekundah boste preusmerjeni na stran za posodobitev.",
"Error: This app cannot be enabled because it makes the server unstable" : "Napaka: tega programa ni mogoče namestiti, ker povzroča nestabilnost strežnika.",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Iz omrežja je bilo prejetih preveč zahtev. Če je to napaka, stopite v stik s skrbnikom, sicer pa poskusite spet kasneje.",
"Documentation" : "Dokumentacija",
"Forum" : "Forum",
"Login" : "Prijava",
diff --git a/apps/settings/l10n/sr.js b/apps/settings/l10n/sr.js
index 01e5b4d8615..c4d8616f26d 100644
--- a/apps/settings/l10n/sr.js
+++ b/apps/settings/l10n/sr.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Током захтева је дошло до грешке. Не може да се настави.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Апликација је укључена, али треба да се ажурира. Бићете преусмерени на страну са ажурирањем за 5 секунди.",
"Error: This app cannot be enabled because it makes the server unstable" : "Грешка: Ова апликација не може да се обрише јер ће сервер постати нестабилан",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Са ваше мреже долази превише захтева. Покушајте поново касније или контактирајте администратора уколико је ово нека грешка.",
"Documentation" : "Документација",
"Forum" : "Форум",
"Login" : "Пријава",
diff --git a/apps/settings/l10n/sr.json b/apps/settings/l10n/sr.json
index 3ee01c820cd..6d55956b366 100644
--- a/apps/settings/l10n/sr.json
+++ b/apps/settings/l10n/sr.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Током захтева је дошло до грешке. Не може да се настави.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Апликација је укључена, али треба да се ажурира. Бићете преусмерени на страну са ажурирањем за 5 секунди.",
"Error: This app cannot be enabled because it makes the server unstable" : "Грешка: Ова апликација не може да се обрише јер ће сервер постати нестабилан",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Са ваше мреже долази превише захтева. Покушајте поново касније или контактирајте администратора уколико је ово нека грешка.",
"Documentation" : "Документација",
"Forum" : "Форум",
"Login" : "Пријава",
diff --git a/apps/settings/l10n/sv.js b/apps/settings/l10n/sv.js
index ac462ff382e..c0faebcd20b 100644
--- a/apps/settings/l10n/sv.js
+++ b/apps/settings/l10n/sv.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Ett fel uppstod under begäran. Det gick inte att fortsätta.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Appen har aktiverats men måste uppdateras. Du kommer att omdirigeras till uppdateringssidan om 5 sekunder.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fel: Denna appen kan inte aktiveras eftersom den gör servern instabil",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Det kom för många förfrågningar från ditt nätverk. Försök senare eller kontakta din administratör om detta är ett fel.",
"Documentation" : "Dokumentation",
"Forum" : "Forum",
"Login" : "Logga in",
diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json
index 7f6fa13d38c..3fba9a2af1d 100644
--- a/apps/settings/l10n/sv.json
+++ b/apps/settings/l10n/sv.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "Ett fel uppstod under begäran. Det gick inte att fortsätta.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Appen har aktiverats men måste uppdateras. Du kommer att omdirigeras till uppdateringssidan om 5 sekunder.",
"Error: This app cannot be enabled because it makes the server unstable" : "Fel: Denna appen kan inte aktiveras eftersom den gör servern instabil",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Det kom för många förfrågningar från ditt nätverk. Försök senare eller kontakta din administratör om detta är ett fel.",
"Documentation" : "Dokumentation",
"Forum" : "Forum",
"Login" : "Logga in",
diff --git a/apps/settings/l10n/th.js b/apps/settings/l10n/th.js
index fbc4a2ffe92..13d40dc07b1 100644
--- a/apps/settings/l10n/th.js
+++ b/apps/settings/l10n/th.js
@@ -266,6 +266,7 @@ OC.L10N.register(
"Never" : "ไม่เคย",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "แอปเปิดใช้งานแล้ว แต่ต้องทำการอัปเดต คุณจะถูกนำไปยังหน้าอัปเดตใน 5 วินาที",
"Error: This app cannot be enabled because it makes the server unstable" : "ข้อผิดพลาด: ไม่สามารถเปิดใช้งานแอปนี้เพราะทำให้เซิร์ฟเวอร์ไม่เสถียร",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "มีการส่งคำขอจากเครือข่ายของคุณมากเกินไป กรุณาลองอีกครั้งในภายหลัง หรือติดต่อผู้ดูแลระบบหากเป็นข้อผิดพลาด",
"Documentation" : "เอกสารประกอบ",
"Forum" : "ฟอรัม",
"Login" : "เข้าสู่ระบบ",
diff --git a/apps/settings/l10n/th.json b/apps/settings/l10n/th.json
index 3f99803b70b..b7daa6627b3 100644
--- a/apps/settings/l10n/th.json
+++ b/apps/settings/l10n/th.json
@@ -264,6 +264,7 @@
"Never" : "ไม่เคย",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "แอปเปิดใช้งานแล้ว แต่ต้องทำการอัปเดต คุณจะถูกนำไปยังหน้าอัปเดตใน 5 วินาที",
"Error: This app cannot be enabled because it makes the server unstable" : "ข้อผิดพลาด: ไม่สามารถเปิดใช้งานแอปนี้เพราะทำให้เซิร์ฟเวอร์ไม่เสถียร",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "มีการส่งคำขอจากเครือข่ายของคุณมากเกินไป กรุณาลองอีกครั้งในภายหลัง หรือติดต่อผู้ดูแลระบบหากเป็นข้อผิดพลาด",
"Documentation" : "เอกสารประกอบ",
"Forum" : "ฟอรัม",
"Login" : "เข้าสู่ระบบ",
diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js
index acc4d830201..8b24277bbc4 100644
--- a/apps/settings/l10n/tr.js
+++ b/apps/settings/l10n/tr.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "İstek sırasında bir sorun çıktı. İşlem sürdürülemiyor.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Uygulama etkinleştirilmiş fakat güncellenmesi gerekiyor. 5 saniye içinde güncelleme sayfasına yönlendirileceksiniz.",
"Error: This app cannot be enabled because it makes the server unstable" : "Hata: Bu uygulama sunucuda kararsızlığa yol açtığından etkinleştirilemez",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ağınızdan çok fazla istekte bulunuldu. Bir süre sonra yeniden deneyin ya da bir sorun olduğunu düşünüyorsanız BT yöneticiniz ile görüşün.",
"Documentation" : "Belgeler",
"Forum" : "Forum",
"Login" : "Oturum açın",
diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json
index b8be01d6b0f..91519be80fd 100644
--- a/apps/settings/l10n/tr.json
+++ b/apps/settings/l10n/tr.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "İstek sırasında bir sorun çıktı. İşlem sürdürülemiyor.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Uygulama etkinleştirilmiş fakat güncellenmesi gerekiyor. 5 saniye içinde güncelleme sayfasına yönlendirileceksiniz.",
"Error: This app cannot be enabled because it makes the server unstable" : "Hata: Bu uygulama sunucuda kararsızlığa yol açtığından etkinleştirilemez",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Ağınızdan çok fazla istekte bulunuldu. Bir süre sonra yeniden deneyin ya da bir sorun olduğunu düşünüyorsanız BT yöneticiniz ile görüşün.",
"Documentation" : "Belgeler",
"Forum" : "Forum",
"Login" : "Oturum açın",
diff --git a/apps/settings/l10n/uk.js b/apps/settings/l10n/uk.js
index 764ef059fea..03e7e60b99f 100644
--- a/apps/settings/l10n/uk.js
+++ b/apps/settings/l10n/uk.js
@@ -432,6 +432,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "Під час запиту сталася помилка. Неможливо продовжити.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Застосунок активовано, але його потрібно оновити. Вас буде переспрямовано на сторінку оновлення через 5 секунд.",
"Error: This app cannot be enabled because it makes the server unstable" : "Помилка: цю програму неможливо ввімкнути, оскільки вона робить сервер нестабільним",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Забагато запитів із вашої мережі. Повторіть спробу пізніше або зверніться до адміністратора, якщо це помилка.",
"Documentation" : "Документація",
"Forum" : "Форум",
"Login" : "Логін",
diff --git a/apps/settings/l10n/uk.json b/apps/settings/l10n/uk.json
index 4f3a07aa872..87337f306fd 100644
--- a/apps/settings/l10n/uk.json
+++ b/apps/settings/l10n/uk.json
@@ -430,6 +430,7 @@
"An error occurred during the request. Unable to proceed." : "Під час запиту сталася помилка. Неможливо продовжити.",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Застосунок активовано, але його потрібно оновити. Вас буде переспрямовано на сторінку оновлення через 5 секунд.",
"Error: This app cannot be enabled because it makes the server unstable" : "Помилка: цю програму неможливо ввімкнути, оскільки вона робить сервер нестабільним",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "Забагато запитів із вашої мережі. Повторіть спробу пізніше або зверніться до адміністратора, якщо це помилка.",
"Documentation" : "Документація",
"Forum" : "Форум",
"Login" : "Логін",
diff --git a/apps/settings/l10n/zh_CN.js b/apps/settings/l10n/zh_CN.js
index 6647f21f8fd..50b4f21be12 100644
--- a/apps/settings/l10n/zh_CN.js
+++ b/apps/settings/l10n/zh_CN.js
@@ -428,6 +428,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "请求期间发生错误。无法继续。",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用,但是需要更新。5秒后将跳转到更新页面。",
"Error: This app cannot be enabled because it makes the server unstable" : "错误:这个应用程序不能被启用,因为它使服务器不稳定 ",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "您的网络请求过多。如果出现错误,请稍后重试或与您的管理员联系。",
"Documentation" : "文档",
"Forum" : "论坛",
"Login" : "登录",
diff --git a/apps/settings/l10n/zh_CN.json b/apps/settings/l10n/zh_CN.json
index fbda33f18f8..333d649d49f 100644
--- a/apps/settings/l10n/zh_CN.json
+++ b/apps/settings/l10n/zh_CN.json
@@ -426,6 +426,7 @@
"An error occurred during the request. Unable to proceed." : "请求期间发生错误。无法继续。",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用,但是需要更新。5秒后将跳转到更新页面。",
"Error: This app cannot be enabled because it makes the server unstable" : "错误:这个应用程序不能被启用,因为它使服务器不稳定 ",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "您的网络请求过多。如果出现错误,请稍后重试或与您的管理员联系。",
"Documentation" : "文档",
"Forum" : "论坛",
"Login" : "登录",
diff --git a/apps/settings/l10n/zh_HK.js b/apps/settings/l10n/zh_HK.js
index b0c92c0518b..cdc617a5733 100644
--- a/apps/settings/l10n/zh_HK.js
+++ b/apps/settings/l10n/zh_HK.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "請求時發生錯誤。無法繼續。",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "應用程式已啟用但是需要更新。您將會在5秒內被重新導向至更新頁面。",
"Error: This app cannot be enabled because it makes the server unstable" : "錯誤:此應用程序無法啟用,因為它造成伺服器不穩定",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "有太多請求來自你的網路,請稍後再試,若你認為這不該發生,請回報系統管理員這項錯誤。",
"Documentation" : "使用手冊",
"Forum" : "論壇",
"Login" : "登入",
diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json
index 7ee8f014b2b..cf94dcafa79 100644
--- a/apps/settings/l10n/zh_HK.json
+++ b/apps/settings/l10n/zh_HK.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "請求時發生錯誤。無法繼續。",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "應用程式已啟用但是需要更新。您將會在5秒內被重新導向至更新頁面。",
"Error: This app cannot be enabled because it makes the server unstable" : "錯誤:此應用程序無法啟用,因為它造成伺服器不穩定",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "有太多請求來自你的網路,請稍後再試,若你認為這不該發生,請回報系統管理員這項錯誤。",
"Documentation" : "使用手冊",
"Forum" : "論壇",
"Login" : "登入",
diff --git a/apps/settings/l10n/zh_TW.js b/apps/settings/l10n/zh_TW.js
index 22bd25c396b..3bac92eb4ae 100644
--- a/apps/settings/l10n/zh_TW.js
+++ b/apps/settings/l10n/zh_TW.js
@@ -435,6 +435,7 @@ OC.L10N.register(
"An error occurred during the request. Unable to proceed." : "請求時發生錯誤。無法繼續。",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "應用程式已啟用但是需要更新。您將會在5秒內被重新導向至更新頁面。",
"Error: This app cannot be enabled because it makes the server unstable" : "錯誤:此應用程序無法啟用,因為它造成伺服器不穩定",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "有太多請求來自你的網路,請稍後再試,若你認為這不該發生,請回報系統管理員這項錯誤。",
"Documentation" : "說明文件",
"Forum" : "論壇",
"Login" : "登入",
diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json
index 9c4fe1c7c1d..9ae7b5e2fa3 100644
--- a/apps/settings/l10n/zh_TW.json
+++ b/apps/settings/l10n/zh_TW.json
@@ -433,6 +433,7 @@
"An error occurred during the request. Unable to proceed." : "請求時發生錯誤。無法繼續。",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "應用程式已啟用但是需要更新。您將會在5秒內被重新導向至更新頁面。",
"Error: This app cannot be enabled because it makes the server unstable" : "錯誤:此應用程序無法啟用,因為它造成伺服器不穩定",
+ "There were too many requests from your network. Retry later or contact your administrator if this is an error." : "有太多請求來自你的網路,請稍後再試,若你認為這不該發生,請回報系統管理員這項錯誤。",
"Documentation" : "說明文件",
"Forum" : "論壇",
"Login" : "登入",
diff --git a/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue b/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
index ca83be9aafe..5fb59d3d797 100644
--- a/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
+++ b/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
@@ -90,11 +90,10 @@ import { NcActions, NcActionButton } from '@nextcloud/vue'
import AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'
import AlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'
import Check from 'vue-material-design-icons/Check.vue'
-import { showError } from '@nextcloud/dialogs'
import debounce from 'debounce'
import FederationControl from '../shared/FederationControl.vue'
-import logger from '../../../logger.js'
+import { handleError } from '../../../utils/handlers.js'
import { ACCOUNT_PROPERTY_READABLE_ENUM, VERIFICATION_ENUM } from '../../../constants/AccountPropertyConstants.js'
import {
@@ -358,8 +357,7 @@ export default {
this.showCheckmarkIcon = true
setTimeout(() => { this.showCheckmarkIcon = false }, 2000)
} else {
- showError(errorMessage)
- logger.error(errorMessage, error)
+ handleError(error, errorMessage)
this.showErrorIcon = true
setTimeout(() => { this.showErrorIcon = false }, 2000)
}
diff --git a/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue b/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue
index 6bfb8bfee8b..613b90356c3 100644
--- a/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue
+++ b/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue
@@ -63,7 +63,6 @@
<script>
import { loadState } from '@nextcloud/initial-state'
-import { showError } from '@nextcloud/dialogs'
import Email from './Email.vue'
import HeaderBar from '../shared/HeaderBar.vue'
@@ -71,7 +70,7 @@ import HeaderBar from '../shared/HeaderBar.vue'
import { ACCOUNT_PROPERTY_READABLE_ENUM, DEFAULT_ADDITIONAL_EMAIL_SCOPE, NAME_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'
import { savePrimaryEmail, savePrimaryEmailScope, removeAdditionalEmail } from '../../../service/PersonalInfo/EmailService.js'
import { validateEmail } from '../../../utils/validate.js'
-import logger from '../../../logger.js'
+import { handleError } from '../../../utils/handlers.js'
const { emailMap: { additionalEmails, primaryEmail, notificationEmail } } = loadState('settings', 'personalInfoParameters', {})
const { displayNameChangeSupported } = loadState('settings', 'accountParameters', {})
@@ -186,8 +185,7 @@ export default {
handleResponse(status, errorMessage, error) {
if (status !== 'ok') {
- showError(errorMessage)
- logger.error(errorMessage, error)
+ handleError(error, errorMessage)
}
},
diff --git a/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue b/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue
index adff44b2565..959e7153e17 100644
--- a/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue
+++ b/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue
@@ -51,12 +51,10 @@
</template>
<script>
-import { showError } from '@nextcloud/dialogs'
-
import { ACCOUNT_SETTING_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'
import { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'
import { validateLanguage } from '../../../utils/validate.js'
-import logger from '../../../logger.js'
+import { handleError } from '../../../utils/handlers.js'
export default {
name: 'Language',
@@ -133,8 +131,7 @@ export default {
// Ensure that local state reflects server state
this.initialLanguage = language
} else {
- showError(errorMessage)
- logger.error(errorMessage, error)
+ handleError(error, errorMessage)
}
},
diff --git a/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue b/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue
index f5eb6f13320..7bb78f74cc2 100644
--- a/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue
+++ b/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue
@@ -58,14 +58,13 @@
</template>
<script>
-import { showError } from '@nextcloud/dialogs'
import moment from '@nextcloud/moment'
import Web from 'vue-material-design-icons/Web.vue'
import { ACCOUNT_SETTING_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'
import { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'
import { validateLocale } from '../../../utils/validate.js'
-import logger from '../../../logger.js'
+import { handleError } from '../../../utils/handlers.js'
export default {
name: 'Locale',
@@ -155,8 +154,7 @@ export default {
this.initialLocale = locale
} else {
this.$emit('update:locale', this.initialLocale)
- showError(errorMessage)
- logger.error(errorMessage, error)
+ handleError(error, errorMessage)
}
},
diff --git a/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue b/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue
index 433daa0ca89..b8e8d6301d3 100644
--- a/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue
+++ b/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue
@@ -32,13 +32,12 @@
</template>
<script>
-import { showError } from '@nextcloud/dialogs'
import { emit } from '@nextcloud/event-bus'
import { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'
import { ACCOUNT_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'
-import logger from '../../../logger.js'
import NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'
+import { handleError } from '../../../utils/handlers.js'
export default {
name: 'ProfileCheckbox',
@@ -82,8 +81,7 @@ export default {
if (status === 'ok') {
emit('settings:profile-enabled:updated', isProfileEnabled)
} else {
- showError(errorMessage)
- logger.error(errorMessage, error)
+ handleError(error, errorMessage)
}
this.loading = false
},
diff --git a/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue b/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue
index f00130ec0a4..91c4dfffc0c 100644
--- a/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue
+++ b/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue
@@ -36,7 +36,6 @@
</template>
<script>
-import { showError } from '@nextcloud/dialogs'
import { loadState } from '@nextcloud/initial-state'
import { subscribe, unsubscribe } from '@nextcloud/event-bus'
@@ -44,7 +43,7 @@ import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
import { saveProfileParameterVisibility } from '../../../service/ProfileService.js'
import { VISIBILITY_PROPERTY_ENUM } from '../../../constants/ProfileConstants.js'
-import logger from '../../../logger.js'
+import { handleError } from '../../../utils/handlers.js'
const { profileEnabled } = loadState('settings', 'personalInfoParameters', false)
@@ -136,8 +135,7 @@ export default {
// Ensure that local state reflects server state
this.initialVisibility = visibility
} else {
- showError(errorMessage)
- logger.error(errorMessage, error)
+ handleError(error, errorMessage)
}
},
diff --git a/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue b/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
index 7ab5619ab87..4da187e2b67 100644
--- a/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
+++ b/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
@@ -71,7 +71,6 @@
<script>
import debounce from 'debounce'
-import { showError } from '@nextcloud/dialogs'
import AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'
import AlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'
@@ -80,7 +79,7 @@ import Check from 'vue-material-design-icons/Check.vue'
import HeaderBar from '../shared/HeaderBar.vue'
import { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'
-import logger from '../../../logger.js'
+import { handleError } from '../../../utils/handlers.js'
export default {
name: 'AccountPropertySection',
@@ -196,8 +195,7 @@ export default {
setTimeout(() => { this.showCheckmarkIcon = false }, 2000)
} else {
this.$emit('update:value', this.initialValue)
- showError(errorMessage)
- logger.error(errorMessage, error)
+ handleError(error, errorMessage)
this.showErrorIcon = true
setTimeout(() => { this.showErrorIcon = false }, 2000)
}
diff --git a/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue b/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue
index 11a6beef534..51c4afbe8da 100644
--- a/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue
+++ b/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue
@@ -42,7 +42,6 @@
<script>
import NcActions from '@nextcloud/vue/dist/Components/NcActions.js'
import { loadState } from '@nextcloud/initial-state'
-import { showError } from '@nextcloud/dialogs'
import FederationControlAction from './FederationControlAction.vue'
@@ -56,7 +55,7 @@ import {
UNPUBLISHED_READABLE_PROPERTIES,
} from '../../../constants/AccountPropertyConstants.js'
import { savePrimaryAccountPropertyScope } from '../../../service/PersonalInfo/PersonalInfoService.js'
-import logger from '../../../logger.js'
+import { handleError } from '../../../utils/handlers.js'
const {
federationEnabled,
@@ -188,8 +187,7 @@ export default {
this.initialScope = scope
} else {
this.$emit('update:scope', this.initialScope)
- showError(errorMessage)
- logger.error(errorMessage, error)
+ handleError(error, errorMessage)
}
},
},
diff --git a/apps/settings/src/utils/handlers.js b/apps/settings/src/utils/handlers.js
new file mode 100644
index 00000000000..59f55d172f4
--- /dev/null
+++ b/apps/settings/src/utils/handlers.js
@@ -0,0 +1,48 @@
+/**
+ * @copyright 2023 Christopher Ng <chrng8@gmail.com>
+ *
+ * @author Christopher Ng <chrng8@gmail.com>
+ *
+ * @license AGPL-3.0-or-later
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+import { showError } from '@nextcloud/dialogs'
+import { translate as t } from '@nextcloud/l10n'
+
+import logger from '../logger.js'
+
+/**
+ * @param {import('axios').AxiosError} error the error
+ * @param {string?} message the message to display
+ */
+export const handleError = (error, message) => {
+ let fullMessage = ''
+
+ if (message) {
+ fullMessage += message
+ }
+
+ if (error.response?.status === 429) {
+ if (fullMessage) {
+ fullMessage += '\n'
+ }
+ fullMessage += t('settings', 'There were too many requests from your network. Retry later or contact your administrator if this is an error.')
+ }
+
+ showError(fullMessage)
+ logger.error(fullMessage || t('Error'), error)
+}
diff --git a/apps/updatenotification/l10n/cs.js b/apps/updatenotification/l10n/cs.js
index 5382ced1073..fff08992a42 100644
--- a/apps/updatenotification/l10n/cs.js
+++ b/apps/updatenotification/l10n/cs.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"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í:",
+ "No groups" : "Žádné skupiny",
"Only notifications for app updates are available." : "K dispozici jsou upozornění pouze na aktualizace aplikací.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Pro zvolený kanál aktualizací se už vyhrazená upozorňování pro server nepoužívají.",
"The selected update channel does not support updates of the server." : "Vybraný kanál aktualizací nepodporuje aktualizace serveru.",
diff --git a/apps/updatenotification/l10n/cs.json b/apps/updatenotification/l10n/cs.json
index a034a48640a..2371996ba87 100644
--- a/apps/updatenotification/l10n/cs.json
+++ b/apps/updatenotification/l10n/cs.json
@@ -27,6 +27,7 @@
"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í:",
+ "No groups" : "Žádné skupiny",
"Only notifications for app updates are available." : "K dispozici jsou upozornění pouze na aktualizace aplikací.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Pro zvolený kanál aktualizací se už vyhrazená upozorňování pro server nepoužívají.",
"The selected update channel does not support updates of the server." : "Vybraný kanál aktualizací nepodporuje aktualizace serveru.",
diff --git a/apps/updatenotification/l10n/de_DE.js b/apps/updatenotification/l10n/de_DE.js
index b505ecb18c6..71811f27aed 100644
--- a/apps/updatenotification/l10n/de_DE.js
+++ b/apps/updatenotification/l10n/de_DE.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"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:",
+ "No groups" : "Keine Gruppen",
"Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Aktualisierungskanal macht dedizierte Benachrichtigungen für Server Aktualisierungen obsolet.",
"The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
diff --git a/apps/updatenotification/l10n/de_DE.json b/apps/updatenotification/l10n/de_DE.json
index 3db601a3af7..a1cc5688011 100644
--- a/apps/updatenotification/l10n/de_DE.json
+++ b/apps/updatenotification/l10n/de_DE.json
@@ -27,6 +27,7 @@
"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:",
+ "No groups" : "Keine Gruppen",
"Only notifications for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Der gewählte Aktualisierungskanal macht dedizierte Benachrichtigungen für Server Aktualisierungen obsolet.",
"The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
diff --git a/apps/updatenotification/l10n/en_GB.js b/apps/updatenotification/l10n/en_GB.js
index 39e4932ba12..733fce76dca 100644
--- a/apps/updatenotification/l10n/en_GB.js
+++ b/apps/updatenotification/l10n/en_GB.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"Update channel:" : "Update channel:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "You can always update to a newer version, but you can never downgrade to a more stable version.",
"Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
+ "No groups" : "No groups",
"Only notifications for app updates are available." : "Only notifications for app updates are available.",
"The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.",
"The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
diff --git a/apps/updatenotification/l10n/en_GB.json b/apps/updatenotification/l10n/en_GB.json
index 6c5998d0678..0a9ae5b4edb 100644
--- a/apps/updatenotification/l10n/en_GB.json
+++ b/apps/updatenotification/l10n/en_GB.json
@@ -27,6 +27,7 @@
"Update channel:" : "Update channel:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "You can always update to a newer version, but you can never downgrade to a more stable version.",
"Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
+ "No groups" : "No groups",
"Only notifications for app updates are available." : "Only notifications for app updates are available.",
"The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.",
"The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
diff --git a/apps/updatenotification/l10n/fi.js b/apps/updatenotification/l10n/fi.js
index 8f2fcd939a9..978e8fe9bee 100644
--- a/apps/updatenotification/l10n/fi.js
+++ b/apps/updatenotification/l10n/fi.js
@@ -8,6 +8,7 @@ OC.L10N.register(
"The update server could not be reached since %d days to check for new updates." : "Päivityspalvelinta ei ole tavoitettu %d päivään; uusia päivityksiä ei voida tarkistaa.",
"Please check the Nextcloud and server log files for errors." : "Tarkista Nextcloud- ja palvelinlokitiedostot virheiden osalta.",
"Update to %1$s is available." : "Kohteen %1$s päivitys on saatavilla.",
+ "Update to {serverAndVersion} is available." : "Päivitys {serverAndVersion} on saatavilla.",
"Update for {app} to version %s is available." : "Sovelluksen {app} päivitys versioon %s on saatavilla.",
"Update notification" : "Päivitysilmoitus",
"Displays update notifications for Nextcloud and provides the SSO for the updater." : "Näyttää Nextcloudin päivitysilmoitukset ja tarjoaa SSO:n (Single Sign-On) päivittäjälle.",
@@ -16,6 +17,7 @@ OC.L10N.register(
"Apps missing compatible version" : "Sovellukset, joista ei ole yhteensopivaa versiota",
"View in store" : "Näytä kaupassa",
"Apps with compatible version" : "Sovellukset, joista on yhteensopiva versio",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Huomioi, ettei päivitys selaimen kautta ole suositeltu yli 100 käyttäjän instansseissa! Tee sen sijaan päivitys komentoriviltä.",
"Open updater" : "Avaa päivittäjä",
"Download now" : "Lataa heti",
"Please use the command line updater to update." : "Käytä komentorivipäivitintä päivittääksesi.",
@@ -23,9 +25,11 @@ OC.L10N.register(
"The update check is not yet finished. Please refresh the page." : "Päivitystarkistus ei ole vielä valmis. Päivitä sivu.",
"Your version is up to date." : "Versiosi on ajan tasalla.",
"A non-default update server is in use to be checked for updates:" : "Käytössä on muu kuin oletusarvoinen päivityspalvelin, jota käytetään päivitysten tarkistamiseen:",
+ "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." : "Voit vaihtaa päivityskanavan alapuolelta, se vaikuttaa myös sovellushallinnan sivuun. Jos vaihdat esimerkiksi beetakanavaan, sovellusten beetapäivityksiä tarjotaan sovellushallinnan sivun kautta.",
"Update channel:" : "Päivityskanava:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Voit aina päivittää uudempaan versioon, mutta et voi palata aikaisempaan vakaaseen versioon.",
"Notify members of the following groups about available updates:" : "Ilmoita seuraavien ryhmien jäsenille saatavilla olevista päivityksistä:",
+ "No groups" : "Ei ryhmiä",
"Only notifications for app updates are available." : "Vain ilmoitukset sovelluspäivityksistä on saatavilla.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Valittu päivityskanava tekee palvelimen omat ilmoitukset tarpeettomiksi.",
"The selected update channel does not support updates of the server." : "Valittu päivityskanava ei tue palvelimen päivityksiä.",
diff --git a/apps/updatenotification/l10n/fi.json b/apps/updatenotification/l10n/fi.json
index e2dd2785e6b..aa74c1b4fa8 100644
--- a/apps/updatenotification/l10n/fi.json
+++ b/apps/updatenotification/l10n/fi.json
@@ -6,6 +6,7 @@
"The update server could not be reached since %d days to check for new updates." : "Päivityspalvelinta ei ole tavoitettu %d päivään; uusia päivityksiä ei voida tarkistaa.",
"Please check the Nextcloud and server log files for errors." : "Tarkista Nextcloud- ja palvelinlokitiedostot virheiden osalta.",
"Update to %1$s is available." : "Kohteen %1$s päivitys on saatavilla.",
+ "Update to {serverAndVersion} is available." : "Päivitys {serverAndVersion} on saatavilla.",
"Update for {app} to version %s is available." : "Sovelluksen {app} päivitys versioon %s on saatavilla.",
"Update notification" : "Päivitysilmoitus",
"Displays update notifications for Nextcloud and provides the SSO for the updater." : "Näyttää Nextcloudin päivitysilmoitukset ja tarjoaa SSO:n (Single Sign-On) päivittäjälle.",
@@ -14,6 +15,7 @@
"Apps missing compatible version" : "Sovellukset, joista ei ole yhteensopivaa versiota",
"View in store" : "Näytä kaupassa",
"Apps with compatible version" : "Sovellukset, joista on yhteensopiva versio",
+ "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Huomioi, ettei päivitys selaimen kautta ole suositeltu yli 100 käyttäjän instansseissa! Tee sen sijaan päivitys komentoriviltä.",
"Open updater" : "Avaa päivittäjä",
"Download now" : "Lataa heti",
"Please use the command line updater to update." : "Käytä komentorivipäivitintä päivittääksesi.",
@@ -21,9 +23,11 @@
"The update check is not yet finished. Please refresh the page." : "Päivitystarkistus ei ole vielä valmis. Päivitä sivu.",
"Your version is up to date." : "Versiosi on ajan tasalla.",
"A non-default update server is in use to be checked for updates:" : "Käytössä on muu kuin oletusarvoinen päivityspalvelin, jota käytetään päivitysten tarkistamiseen:",
+ "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." : "Voit vaihtaa päivityskanavan alapuolelta, se vaikuttaa myös sovellushallinnan sivuun. Jos vaihdat esimerkiksi beetakanavaan, sovellusten beetapäivityksiä tarjotaan sovellushallinnan sivun kautta.",
"Update channel:" : "Päivityskanava:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Voit aina päivittää uudempaan versioon, mutta et voi palata aikaisempaan vakaaseen versioon.",
"Notify members of the following groups about available updates:" : "Ilmoita seuraavien ryhmien jäsenille saatavilla olevista päivityksistä:",
+ "No groups" : "Ei ryhmiä",
"Only notifications for app updates are available." : "Vain ilmoitukset sovelluspäivityksistä on saatavilla.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Valittu päivityskanava tekee palvelimen omat ilmoitukset tarpeettomiksi.",
"The selected update channel does not support updates of the server." : "Valittu päivityskanava ei tue palvelimen päivityksiä.",
diff --git a/apps/updatenotification/l10n/fr.js b/apps/updatenotification/l10n/fr.js
index 1a497ac15a4..0b7e6955831 100644
--- a/apps/updatenotification/l10n/fr.js
+++ b/apps/updatenotification/l10n/fr.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"Update channel:" : "Canal de mise à jour :",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Vous pouvez à tout moment mettre à jour votre instance Nextcloud vers une version plus récente. Vous ne pourrez cependant jamais revenir à une version antérieure en sélectionnant un canal plus stable.",
"Notify members of the following groups about available updates:" : "Notifier les membres des groupes suivants des mises à jours disponibles :",
+ "No groups" : "Aucun groupe",
"Only notifications for app updates are available." : "Seules les notifications de mises à jour d'applications sont disponibles. ",
"The selected update channel makes dedicated notifications for the server obsolete." : "Le canal de mise à jour sélectionné rend obsolètes les notifications dédiées au serveur.",
"The selected update channel does not support updates of the server." : "Le canal de mises à jour sélectionné ne supporte pas les mises à jour du serveur.",
diff --git a/apps/updatenotification/l10n/fr.json b/apps/updatenotification/l10n/fr.json
index fcad8d0e817..a2a3d37c776 100644
--- a/apps/updatenotification/l10n/fr.json
+++ b/apps/updatenotification/l10n/fr.json
@@ -27,6 +27,7 @@
"Update channel:" : "Canal de mise à jour :",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Vous pouvez à tout moment mettre à jour votre instance Nextcloud vers une version plus récente. Vous ne pourrez cependant jamais revenir à une version antérieure en sélectionnant un canal plus stable.",
"Notify members of the following groups about available updates:" : "Notifier les membres des groupes suivants des mises à jours disponibles :",
+ "No groups" : "Aucun groupe",
"Only notifications for app updates are available." : "Seules les notifications de mises à jour d'applications sont disponibles. ",
"The selected update channel makes dedicated notifications for the server obsolete." : "Le canal de mise à jour sélectionné rend obsolètes les notifications dédiées au serveur.",
"The selected update channel does not support updates of the server." : "Le canal de mises à jour sélectionné ne supporte pas les mises à jour du serveur.",
diff --git a/apps/updatenotification/l10n/sv.js b/apps/updatenotification/l10n/sv.js
index 45d9c857501..ed456d3ee78 100644
--- a/apps/updatenotification/l10n/sv.js
+++ b/apps/updatenotification/l10n/sv.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"Update channel:" : "Uppdateringskanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Du kan alltid uppdatera till en nyare version, men du kan aldrig nedgradera till en mer stabil version.",
"Notify members of the following groups about available updates:" : "Notifiera medlemmar i följande grupper om tillgängliga uppdateraingar:",
+ "No groups" : "Inga grupper",
"Only notifications for app updates are available." : "Endast notifikationer för appuppdateringar är tillgängliga.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Den valda uppdateringskanalen gör dedikerade aviseringar för servern förlegade.",
"The selected update channel does not support updates of the server." : "Den valda uppdateringskanalen stödjer inte uppdateringar för servern.",
diff --git a/apps/updatenotification/l10n/sv.json b/apps/updatenotification/l10n/sv.json
index a21726dcb0c..690a94c03ba 100644
--- a/apps/updatenotification/l10n/sv.json
+++ b/apps/updatenotification/l10n/sv.json
@@ -27,6 +27,7 @@
"Update channel:" : "Uppdateringskanal:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Du kan alltid uppdatera till en nyare version, men du kan aldrig nedgradera till en mer stabil version.",
"Notify members of the following groups about available updates:" : "Notifiera medlemmar i följande grupper om tillgängliga uppdateraingar:",
+ "No groups" : "Inga grupper",
"Only notifications for app updates are available." : "Endast notifikationer för appuppdateringar är tillgängliga.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Den valda uppdateringskanalen gör dedikerade aviseringar för servern förlegade.",
"The selected update channel does not support updates of the server." : "Den valda uppdateringskanalen stödjer inte uppdateringar för servern.",
diff --git a/apps/updatenotification/l10n/tr.js b/apps/updatenotification/l10n/tr.js
index aff2aa5c5e6..2d020ebe94e 100644
--- a/apps/updatenotification/l10n/tr.js
+++ b/apps/updatenotification/l10n/tr.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"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:",
+ "No groups" : "Bir grup yok",
"Only notifications for app updates are available." : "Yalnızca uygulama güncelleme bildirimleri kullanılabilir.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Seçilmiş güncelleme kanalı kullanımdan kalkmış sunucu bildirimleri için kullanılıyor.",
"The selected update channel does not support updates of the server." : "Seçilmiş güncelleme kanalı sunucunun güncellemelerini desteklemiyor.",
diff --git a/apps/updatenotification/l10n/tr.json b/apps/updatenotification/l10n/tr.json
index 87ce00b191e..9d7783bb0ea 100644
--- a/apps/updatenotification/l10n/tr.json
+++ b/apps/updatenotification/l10n/tr.json
@@ -27,6 +27,7 @@
"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:",
+ "No groups" : "Bir grup yok",
"Only notifications for app updates are available." : "Yalnızca uygulama güncelleme bildirimleri kullanılabilir.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Seçilmiş güncelleme kanalı kullanımdan kalkmış sunucu bildirimleri için kullanılıyor.",
"The selected update channel does not support updates of the server." : "Seçilmiş güncelleme kanalı sunucunun güncellemelerini desteklemiyor.",
diff --git a/apps/updatenotification/l10n/zh_HK.js b/apps/updatenotification/l10n/zh_HK.js
index 497abb22004..8f08b2b3b26 100644
--- a/apps/updatenotification/l10n/zh_HK.js
+++ b/apps/updatenotification/l10n/zh_HK.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"Update channel:" : "更新頻道:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "您可以更新到新版本,但無法降級到較穩定的版本。",
"Notify members of the following groups about available updates:" : "有可用更新時通知這些以下群組的成員:",
+ "No groups" : "沒有群組",
"Only notifications for app updates are available." : "只有應用程式更新通知可用。",
"The selected update channel makes dedicated notifications for the server obsolete." : "所選的更新頻道導致伺服器的專用通知過時。",
"The selected update channel does not support updates of the server." : "選定的更新頻道不支援伺服器更新。",
diff --git a/apps/updatenotification/l10n/zh_HK.json b/apps/updatenotification/l10n/zh_HK.json
index 24b0a140996..4af4ab5a0e7 100644
--- a/apps/updatenotification/l10n/zh_HK.json
+++ b/apps/updatenotification/l10n/zh_HK.json
@@ -27,6 +27,7 @@
"Update channel:" : "更新頻道:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "您可以更新到新版本,但無法降級到較穩定的版本。",
"Notify members of the following groups about available updates:" : "有可用更新時通知這些以下群組的成員:",
+ "No groups" : "沒有群組",
"Only notifications for app updates are available." : "只有應用程式更新通知可用。",
"The selected update channel makes dedicated notifications for the server obsolete." : "所選的更新頻道導致伺服器的專用通知過時。",
"The selected update channel does not support updates of the server." : "選定的更新頻道不支援伺服器更新。",
diff --git a/config/config.sample.php b/config/config.sample.php
index 703bebb28f4..19dcc66f279 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -165,13 +165,14 @@ $CONFIG = [
/**
* This sets the default language on your Nextcloud server, using ISO_639-1
* language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
- * French. It overrides automatic language detection on public pages like login
- * or shared items. User's language preferences configured under "personal ->
- * language" override this setting after they have logged in. Nextcloud has two
- * distinguished language codes for German, 'de' and 'de_DE'. 'de' is used for
- * informal German and 'de_DE' for formal German. By setting this value to 'de_DE'
- * you can enforce the formal version of German unless the user has chosen
- * something different explicitly.
+ * French. The default_language parameter is only used, when the browser does
+ * not send any language, and the user hasn’t configured own language
+ * preferences.
+ *
+ * Nextcloud has two distinguished language codes for German, 'de' and 'de_DE'.
+ * 'de' is used for informal German and 'de_DE' for formal German. By setting
+ * this value to 'de_DE' you can enforce the formal version of German unless
+ * the user has chosen something different explicitly.
*
* Defaults to ``en``
*/
diff --git a/core/Controller/ProfileApiController.php b/core/Controller/ProfileApiController.php
index a25ebaf846d..6d1b856929a 100644
--- a/core/Controller/ProfileApiController.php
+++ b/core/Controller/ProfileApiController.php
@@ -61,6 +61,7 @@ class ProfileApiController extends OCSController {
* @NoAdminRequired
* @NoSubAdminRequired
* @PasswordConfirmationRequired
+ * @UserRateThrottle(limit=40, period=600)
*/
public function setVisibility(string $targetUserId, string $paramId, string $visibility): DataResponse {
$requestingUser = $this->userSession->getUser();
diff --git a/core/css/apps.css b/core/css/apps.css
index 46492d4d494..b4f91759a90 100644
--- a/core/css/apps.css
+++ b/core/css/apps.css
@@ -1 +1 @@
-:root{--body-container-margin: calc(var(--default-grid-baseline) * 2);--body-container-radius: calc(var(--default-clickable-area) / 2 + var(--default-grid-baseline) * 2 - 2px);--body-height: calc(100% - env(safe-area-inset-bottom) - 50px - var(--body-container-margin))}@media screen and (max-width: 1024px){:root{--body-container-margin: 0px;--body-container-radius: 0px}}html{width:100%;height:100%;position:absolute;background-color:var(--color-background-plain, var(--color-main-background))}body{background-color:var(--color-background-plain, var(--color-main-background));background-image:var(--image-background, var(--image-background-default));background-size:cover;background-position:center;position:fixed;width:100%;height:calc(100vh - env(safe-area-inset-bottom))}h2{font-weight:bold;font-size:20px;margin-bottom:12px;line-height:30px;color:var(--color-text-light)}h3{font-size:16px;margin:12px 0;color:var(--color-text-light)}h4{font-size:14px}em{font-style:normal;color:var(--color-text-lighter)}dl{padding:12px 0}dt,dd{display:inline-block;padding:12px;padding-left:0}dt{width:130px;white-space:nowrap;text-align:right}kbd{padding:4px 10px;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.2);border-radius:var(--border-radius);display:inline-block;white-space:nowrap}#content[class*=app-] *{box-sizing:border-box}#app-navigation:not(.vue){--border-radius-pill: calc(var(--default-clickable-area) / 2);width:300px;z-index:500;overflow-y:auto;overflow-x:hidden;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);-webkit-user-select:none;position:sticky;height:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0}#app-navigation:not(.vue) .app-navigation-new{display:block;padding:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue) .app-navigation-new button{display:inline-block;width:100%;padding:10px;padding-left:34px;background-position:10px center;text-align:left;margin:0}#app-navigation:not(.vue) li{position:relative}#app-navigation:not(.vue)>ul{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;padding:calc(var(--default-grid-baseline)*2);padding-bottom:0}#app-navigation:not(.vue)>ul:last-child{padding-bottom:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue)>ul>li{display:inline-flex;flex-wrap:wrap;order:1;flex-shrink:0;margin:0;margin-bottom:3px;width:100%;border-radius:var(--border-radius-pill)}#app-navigation:not(.vue)>ul>li.pinned{order:2}#app-navigation:not(.vue)>ul>li.pinned.first-pinned{margin-top:auto !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-deleted{padding-left:44px !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-edit{padding-left:38px !important}#app-navigation:not(.vue)>ul>li a:hover,#app-navigation:not(.vue)>ul>li a:hover>a,#app-navigation:not(.vue)>ul>li a:focus,#app-navigation:not(.vue)>ul>li a:focus>a{background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li a:focus-visible{box-shadow:var(--color-primary) inset 0 0 0 2px;outline:none}#app-navigation:not(.vue)>ul>li.active,#app-navigation:not(.vue)>ul>li.active>a,#app-navigation:not(.vue)>ul>li a:active,#app-navigation:not(.vue)>ul>li a:active>a,#app-navigation:not(.vue)>ul>li a.selected,#app-navigation:not(.vue)>ul>li a.selected>a,#app-navigation:not(.vue)>ul>li a.active,#app-navigation:not(.vue)>ul>li a.active>a{background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li.icon-loading-small:after{left:22px;top:22px}#app-navigation:not(.vue)>ul>li.deleted>ul,#app-navigation:not(.vue)>ul>li.collapsible:not(.open)>ul{display:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption{font-weight:bold;line-height:44px;padding:0 44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption:not(:first-child){margin-top:22px}#app-navigation:not(.vue)>ul>li>ul{flex:0 1 auto;width:100%;position:relative}#app-navigation:not(.vue)>ul>li>ul>li{display:inline-flex;flex-wrap:wrap;padding-left:44px;width:100%;margin-bottom:3px}#app-navigation:not(.vue)>ul>li>ul>li:hover,#app-navigation:not(.vue)>ul>li>ul>li:hover>a,#app-navigation:not(.vue)>ul>li>ul>li:focus,#app-navigation:not(.vue)>ul>li>ul>li:focus>a{border-radius:var(--border-radius-pill);background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li>ul>li.active,#app-navigation:not(.vue)>ul>li>ul>li.active>a,#app-navigation:not(.vue)>ul>li>ul>li a.selected,#app-navigation:not(.vue)>ul>li>ul>li a.selected>a{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small:after{left:22px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-deleted{margin-left:4px;padding-left:84px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-edit{margin-left:4px;padding-left:78px !important}#app-navigation:not(.vue)>ul>li,#app-navigation:not(.vue)>ul>li>ul>li{position:relative;box-sizing:border-box}#app-navigation:not(.vue)>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li.icon-loading-small>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>a,#app-navigation:not(.vue)>ul>li>ul>li>a{background-size:16px 16px;background-position:14px center;background-repeat:no-repeat;display:block;justify-content:space-between;line-height:44px;min-height:44px;padding:0 12px 0 14px;overflow:hidden;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--border-radius-pill);color:var(--color-main-text);flex:1 1 0px;z-index:100}#app-navigation:not(.vue)>ul>li>a.svg,#app-navigation:not(.vue)>ul>li>ul>li>a.svg{padding:0 12px 0 44px}#app-navigation:not(.vue)>ul>li>a.svg :focus-visible,#app-navigation:not(.vue)>ul>li>ul>li>a.svg :focus-visible{padding:0 8px 0 42px}#app-navigation:not(.vue)>ul>li>a:first-child img,#app-navigation:not(.vue)>ul>li>ul>li>a:first-child img{margin-right:11px;width:16px;height:16px;filter:var(--background-invert-if-dark)}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils{display:inline-block;float:right}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter{padding-right:0 !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet{position:absolute;display:block;margin:16px;width:12px;height:12px;border:none;border-radius:50%;cursor:pointer;transition:background 100ms ease-in-out}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet+a,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet+a{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-menu,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-menu{top:44px}#app-navigation:not(.vue)>ul>li.editing .app-navigation-entry-edit,#app-navigation:not(.vue)>ul>li>ul>li.editing .app-navigation-entry-edit{opacity:1;z-index:250}#app-navigation:not(.vue)>ul>li.deleted .app-navigation-entry-deleted,#app-navigation:not(.vue)>ul>li>ul>li.deleted .app-navigation-entry-deleted{transform:translateX(0);z-index:250}#app-navigation:not(.vue).hidden{display:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{border:0;opacity:.5;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .collapsible .collapse{opacity:0;position:absolute;width:44px;height:44px;margin:0;z-index:110;left:0}#app-navigation:not(.vue) .collapsible .collapse:focus-visible{opacity:1;border-width:0;box-shadow:inset 0 0 0 2px var(--color-primary);background:none}#app-navigation:not(.vue) .collapsible:before{position:absolute;height:44px;width:44px;margin:0;padding:0;background:none;background-image:var(--icon-triangle-s-dark);background-size:16px;background-repeat:no-repeat;background-position:center;border:none;border-radius:0;outline:none !important;box-shadow:none;content:" ";opacity:0;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);z-index:105;border-radius:50%;transition:opacity 100ms ease-in-out}#app-navigation:not(.vue) .collapsible>a:first-child{padding-left:44px}#app-navigation:not(.vue) .collapsible:hover:before,#app-navigation:not(.vue) .collapsible:focus:before{opacity:1}#app-navigation:not(.vue) .collapsible:hover>a,#app-navigation:not(.vue) .collapsible:focus>a{background-image:none}#app-navigation:not(.vue) .collapsible:hover>.app-navigation-entry-bullet,#app-navigation:not(.vue) .collapsible:focus>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue) .collapsible.open:before{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}#app-navigation:not(.vue) .app-navigation-entry-utils{flex:0 1 auto}#app-navigation:not(.vue) .app-navigation-entry-utils ul{display:flex !important;align-items:center;justify-content:flex-end}#app-navigation:not(.vue) .app-navigation-entry-utils li{width:44px !important;height:44px}#app-navigation:not(.vue) .app-navigation-entry-utils button{height:100%;width:100%;margin:0;box-shadow:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]){background-image:var(--icon-more-dark)}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter{overflow:hidden;text-align:right;font-size:9pt;line-height:44px;padding:0 12px}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted{padding:0;text-align:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span{padding:2px 5px;border-radius:10px;background-color:var(--color-primary);color:var(--color-primary-text)}#app-navigation:not(.vue) .app-navigation-entry-edit{padding-left:5px;padding-right:5px;display:block;width:calc(100% - 1px);transition:opacity 250ms ease-in-out;opacity:0;position:absolute;background-color:var(--color-main-background);z-index:-1}#app-navigation:not(.vue) .app-navigation-entry-edit form,#app-navigation:not(.vue) .app-navigation-entry-edit div{display:inline-flex;width:100%}#app-navigation:not(.vue) .app-navigation-entry-edit input{padding:5px;margin-right:0;height:38px}#app-navigation:not(.vue) .app-navigation-entry-edit input:hover,#app-navigation:not(.vue) .app-navigation-entry-edit input:focus{z-index:1}#app-navigation:not(.vue) .app-navigation-entry-edit input[type=text]{width:100%;min-width:0;border-bottom-right-radius:0;border-top-right-radius:0}#app-navigation:not(.vue) .app-navigation-entry-edit button,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]){width:36px;height:38px;flex:0 0 36px}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:last-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:last-child){border-radius:0 !important}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:first-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:first-child){margin-left:-1px}#app-navigation:not(.vue) .app-navigation-entry-edit button:last-child,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):last-child{border-bottom-right-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-left-radius:0;border-top-left-radius:0}#app-navigation:not(.vue) .app-navigation-entry-deleted{display:inline-flex;padding-left:44px;transform:translateX(300px)}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-description{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 0px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{margin:0;height:44px;width:44px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{opacity:1}#app-navigation:not(.vue) .app-navigation-entry-edit,#app-navigation:not(.vue) .app-navigation-entry-deleted{width:calc(100% - 1px);transition:transform 250ms ease-in-out,opacity 250ms ease-in-out,z-index 250ms ease-in-out;position:absolute;left:0;background-color:var(--color-main-background);box-sizing:border-box}#app-navigation:not(.vue) .drag-and-drop{-webkit-transition:padding-bottom 500ms ease 0s;transition:padding-bottom 500ms ease 0s;padding-bottom:40px}#app-navigation:not(.vue) .error{color:var(--color-error)}#app-navigation:not(.vue) .app-navigation-entry-utils ul,#app-navigation:not(.vue) .app-navigation-entry-menu ul{list-style-type:none}#content{box-sizing:border-box;position:static;margin:var(--body-container-margin);margin-top:50px;padding:0;display:flex;width:calc(100% - var(--body-container-margin)*2);height:var(--body-height);border-radius:var(--body-container-radius);overflow:hidden}#content:not(.with-sidebar--full){position:fixed}@media only screen and (max-width: 1024px){#content{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}#app-navigation{border-top-left-radius:var(--border-radius-large)}#app-sidebar{border-top-right-radius:var(--border-radius-large)}}#app-content{z-index:1000;background-color:var(--color-main-background);flex-basis:100vw;overflow:auto;position:initial;height:100%}#app-content>.section:first-child{border-top:none}#app-content #app-content-wrapper{display:flex;position:relative;align-items:stretch;min-height:100%}#app-content #app-content-wrapper .app-content-details{flex:1 1 524px}#app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back{display:none}#app-sidebar{width:27vw;min-width:300px;max-width:500px;display:block;position:-webkit-sticky;position:sticky;top:50px;right:0;overflow-y:auto;overflow-x:hidden;z-index:1500;opacity:.7px;height:calc(100vh - 50px);background:var(--color-main-background);border-left:1px solid var(--color-border);flex-shrink:0}#app-sidebar.disappear{display:none}#app-settings{margin-top:auto}#app-settings.open #app-settings-content,#app-settings.opened #app-settings-content{display:block}#app-settings-content{display:none;padding:calc(var(--default-grid-baseline)*2);padding-top:0;padding-left:calc(var(--default-grid-baseline)*4);max-height:300px;overflow-y:auto;box-sizing:border-box}#app-settings-content input[type=text]{width:93%}#app-settings-content .info-text{padding:5px 0 7px 22px;color:var(--color-text-lighter)}#app-settings-content input[type=checkbox].radio+label,#app-settings-content input[type=checkbox].checkbox+label,#app-settings-content input[type=radio].radio+label,#app-settings-content input[type=radio].checkbox+label{display:inline-block;width:100%;padding:5px 0}#app-settings-header{box-sizing:border-box;background-color:rgba(0,0,0,0);overflow:hidden;border-radius:calc(var(--default-clickable-area)/2);padding:calc(var(--default-grid-baseline)*2);padding-top:0}#app-settings-header .settings-button{display:flex;align-items:center;height:44px;width:100%;padding:0;margin:0;background-color:rgba(0,0,0,0);box-shadow:none;border:0;border-radius:calc(var(--default-clickable-area)/2);text-align:left;font-weight:normal;font-size:100%;opacity:.8;color:var(--color-main-text)}#app-settings-header .settings-button.opened{border-top:solid 1px var(--color-border);background-color:var(--color-main-background);margin-top:8px}#app-settings-header .settings-button:hover,#app-settings-header .settings-button:focus{background-color:var(--color-background-hover)}#app-settings-header .settings-button::before{background-image:var(--icon-settings-dark);background-position:14px center;background-repeat:no-repeat;content:"";width:44px;height:44px;top:0;left:0;display:block}#app-settings-header .settings-button:focus-visible{box-shadow:0 0 0 2px inset var(--color-primary) !important;background-position:12px center}.section{display:block;padding:30px;margin-bottom:24px}.section.hidden{display:none !important}.section input[type=checkbox],.section input[type=radio]{vertical-align:-2px;margin-right:4px}.sub-section{position:relative;margin-top:10px;margin-left:27px;margin-bottom:10px}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}.tabHeaders{display:flex;margin-bottom:16px}.tabHeaders .tabHeader{display:flex;flex-direction:column;flex-grow:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color-text-lighter);margin-bottom:1px;padding:5px}.tabHeaders .tabHeader.hidden{display:none}.tabHeaders .tabHeader:first-child{padding-left:15px}.tabHeaders .tabHeader:last-child{padding-right:15px}.tabHeaders .tabHeader .icon{display:inline-block;width:100%;height:16px;background-size:16px;vertical-align:middle;margin-top:-2px;margin-right:3px;opacity:.7;cursor:pointer}.tabHeaders .tabHeader a{color:var(--color-text-lighter);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis}.tabHeaders .tabHeader.selected{font-weight:bold}.tabHeaders .tabHeader.selected,.tabHeaders .tabHeader:hover,.tabHeaders .tabHeader:focus{margin-bottom:0px;color:var(--color-main-text);border-bottom:1px solid var(--color-text-lighter)}.tabsContainer{clear:left}.tabsContainer .tab{padding:0 15px 15px}.contact .popovermenu ul>li>a>img,.popover__menu>li>a>img{filter:var(--background-invert-if-dark)}.contact .popovermenu ul>li>a>img[src^=data],.popover__menu>li>a>img[src^=data]{filter:none}.bubble,.app-navigation-entry-menu,.popovermenu{position:absolute;background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--border-radius-large);padding:3px;z-index:110;margin:5px;margin-top:-5px;right:0;filter:drop-shadow(0 1px 3px var(--color-box-shadow));display:none;will-change:filter}.bubble:after,.app-navigation-entry-menu:after,.popovermenu:after{bottom:100%;right:7px;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);border-width:9px}.bubble.menu-center,.app-navigation-entry-menu.menu-center,.popovermenu.menu-center{transform:translateX(50%);right:50%;margin-right:0}.bubble.menu-center:after,.app-navigation-entry-menu.menu-center:after,.popovermenu.menu-center:after{right:50%;transform:translateX(50%)}.bubble.menu-left,.app-navigation-entry-menu.menu-left,.popovermenu.menu-left{right:auto;left:0;margin-right:0}.bubble.menu-left:after,.app-navigation-entry-menu.menu-left:after,.popovermenu.menu-left:after{left:6px;right:auto}.bubble.open,.app-navigation-entry-menu.open,.popovermenu.open{display:block}.bubble.contactsmenu-popover,.app-navigation-entry-menu.contactsmenu-popover,.popovermenu.contactsmenu-popover{margin:0}.bubble ul,.app-navigation-entry-menu ul,.popovermenu ul{display:flex !important;flex-direction:column}.bubble li,.app-navigation-entry-menu li,.popovermenu li{display:flex;flex:0 0 auto}.bubble li.hidden,.app-navigation-entry-menu li.hidden,.popovermenu li.hidden{display:none}.bubble li>button,.bubble li>a,.bubble li>.menuitem,.app-navigation-entry-menu li>button,.app-navigation-entry-menu li>a,.app-navigation-entry-menu li>.menuitem,.popovermenu li>button,.popovermenu li>a,.popovermenu li>.menuitem{cursor:pointer;line-height:44px;border:0;border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{min-width:0;min-height:0;background-position:14px center;background-size:16px}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"]{padding:22px 0 22px 44px}.bubble li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{padding:0 14px 0 44px !important}.bubble li>button:hover,.bubble li>button:focus,.bubble li>a:hover,.bubble li>a:focus,.bubble li>.menuitem:hover,.bubble li>.menuitem:focus,.app-navigation-entry-menu li>button:hover,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>a:hover,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>.menuitem:hover,.app-navigation-entry-menu li>.menuitem:focus,.popovermenu li>button:hover,.popovermenu li>button:focus,.popovermenu li>a:hover,.popovermenu li>a:focus,.popovermenu li>.menuitem:hover,.popovermenu li>.menuitem:focus{background-color:var(--color-background-hover)}.bubble li>button:focus,.bubble li>button:focus-visible,.bubble li>a:focus,.bubble li>a:focus-visible,.bubble li>.menuitem:focus,.bubble li>.menuitem:focus-visible,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>button:focus-visible,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>a:focus-visible,.app-navigation-entry-menu li>.menuitem:focus,.app-navigation-entry-menu li>.menuitem:focus-visible,.popovermenu li>button:focus,.popovermenu li>button:focus-visible,.popovermenu li>a:focus,.popovermenu li>a:focus-visible,.popovermenu li>.menuitem:focus,.popovermenu li>.menuitem:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element)}.bubble li>button.active,.bubble li>a.active,.bubble li>.menuitem.active,.app-navigation-entry-menu li>button.active,.app-navigation-entry-menu li>a.active,.app-navigation-entry-menu li>.menuitem.active,.popovermenu li>button.active,.popovermenu li>a.active,.popovermenu li>.menuitem.active{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}.bubble li>button.action,.bubble li>a.action,.bubble li>.menuitem.action,.app-navigation-entry-menu li>button.action,.app-navigation-entry-menu li>a.action,.app-navigation-entry-menu li>.menuitem.action,.popovermenu li>button.action,.popovermenu li>a.action,.popovermenu li>.menuitem.action{padding:inherit !important}.bubble li>button>span,.bubble li>a>span,.bubble li>.menuitem>span,.app-navigation-entry-menu li>button>span,.app-navigation-entry-menu li>a>span,.app-navigation-entry-menu li>.menuitem>span,.popovermenu li>button>span,.popovermenu li>a>span,.popovermenu li>.menuitem>span{cursor:pointer;white-space:nowrap}.bubble li>button>p,.bubble li>a>p,.bubble li>.menuitem>p,.app-navigation-entry-menu li>button>p,.app-navigation-entry-menu li>a>p,.app-navigation-entry-menu li>.menuitem>p,.popovermenu li>button>p,.popovermenu li>a>p,.popovermenu li>.menuitem>p{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}.bubble li>button>select,.bubble li>a>select,.bubble li>.menuitem>select,.app-navigation-entry-menu li>button>select,.app-navigation-entry-menu li>a>select,.app-navigation-entry-menu li>.menuitem>select,.popovermenu li>button>select,.popovermenu li>a>select,.popovermenu li>.menuitem>select{margin:0;margin-left:6px}.bubble li>button:not(:empty),.bubble li>a:not(:empty),.bubble li>.menuitem:not(:empty),.app-navigation-entry-menu li>button:not(:empty),.app-navigation-entry-menu li>a:not(:empty),.app-navigation-entry-menu li>.menuitem:not(:empty),.popovermenu li>button:not(:empty),.popovermenu li>a:not(:empty),.popovermenu li>.menuitem:not(:empty){padding-right:14px !important}.bubble li>button>img,.bubble li>a>img,.bubble li>.menuitem>img,.app-navigation-entry-menu li>button>img,.app-navigation-entry-menu li>a>img,.app-navigation-entry-menu li>.menuitem>img,.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:16px;padding:14px}.bubble li>button>input.radio+label,.bubble li>button>input.checkbox+label,.bubble li>a>input.radio+label,.bubble li>a>input.checkbox+label,.bubble li>.menuitem>input.radio+label,.bubble li>.menuitem>input.checkbox+label,.app-navigation-entry-menu li>button>input.radio+label,.app-navigation-entry-menu li>button>input.checkbox+label,.app-navigation-entry-menu li>a>input.radio+label,.app-navigation-entry-menu li>a>input.checkbox+label,.app-navigation-entry-menu li>.menuitem>input.radio+label,.app-navigation-entry-menu li>.menuitem>input.checkbox+label,.popovermenu li>button>input.radio+label,.popovermenu li>button>input.checkbox+label,.popovermenu li>a>input.radio+label,.popovermenu li>a>input.checkbox+label,.popovermenu li>.menuitem>input.radio+label,.popovermenu li>.menuitem>input.checkbox+label{padding:0 !important;width:100%}.bubble li>button>input.checkbox+label::before,.bubble li>a>input.checkbox+label::before,.bubble li>.menuitem>input.checkbox+label::before,.app-navigation-entry-menu li>button>input.checkbox+label::before,.app-navigation-entry-menu li>a>input.checkbox+label::before,.app-navigation-entry-menu li>.menuitem>input.checkbox+label::before,.popovermenu li>button>input.checkbox+label::before,.popovermenu li>a>input.checkbox+label::before,.popovermenu li>.menuitem>input.checkbox+label::before{margin:-2px 13px 0}.bubble li>button>input.radio+label::before,.bubble li>a>input.radio+label::before,.bubble li>.menuitem>input.radio+label::before,.app-navigation-entry-menu li>button>input.radio+label::before,.app-navigation-entry-menu li>a>input.radio+label::before,.app-navigation-entry-menu li>.menuitem>input.radio+label::before,.popovermenu li>button>input.radio+label::before,.popovermenu li>a>input.radio+label::before,.popovermenu li>.menuitem>input.radio+label::before{margin:-2px 12px 0}.bubble li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}.bubble li>button form,.bubble li>a form,.bubble li>.menuitem form,.app-navigation-entry-menu li>button form,.app-navigation-entry-menu li>a form,.app-navigation-entry-menu li>.menuitem form,.popovermenu li>button form,.popovermenu li>a form,.popovermenu li>.menuitem form{display:flex;flex:1 1 auto;align-items:center}.bubble li>button form:not(:first-child),.bubble li>a form:not(:first-child),.bubble li>.menuitem form:not(:first-child),.app-navigation-entry-menu li>button form:not(:first-child),.app-navigation-entry-menu li>a form:not(:first-child),.app-navigation-entry-menu li>.menuitem form:not(:first-child),.popovermenu li>button form:not(:first-child),.popovermenu li>a form:not(:first-child),.popovermenu li>.menuitem form:not(:first-child){margin-left:5px}.bubble li>button>span.hidden+form,.bubble li>button>span[style*="display:none"]+form,.bubble li>a>span.hidden+form,.bubble li>a>span[style*="display:none"]+form,.bubble li>.menuitem>span.hidden+form,.bubble li>.menuitem>span[style*="display:none"]+form,.app-navigation-entry-menu li>button>span.hidden+form,.app-navigation-entry-menu li>button>span[style*="display:none"]+form,.app-navigation-entry-menu li>a>span.hidden+form,.app-navigation-entry-menu li>a>span[style*="display:none"]+form,.app-navigation-entry-menu li>.menuitem>span.hidden+form,.app-navigation-entry-menu li>.menuitem>span[style*="display:none"]+form,.popovermenu li>button>span.hidden+form,.popovermenu li>button>span[style*="display:none"]+form,.popovermenu li>a>span.hidden+form,.popovermenu li>a>span[style*="display:none"]+form,.popovermenu li>.menuitem>span.hidden+form,.popovermenu li>.menuitem>span[style*="display:none"]+form{margin-left:0}.bubble li>button input,.bubble li>a input,.bubble li>.menuitem input,.app-navigation-entry-menu li>button input,.app-navigation-entry-menu li>a input,.app-navigation-entry-menu li>.menuitem input,.popovermenu li>button input,.popovermenu li>a input,.popovermenu li>.menuitem input{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}.bubble li>button input:not(:first-child),.bubble li>a input:not(:first-child),.bubble li>.menuitem input:not(:first-child),.app-navigation-entry-menu li>button input:not(:first-child),.app-navigation-entry-menu li>a input:not(:first-child),.app-navigation-entry-menu li>.menuitem input:not(:first-child),.popovermenu li>button input:not(:first-child),.popovermenu li>a input:not(:first-child),.popovermenu li>.menuitem input:not(:first-child){margin-left:5px}.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input{margin-top:12px}.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input{margin-bottom:0px}.bubble li>button,.app-navigation-entry-menu li>button,.popovermenu li>button{padding:0}.bubble li>button span,.app-navigation-entry-menu li>button span,.popovermenu li>button span{opacity:1}.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:44px;height:44px}.app-content-list{position:-webkit-sticky;position:relative;top:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform 250ms ease-in-out;min-height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;flex:1 1 200px;min-width:200px;max-width:300px}.app-content-list .app-content-list-item{position:relative;height:68px;cursor:pointer;padding:10px 7px;display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto}.app-content-list .app-content-list-item>[class^=icon-],.app-content-list .app-content-list-item>[class*=" icon-"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]{order:4;width:24px;height:24px;margin:-7px;padding:22px;opacity:.3;cursor:pointer}.app-content-list .app-content-list-item>[class^=icon-]:hover,.app-content-list .app-content-list-item>[class^=icon-]:focus,.app-content-list .app-content-list-item>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:focus{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:focus{opacity:1}.app-content-list .app-content-list-item>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>[class*=" icon-"].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"].icon-starred{opacity:1}.app-content-list .app-content-list-item:hover,.app-content-list .app-content-list-item:focus,.app-content-list .app-content-list-item.active{background-color:var(--color-background-dark)}.app-content-list .app-content-list-item:hover .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item:focus .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item.active .app-content-list-item-checkbox.checkbox+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item .app-content-list-item-star{position:absolute;height:40px;width:40px;z-index:50}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label+.app-content-list-item-icon{opacity:.7}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label{top:14px;left:7px;display:none}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label::before{margin:0}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label~.app-content-list-item-star{display:none}.app-content-list .app-content-list-item .app-content-list-item-star{display:flex;top:10px;left:32px;background-size:16px;height:20px;width:20px;margin:0;padding:0}.app-content-list .app-content-list-item .app-content-list-item-icon{position:absolute;display:inline-block;height:40px;width:40px;line-height:40px;border-radius:50%;vertical-align:middle;margin-right:10px;color:#fff;text-align:center;font-size:1.5em;text-transform:capitalize;object-fit:cover;user-select:none;cursor:pointer;top:50%;margin-top:-20px}.app-content-list .app-content-list-item .app-content-list-item-line-one,.app-content-list .app-content-list-item .app-content-list-item-line-two{display:block;padding-left:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1;flex:1 1 0px;padding-right:10px;cursor:pointer}.app-content-list .app-content-list-item .app-content-list-item-line-two{opacity:.5;order:3;flex:1 0;flex-basis:calc(100% - 44px)}.app-content-list .app-content-list-item .app-content-list-item-details{order:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;opacity:.5;font-size:80%;user-select:none}.app-content-list .app-content-list-item .app-content-list-item-menu{order:4;position:relative}.app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu{margin:0;right:-2px}.app-content-list.selection .app-content-list-item-checkbox.checkbox+label{display:flex}/*# sourceMappingURL=apps.css.map */
+:root{--body-container-margin: calc(var(--default-grid-baseline) * 2);--body-container-radius: calc(var(--default-clickable-area) / 2 + var(--default-grid-baseline) * 2 - 2px);--body-height: calc(100% - env(safe-area-inset-bottom) - 50px - var(--body-container-margin))}@media screen and (max-width: 1024px){:root{--body-container-margin: 0px;--body-container-radius: 0px}}html{width:100%;height:100%;position:absolute;background-color:var(--color-background-plain, var(--color-main-background))}body{background-color:var(--color-background-plain, var(--color-main-background));background-image:var(--image-background, var(--image-background-default));background-size:cover;background-position:center;position:fixed;width:100%;height:calc(100vh - env(safe-area-inset-bottom))}h2{font-weight:bold;font-size:20px;margin-bottom:12px;line-height:30px;color:var(--color-text-light)}h3{font-size:16px;margin:12px 0;color:var(--color-text-light)}h4{font-size:14px}em{font-style:normal;color:var(--color-text-lighter)}dl{padding:12px 0}dt,dd{display:inline-block;padding:12px;padding-left:0}dt{width:130px;white-space:nowrap;text-align:right}kbd{padding:4px 10px;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.2);border-radius:var(--border-radius);display:inline-block;white-space:nowrap}#content[class*=app-] *{box-sizing:border-box}#app-navigation:not(.vue){--border-radius-pill: calc(var(--default-clickable-area) / 2);width:300px;z-index:500;overflow-y:auto;overflow-x:hidden;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);-webkit-user-select:none;position:sticky;height:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0}#app-navigation:not(.vue) .app-navigation-new{display:block;padding:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue) .app-navigation-new button{display:inline-block;width:100%;padding:10px;padding-left:34px;background-position:10px center;text-align:left;margin:0}#app-navigation:not(.vue) li{position:relative}#app-navigation:not(.vue)>ul{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;padding:calc(var(--default-grid-baseline)*2);padding-bottom:0}#app-navigation:not(.vue)>ul:last-child{padding-bottom:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue)>ul>li{display:inline-flex;flex-wrap:wrap;order:1;flex-shrink:0;margin:0;margin-bottom:3px;width:100%;border-radius:var(--border-radius-pill)}#app-navigation:not(.vue)>ul>li.pinned{order:2}#app-navigation:not(.vue)>ul>li.pinned.first-pinned{margin-top:auto !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-deleted{padding-left:44px !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-edit{padding-left:38px !important}#app-navigation:not(.vue)>ul>li a:hover,#app-navigation:not(.vue)>ul>li a:hover>a,#app-navigation:not(.vue)>ul>li a:focus,#app-navigation:not(.vue)>ul>li a:focus>a{background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li a:focus-visible{box-shadow:var(--color-primary) inset 0 0 0 2px;outline:none}#app-navigation:not(.vue)>ul>li.active,#app-navigation:not(.vue)>ul>li.active>a,#app-navigation:not(.vue)>ul>li a:active,#app-navigation:not(.vue)>ul>li a:active>a,#app-navigation:not(.vue)>ul>li a.selected,#app-navigation:not(.vue)>ul>li a.selected>a,#app-navigation:not(.vue)>ul>li a.active,#app-navigation:not(.vue)>ul>li a.active>a{background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li.icon-loading-small:after{left:22px;top:22px}#app-navigation:not(.vue)>ul>li.deleted>ul,#app-navigation:not(.vue)>ul>li.collapsible:not(.open)>ul{display:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption{font-weight:bold;line-height:44px;padding:0 44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption:not(:first-child){margin-top:22px}#app-navigation:not(.vue)>ul>li>ul{flex:0 1 auto;width:100%;position:relative}#app-navigation:not(.vue)>ul>li>ul>li{display:inline-flex;flex-wrap:wrap;padding-left:44px;width:100%;margin-bottom:3px}#app-navigation:not(.vue)>ul>li>ul>li:hover,#app-navigation:not(.vue)>ul>li>ul>li:hover>a,#app-navigation:not(.vue)>ul>li>ul>li:focus,#app-navigation:not(.vue)>ul>li>ul>li:focus>a{border-radius:var(--border-radius-pill);background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li>ul>li.active,#app-navigation:not(.vue)>ul>li>ul>li.active>a,#app-navigation:not(.vue)>ul>li>ul>li a.selected,#app-navigation:not(.vue)>ul>li>ul>li a.selected>a{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small:after{left:22px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-deleted{margin-left:4px;padding-left:84px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-edit{margin-left:4px;padding-left:78px !important}#app-navigation:not(.vue)>ul>li,#app-navigation:not(.vue)>ul>li>ul>li{position:relative;box-sizing:border-box}#app-navigation:not(.vue)>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li.icon-loading-small>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>a,#app-navigation:not(.vue)>ul>li>ul>li>a{background-size:16px 16px;background-position:14px center;background-repeat:no-repeat;display:block;justify-content:space-between;line-height:44px;min-height:44px;padding:0 12px 0 14px;overflow:hidden;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--border-radius-pill);color:var(--color-main-text);flex:1 1 0px;z-index:100}#app-navigation:not(.vue)>ul>li>a.svg,#app-navigation:not(.vue)>ul>li>ul>li>a.svg{padding:0 12px 0 44px}#app-navigation:not(.vue)>ul>li>a.svg :focus-visible,#app-navigation:not(.vue)>ul>li>ul>li>a.svg :focus-visible{padding:0 8px 0 42px}#app-navigation:not(.vue)>ul>li>a:first-child img,#app-navigation:not(.vue)>ul>li>ul>li>a:first-child img{margin-right:11px;width:16px;height:16px;filter:var(--background-invert-if-dark)}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils{display:inline-block;float:right}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter{padding-right:0 !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet{position:absolute;display:block;margin:16px;width:12px;height:12px;border:none;border-radius:50%;cursor:pointer;transition:background 100ms ease-in-out}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet+a,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet+a{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-menu,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-menu{top:44px}#app-navigation:not(.vue)>ul>li.editing .app-navigation-entry-edit,#app-navigation:not(.vue)>ul>li>ul>li.editing .app-navigation-entry-edit{opacity:1;z-index:250}#app-navigation:not(.vue)>ul>li.deleted .app-navigation-entry-deleted,#app-navigation:not(.vue)>ul>li>ul>li.deleted .app-navigation-entry-deleted{transform:translateX(0);z-index:250}#app-navigation:not(.vue).hidden{display:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{border:0;opacity:.5;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .collapsible .collapse{opacity:0;position:absolute;width:44px;height:44px;margin:0;z-index:110;left:0}#app-navigation:not(.vue) .collapsible .collapse:focus-visible{opacity:1;border-width:0;box-shadow:inset 0 0 0 2px var(--color-primary);background:none}#app-navigation:not(.vue) .collapsible:before{position:absolute;height:44px;width:44px;margin:0;padding:0;background:none;background-image:var(--icon-triangle-s-dark);background-size:16px;background-repeat:no-repeat;background-position:center;border:none;border-radius:0;outline:none !important;box-shadow:none;content:" ";opacity:0;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);z-index:105;border-radius:50%;transition:opacity 100ms ease-in-out}#app-navigation:not(.vue) .collapsible>a:first-child{padding-left:44px}#app-navigation:not(.vue) .collapsible:hover:before,#app-navigation:not(.vue) .collapsible:focus:before{opacity:1}#app-navigation:not(.vue) .collapsible:hover>a,#app-navigation:not(.vue) .collapsible:focus>a{background-image:none}#app-navigation:not(.vue) .collapsible:hover>.app-navigation-entry-bullet,#app-navigation:not(.vue) .collapsible:focus>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue) .collapsible.open:before{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}#app-navigation:not(.vue) .app-navigation-entry-utils{flex:0 1 auto}#app-navigation:not(.vue) .app-navigation-entry-utils ul{display:flex !important;align-items:center;justify-content:flex-end}#app-navigation:not(.vue) .app-navigation-entry-utils li{width:44px !important;height:44px}#app-navigation:not(.vue) .app-navigation-entry-utils button{height:100%;width:100%;margin:0;box-shadow:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]){background-image:var(--icon-more-dark)}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter{overflow:hidden;text-align:right;font-size:9pt;line-height:44px;padding:0 12px}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted{padding:0;text-align:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span{padding:2px 5px;border-radius:10px;background-color:var(--color-primary);color:var(--color-primary-text)}#app-navigation:not(.vue) .app-navigation-entry-edit{padding-left:5px;padding-right:5px;display:block;width:calc(100% - 1px);transition:opacity 250ms ease-in-out;opacity:0;position:absolute;background-color:var(--color-main-background);z-index:-1}#app-navigation:not(.vue) .app-navigation-entry-edit form,#app-navigation:not(.vue) .app-navigation-entry-edit div{display:inline-flex;width:100%}#app-navigation:not(.vue) .app-navigation-entry-edit input{padding:5px;margin-right:0;height:38px}#app-navigation:not(.vue) .app-navigation-entry-edit input:hover,#app-navigation:not(.vue) .app-navigation-entry-edit input:focus{z-index:1}#app-navigation:not(.vue) .app-navigation-entry-edit input[type=text]{width:100%;min-width:0;border-bottom-right-radius:0;border-top-right-radius:0}#app-navigation:not(.vue) .app-navigation-entry-edit button,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]){width:36px;height:38px;flex:0 0 36px}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:last-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:last-child){border-radius:0 !important}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:first-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:first-child){margin-left:-1px}#app-navigation:not(.vue) .app-navigation-entry-edit button:last-child,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):last-child{border-bottom-right-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-left-radius:0;border-top-left-radius:0}#app-navigation:not(.vue) .app-navigation-entry-deleted{display:inline-flex;padding-left:44px;transform:translateX(300px)}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-description{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 0px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{margin:0;height:44px;width:44px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{opacity:1}#app-navigation:not(.vue) .app-navigation-entry-edit,#app-navigation:not(.vue) .app-navigation-entry-deleted{width:calc(100% - 1px);transition:transform 250ms ease-in-out,opacity 250ms ease-in-out,z-index 250ms ease-in-out;position:absolute;left:0;background-color:var(--color-main-background);box-sizing:border-box}#app-navigation:not(.vue) .drag-and-drop{-webkit-transition:padding-bottom 500ms ease 0s;transition:padding-bottom 500ms ease 0s;padding-bottom:40px}#app-navigation:not(.vue) .error{color:var(--color-error)}#app-navigation:not(.vue) .app-navigation-entry-utils ul,#app-navigation:not(.vue) .app-navigation-entry-menu ul{list-style-type:none}#content{box-sizing:border-box;position:static;margin:var(--body-container-margin);margin-top:50px;padding:0;display:flex;width:calc(100% - var(--body-container-margin)*2);height:var(--body-height);border-radius:var(--body-container-radius);overflow:clip}#content:not(.with-sidebar--full){position:fixed}@media only screen and (max-width: 1024px){#content{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}#app-navigation{border-top-left-radius:var(--border-radius-large)}#app-sidebar{border-top-right-radius:var(--border-radius-large)}}#app-content{z-index:1000;background-color:var(--color-main-background);flex-basis:100vw;overflow:auto;position:initial;height:100%}#app-content>.section:first-child{border-top:none}#app-content #app-content-wrapper{display:flex;position:relative;align-items:stretch;min-height:100%}#app-content #app-content-wrapper .app-content-details{flex:1 1 524px}#app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back{display:none}#app-sidebar{width:27vw;min-width:300px;max-width:500px;display:block;position:-webkit-sticky;position:sticky;top:50px;right:0;overflow-y:auto;overflow-x:hidden;z-index:1500;opacity:.7px;height:calc(100vh - 50px);background:var(--color-main-background);border-left:1px solid var(--color-border);flex-shrink:0}#app-sidebar.disappear{display:none}#app-settings{margin-top:auto}#app-settings.open #app-settings-content,#app-settings.opened #app-settings-content{display:block}#app-settings-content{display:none;padding:calc(var(--default-grid-baseline)*2);padding-top:0;padding-left:calc(var(--default-grid-baseline)*4);max-height:300px;overflow-y:auto;box-sizing:border-box}#app-settings-content input[type=text]{width:93%}#app-settings-content .info-text{padding:5px 0 7px 22px;color:var(--color-text-lighter)}#app-settings-content input[type=checkbox].radio+label,#app-settings-content input[type=checkbox].checkbox+label,#app-settings-content input[type=radio].radio+label,#app-settings-content input[type=radio].checkbox+label{display:inline-block;width:100%;padding:5px 0}#app-settings-header{box-sizing:border-box;background-color:rgba(0,0,0,0);overflow:hidden;border-radius:calc(var(--default-clickable-area)/2);padding:calc(var(--default-grid-baseline)*2);padding-top:0}#app-settings-header .settings-button{display:flex;align-items:center;height:44px;width:100%;padding:0;margin:0;background-color:rgba(0,0,0,0);box-shadow:none;border:0;border-radius:calc(var(--default-clickable-area)/2);text-align:left;font-weight:normal;font-size:100%;opacity:.8;color:var(--color-main-text)}#app-settings-header .settings-button.opened{border-top:solid 1px var(--color-border);background-color:var(--color-main-background);margin-top:8px}#app-settings-header .settings-button:hover,#app-settings-header .settings-button:focus{background-color:var(--color-background-hover)}#app-settings-header .settings-button::before{background-image:var(--icon-settings-dark);background-position:14px center;background-repeat:no-repeat;content:"";width:44px;height:44px;top:0;left:0;display:block}#app-settings-header .settings-button:focus-visible{box-shadow:0 0 0 2px inset var(--color-primary) !important;background-position:12px center}.section{display:block;padding:30px;margin-bottom:24px}.section.hidden{display:none !important}.section input[type=checkbox],.section input[type=radio]{vertical-align:-2px;margin-right:4px}.sub-section{position:relative;margin-top:10px;margin-left:27px;margin-bottom:10px}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}.tabHeaders{display:flex;margin-bottom:16px}.tabHeaders .tabHeader{display:flex;flex-direction:column;flex-grow:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color-text-lighter);margin-bottom:1px;padding:5px}.tabHeaders .tabHeader.hidden{display:none}.tabHeaders .tabHeader:first-child{padding-left:15px}.tabHeaders .tabHeader:last-child{padding-right:15px}.tabHeaders .tabHeader .icon{display:inline-block;width:100%;height:16px;background-size:16px;vertical-align:middle;margin-top:-2px;margin-right:3px;opacity:.7;cursor:pointer}.tabHeaders .tabHeader a{color:var(--color-text-lighter);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis}.tabHeaders .tabHeader.selected{font-weight:bold}.tabHeaders .tabHeader.selected,.tabHeaders .tabHeader:hover,.tabHeaders .tabHeader:focus{margin-bottom:0px;color:var(--color-main-text);border-bottom:1px solid var(--color-text-lighter)}.tabsContainer{clear:left}.tabsContainer .tab{padding:0 15px 15px}.contact .popovermenu ul>li>a>img,.popover__menu>li>a>img{filter:var(--background-invert-if-dark)}.contact .popovermenu ul>li>a>img[src^=data],.popover__menu>li>a>img[src^=data]{filter:none}.bubble,.app-navigation-entry-menu,.popovermenu{position:absolute;background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--border-radius-large);padding:3px;z-index:110;margin:5px;margin-top:-5px;right:0;filter:drop-shadow(0 1px 3px var(--color-box-shadow));display:none;will-change:filter}.bubble:after,.app-navigation-entry-menu:after,.popovermenu:after{bottom:100%;right:7px;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);border-width:9px}.bubble.menu-center,.app-navigation-entry-menu.menu-center,.popovermenu.menu-center{transform:translateX(50%);right:50%;margin-right:0}.bubble.menu-center:after,.app-navigation-entry-menu.menu-center:after,.popovermenu.menu-center:after{right:50%;transform:translateX(50%)}.bubble.menu-left,.app-navigation-entry-menu.menu-left,.popovermenu.menu-left{right:auto;left:0;margin-right:0}.bubble.menu-left:after,.app-navigation-entry-menu.menu-left:after,.popovermenu.menu-left:after{left:6px;right:auto}.bubble.open,.app-navigation-entry-menu.open,.popovermenu.open{display:block}.bubble.contactsmenu-popover,.app-navigation-entry-menu.contactsmenu-popover,.popovermenu.contactsmenu-popover{margin:0}.bubble ul,.app-navigation-entry-menu ul,.popovermenu ul{display:flex !important;flex-direction:column}.bubble li,.app-navigation-entry-menu li,.popovermenu li{display:flex;flex:0 0 auto}.bubble li.hidden,.app-navigation-entry-menu li.hidden,.popovermenu li.hidden{display:none}.bubble li>button,.bubble li>a,.bubble li>.menuitem,.app-navigation-entry-menu li>button,.app-navigation-entry-menu li>a,.app-navigation-entry-menu li>.menuitem,.popovermenu li>button,.popovermenu li>a,.popovermenu li>.menuitem{cursor:pointer;line-height:44px;border:0;border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{min-width:0;min-height:0;background-position:14px center;background-size:16px}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"]{padding:22px 0 22px 44px}.bubble li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{padding:0 14px 0 44px !important}.bubble li>button:hover,.bubble li>button:focus,.bubble li>a:hover,.bubble li>a:focus,.bubble li>.menuitem:hover,.bubble li>.menuitem:focus,.app-navigation-entry-menu li>button:hover,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>a:hover,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>.menuitem:hover,.app-navigation-entry-menu li>.menuitem:focus,.popovermenu li>button:hover,.popovermenu li>button:focus,.popovermenu li>a:hover,.popovermenu li>a:focus,.popovermenu li>.menuitem:hover,.popovermenu li>.menuitem:focus{background-color:var(--color-background-hover)}.bubble li>button:focus,.bubble li>button:focus-visible,.bubble li>a:focus,.bubble li>a:focus-visible,.bubble li>.menuitem:focus,.bubble li>.menuitem:focus-visible,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>button:focus-visible,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>a:focus-visible,.app-navigation-entry-menu li>.menuitem:focus,.app-navigation-entry-menu li>.menuitem:focus-visible,.popovermenu li>button:focus,.popovermenu li>button:focus-visible,.popovermenu li>a:focus,.popovermenu li>a:focus-visible,.popovermenu li>.menuitem:focus,.popovermenu li>.menuitem:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element)}.bubble li>button.active,.bubble li>a.active,.bubble li>.menuitem.active,.app-navigation-entry-menu li>button.active,.app-navigation-entry-menu li>a.active,.app-navigation-entry-menu li>.menuitem.active,.popovermenu li>button.active,.popovermenu li>a.active,.popovermenu li>.menuitem.active{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}.bubble li>button.action,.bubble li>a.action,.bubble li>.menuitem.action,.app-navigation-entry-menu li>button.action,.app-navigation-entry-menu li>a.action,.app-navigation-entry-menu li>.menuitem.action,.popovermenu li>button.action,.popovermenu li>a.action,.popovermenu li>.menuitem.action{padding:inherit !important}.bubble li>button>span,.bubble li>a>span,.bubble li>.menuitem>span,.app-navigation-entry-menu li>button>span,.app-navigation-entry-menu li>a>span,.app-navigation-entry-menu li>.menuitem>span,.popovermenu li>button>span,.popovermenu li>a>span,.popovermenu li>.menuitem>span{cursor:pointer;white-space:nowrap}.bubble li>button>p,.bubble li>a>p,.bubble li>.menuitem>p,.app-navigation-entry-menu li>button>p,.app-navigation-entry-menu li>a>p,.app-navigation-entry-menu li>.menuitem>p,.popovermenu li>button>p,.popovermenu li>a>p,.popovermenu li>.menuitem>p{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}.bubble li>button>select,.bubble li>a>select,.bubble li>.menuitem>select,.app-navigation-entry-menu li>button>select,.app-navigation-entry-menu li>a>select,.app-navigation-entry-menu li>.menuitem>select,.popovermenu li>button>select,.popovermenu li>a>select,.popovermenu li>.menuitem>select{margin:0;margin-left:6px}.bubble li>button:not(:empty),.bubble li>a:not(:empty),.bubble li>.menuitem:not(:empty),.app-navigation-entry-menu li>button:not(:empty),.app-navigation-entry-menu li>a:not(:empty),.app-navigation-entry-menu li>.menuitem:not(:empty),.popovermenu li>button:not(:empty),.popovermenu li>a:not(:empty),.popovermenu li>.menuitem:not(:empty){padding-right:14px !important}.bubble li>button>img,.bubble li>a>img,.bubble li>.menuitem>img,.app-navigation-entry-menu li>button>img,.app-navigation-entry-menu li>a>img,.app-navigation-entry-menu li>.menuitem>img,.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:16px;padding:14px}.bubble li>button>input.radio+label,.bubble li>button>input.checkbox+label,.bubble li>a>input.radio+label,.bubble li>a>input.checkbox+label,.bubble li>.menuitem>input.radio+label,.bubble li>.menuitem>input.checkbox+label,.app-navigation-entry-menu li>button>input.radio+label,.app-navigation-entry-menu li>button>input.checkbox+label,.app-navigation-entry-menu li>a>input.radio+label,.app-navigation-entry-menu li>a>input.checkbox+label,.app-navigation-entry-menu li>.menuitem>input.radio+label,.app-navigation-entry-menu li>.menuitem>input.checkbox+label,.popovermenu li>button>input.radio+label,.popovermenu li>button>input.checkbox+label,.popovermenu li>a>input.radio+label,.popovermenu li>a>input.checkbox+label,.popovermenu li>.menuitem>input.radio+label,.popovermenu li>.menuitem>input.checkbox+label{padding:0 !important;width:100%}.bubble li>button>input.checkbox+label::before,.bubble li>a>input.checkbox+label::before,.bubble li>.menuitem>input.checkbox+label::before,.app-navigation-entry-menu li>button>input.checkbox+label::before,.app-navigation-entry-menu li>a>input.checkbox+label::before,.app-navigation-entry-menu li>.menuitem>input.checkbox+label::before,.popovermenu li>button>input.checkbox+label::before,.popovermenu li>a>input.checkbox+label::before,.popovermenu li>.menuitem>input.checkbox+label::before{margin:-2px 13px 0}.bubble li>button>input.radio+label::before,.bubble li>a>input.radio+label::before,.bubble li>.menuitem>input.radio+label::before,.app-navigation-entry-menu li>button>input.radio+label::before,.app-navigation-entry-menu li>a>input.radio+label::before,.app-navigation-entry-menu li>.menuitem>input.radio+label::before,.popovermenu li>button>input.radio+label::before,.popovermenu li>a>input.radio+label::before,.popovermenu li>.menuitem>input.radio+label::before{margin:-2px 12px 0}.bubble li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}.bubble li>button form,.bubble li>a form,.bubble li>.menuitem form,.app-navigation-entry-menu li>button form,.app-navigation-entry-menu li>a form,.app-navigation-entry-menu li>.menuitem form,.popovermenu li>button form,.popovermenu li>a form,.popovermenu li>.menuitem form{display:flex;flex:1 1 auto;align-items:center}.bubble li>button form:not(:first-child),.bubble li>a form:not(:first-child),.bubble li>.menuitem form:not(:first-child),.app-navigation-entry-menu li>button form:not(:first-child),.app-navigation-entry-menu li>a form:not(:first-child),.app-navigation-entry-menu li>.menuitem form:not(:first-child),.popovermenu li>button form:not(:first-child),.popovermenu li>a form:not(:first-child),.popovermenu li>.menuitem form:not(:first-child){margin-left:5px}.bubble li>button>span.hidden+form,.bubble li>button>span[style*="display:none"]+form,.bubble li>a>span.hidden+form,.bubble li>a>span[style*="display:none"]+form,.bubble li>.menuitem>span.hidden+form,.bubble li>.menuitem>span[style*="display:none"]+form,.app-navigation-entry-menu li>button>span.hidden+form,.app-navigation-entry-menu li>button>span[style*="display:none"]+form,.app-navigation-entry-menu li>a>span.hidden+form,.app-navigation-entry-menu li>a>span[style*="display:none"]+form,.app-navigation-entry-menu li>.menuitem>span.hidden+form,.app-navigation-entry-menu li>.menuitem>span[style*="display:none"]+form,.popovermenu li>button>span.hidden+form,.popovermenu li>button>span[style*="display:none"]+form,.popovermenu li>a>span.hidden+form,.popovermenu li>a>span[style*="display:none"]+form,.popovermenu li>.menuitem>span.hidden+form,.popovermenu li>.menuitem>span[style*="display:none"]+form{margin-left:0}.bubble li>button input,.bubble li>a input,.bubble li>.menuitem input,.app-navigation-entry-menu li>button input,.app-navigation-entry-menu li>a input,.app-navigation-entry-menu li>.menuitem input,.popovermenu li>button input,.popovermenu li>a input,.popovermenu li>.menuitem input{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}.bubble li>button input:not(:first-child),.bubble li>a input:not(:first-child),.bubble li>.menuitem input:not(:first-child),.app-navigation-entry-menu li>button input:not(:first-child),.app-navigation-entry-menu li>a input:not(:first-child),.app-navigation-entry-menu li>.menuitem input:not(:first-child),.popovermenu li>button input:not(:first-child),.popovermenu li>a input:not(:first-child),.popovermenu li>.menuitem input:not(:first-child){margin-left:5px}.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input{margin-top:12px}.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input{margin-bottom:0px}.bubble li>button,.app-navigation-entry-menu li>button,.popovermenu li>button{padding:0}.bubble li>button span,.app-navigation-entry-menu li>button span,.popovermenu li>button span{opacity:1}.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:44px;height:44px}.app-content-list{position:-webkit-sticky;position:relative;top:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform 250ms ease-in-out;min-height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;flex:1 1 200px;min-width:200px;max-width:300px}.app-content-list .app-content-list-item{position:relative;height:68px;cursor:pointer;padding:10px 7px;display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto}.app-content-list .app-content-list-item>[class^=icon-],.app-content-list .app-content-list-item>[class*=" icon-"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]{order:4;width:24px;height:24px;margin:-7px;padding:22px;opacity:.3;cursor:pointer}.app-content-list .app-content-list-item>[class^=icon-]:hover,.app-content-list .app-content-list-item>[class^=icon-]:focus,.app-content-list .app-content-list-item>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:focus{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:focus{opacity:1}.app-content-list .app-content-list-item>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>[class*=" icon-"].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"].icon-starred{opacity:1}.app-content-list .app-content-list-item:hover,.app-content-list .app-content-list-item:focus,.app-content-list .app-content-list-item.active{background-color:var(--color-background-dark)}.app-content-list .app-content-list-item:hover .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item:focus .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item.active .app-content-list-item-checkbox.checkbox+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item .app-content-list-item-star{position:absolute;height:40px;width:40px;z-index:50}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label+.app-content-list-item-icon{opacity:.7}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label{top:14px;left:7px;display:none}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label::before{margin:0}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label~.app-content-list-item-star{display:none}.app-content-list .app-content-list-item .app-content-list-item-star{display:flex;top:10px;left:32px;background-size:16px;height:20px;width:20px;margin:0;padding:0}.app-content-list .app-content-list-item .app-content-list-item-icon{position:absolute;display:inline-block;height:40px;width:40px;line-height:40px;border-radius:50%;vertical-align:middle;margin-right:10px;color:#fff;text-align:center;font-size:1.5em;text-transform:capitalize;object-fit:cover;user-select:none;cursor:pointer;top:50%;margin-top:-20px}.app-content-list .app-content-list-item .app-content-list-item-line-one,.app-content-list .app-content-list-item .app-content-list-item-line-two{display:block;padding-left:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1;flex:1 1 0px;padding-right:10px;cursor:pointer}.app-content-list .app-content-list-item .app-content-list-item-line-two{opacity:.5;order:3;flex:1 0;flex-basis:calc(100% - 44px)}.app-content-list .app-content-list-item .app-content-list-item-details{order:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;opacity:.5;font-size:80%;user-select:none}.app-content-list .app-content-list-item .app-content-list-item-menu{order:4;position:relative}.app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu{margin:0;right:-2px}.app-content-list.selection .app-content-list-item-checkbox.checkbox+label{display:flex}/*# sourceMappingURL=apps.css.map */
diff --git a/core/css/apps.css.map b/core/css/apps.css.map
index 0bbe0f843dd..cbace46dc80 100644
--- a/core/css/apps.css.map
+++ b/core/css/apps.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["apps.scss","variables.scss","functions.scss"],"names":[],"mappings":"AAsBA,MACC,gEAEA,0GACA,8FAGD,sCACC,MACC,6BACA,8BAKF,KACC,WACA,YACA,kBAEA,6EAGD,KAEC,6EAEA,0EACA,sBACA,2BACA,eACA,WACA,iDAKD,GACC,iBACA,eACA,mBACA,iBACA,8BAGD,GACC,eACA,cACA,8BAGD,GACC,eAID,GACC,kBACA,gCAGD,GACC,eAGD,MAEC,qBACA,aACA,eAGD,GACC,YACA,mBACA,iBAGD,IACC,iBACA,sBACA,kCACA,mCACA,qBACA,mBAMD,wBACC,sBAKD,0BAEC,8DAEA,MCfkB,MDgBlB,YACA,gBACA,kBACA,mDACA,8CACA,+EACA,gBACA,YACA,sBACA,qBACA,iBACA,aACA,sBACA,YACA,cAGA,8CACC,cACA,6CACA,qDACC,qBACA,WACA,aACA,kBACA,gCACA,gBACA,SAIF,6BACC,kBAED,6BACC,kBACA,YACA,WACA,kBACA,gBACA,sBACA,aACA,sBACA,6CACA,iBAEA,wCACC,oDAGD,gCACC,oBACA,eACA,QACA,cACA,SACA,kBACA,WACA,wCAGA,uCACC,QACA,oDACC,2BAIF,8DAEC,6BAED,2DAIC,6BAKA,oKAEC,+CAGF,gDACC,gDACA,aAMA,gVAEC,4CAKF,yDACC,UACA,SAMA,qGAEC,aAIF,uDACC,iBACA,iBACA,eACA,mBACA,uBACA,2BACA,iBACA,oBAEA,yEACC,gBAKF,mCACC,cACA,WACA,kBACA,sCACC,oBACA,eACA,kBACA,WACA,kBAIC,oLAEC,wCACA,+CAKD,gMAEC,wCACA,4CAKF,+DACC,UAGD,oEAEC,gBACA,kBAGD,iEAEC,gBAGA,6BAMJ,sEAEC,kBACA,sBAGC,sRAGC,oCAIF,0EACC,0BACA,gCACA,4BACA,cACA,8BACA,iBACA,gBACA,sBACA,gBACA,sBACA,mBACA,uBACA,wCACA,6BACA,aACA,YAGA,kFACC,sBACA,gHACC,qBAGF,0GACC,kBACA,WACA,YAEA,wCAID,kIACC,qBACA,YACA,0MACC,2BAKH,gIACC,kBACA,cACA,YACA,WACA,YACA,YACA,kBACA,eACA,wCAEA,oIAEC,oCAKF,4HACC,SAID,4IACC,UACA,YAED,kJACC,wBACA,YAIH,iCACC,aAMD,kMAEC,SACA,WACA,+BACA,4BACA,2BACA,4ZAEC,+BACA,UAUD,iDACC,UACA,kBACA,WACA,YACA,SACA,YAIA,OAEA,+DACC,UACA,eACA,gDACA,gBAGF,8CACC,kBACA,YACA,WACA,SACA,UACA,gBE5XF,6CF8XE,qBACA,4BACA,2BACA,YACA,gBACA,wBACA,gBACA,YACA,UACA,iCACA,6BACA,yBACA,YACA,kBACA,qCAMD,qDACC,kBAIA,wGACC,UAED,8FACC,sBAED,oJACC,oCAID,mDACC,4BACA,wBACA,oBAQH,sDACC,cACA,yDACC,wBACA,mBACA,yBAED,yDACC,sBACA,YAED,6DACC,YACA,WACA,SACA,gBAIA,gJEhcF,uCFmcE,sNAEC,+BACA,UAGF,0FACC,gBACA,iBACA,cACA,iBACA,eAEA,sGACC,UACA,kBACA,2GACC,gBACA,mBACA,sCACA,gCASJ,qDACC,iBACA,kBACA,cACA,uBACA,qCACA,UACA,kBACA,8CACA,WACA,mHAEC,oBACA,WAED,2DACC,YACA,eACA,YACA,kIAGC,UAGF,sEACC,WACA,YACA,6BACA,0BAED,wIAEC,WACA,YACA,cACA,0KACC,2BAED,4KACC,iBAED,8JACC,gDACA,6CACA,4BACA,yBAQH,wDACC,oBACA,kBACA,4BACA,kGACC,kBACA,mBACA,uBACA,gBACA,aACA,iBAED,6FACC,SACA,YACA,WACA,iBACA,sMAEC,UAQH,6GAEC,uBACA,2FAGA,kBACA,OACA,8CACA,sBAMD,yCACC,gDACA,wCACA,oBAGD,iCACC,yBAGD,iHAEC,qBAMF,SACC,sBACA,gBACA,oCACA,gBACA,UACA,aACA,kDACA,0BACA,2CACA,gBAEA,kCACC,eAIF,2CACC,SACC,kDACA,mDAED,gBACC,kDAED,aACC,oDAcF,aACC,aACA,8CACA,iBACA,cACA,iBACA,YAGA,kCACC,gBAID,kCACC,aACA,kBACA,oBAGA,gBAGA,uDAEC,eACA,mFACC,aAWJ,aACC,WACA,UCvnBmB,MDwnBnB,UCvnBmB,MDwnBnB,cACA,wBACA,gBACA,IC9nBe,KD+nBf,QACA,gBACA,kBACA,aACA,aACA,0BACA,wCACA,0CACA,cAEA,uBACC,aAOF,cAEC,gBAGC,oFACC,cAKH,sBACC,aACA,6CACA,cACA,kDAEA,iBACA,gBACA,sBAGA,uCACC,UAGD,iCACC,uBACA,gCAOE,4NACC,qBACA,WACA,cAOL,qBACC,sBACA,+BACA,gBACA,oDACA,6CACA,cAEA,sCACC,aACA,mBACA,YACA,WACA,UACA,SACA,+BACA,gBACA,SACA,oDACA,gBACA,mBACA,eACA,WAGA,6BAEA,6CACC,yCACA,8CACA,eAED,wFAEC,+CAGD,8CACC,2CACA,gCACA,4BACA,WACA,WACA,YACA,MACA,OACA,cAGD,oDACC,2DACA,gCAMH,SACC,cACA,aACA,mBACA,gBACC,wBAIA,yDAEC,oBACA,iBAIH,aACC,kBACA,gBACA,iBACA,mBAGD,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAKF,YACC,aACA,mBAEA,uBACC,aACA,sBACA,YACA,kBACA,mBACA,gBACA,uBACA,eACA,gCACA,kBACA,YAEA,8BACC,aAID,mCACC,kBAED,kCACC,mBAGD,6BACC,qBACA,WACA,YACA,qBACA,sBACA,gBACA,iBACA,WACA,eAGD,yBACC,gCACA,kBACA,gBACA,uBAED,gCACC,iBAED,0FAGC,kBACA,6BACA,kDAIH,eACC,WACA,oBACC,oBAWD,0DACC,wCAIA,gFACC,YAKH,gDAGC,kBACA,8CACA,6BACA,yCACA,YACA,YACA,WACA,gBACA,QACA,sDACA,aACA,mBAEA,kEACC,YAKA,UAEA,2BACA,YACA,SACA,QACA,kBACA,oBACA,iDACA,iBAGD,oFACC,0BACA,UACA,eACA,sGACC,UACA,0BAIF,8EACC,WACA,OACA,eACA,gGACC,SACA,WAIF,+DACC,cAGD,+GACC,SAGD,yDAEC,wBACA,sBAED,yDACC,aACA,cAEA,8EACC,aAGD,oOAGC,eACA,YAhGkB,KAiGlB,SACA,yCACA,+BACA,aACA,uBACA,YACA,SACA,mBACA,gBACA,WACA,6BACA,mBAEA,whDAIC,YACA,aACA,gCACA,gBApHe,KAsHhB,yzBAIC,yBAOC,gvGACC,YAnIe,KAuIlB,+tBAEC,iCAED,ojBAEC,+CAED,4nBAEC,kDAED,mSACC,wCACA,4CAGD,mSACC,2BAED,iRACC,eACA,mBAED,sPACC,YACA,kBACA,cACA,mBAED,mSACC,SACA,gBAGD,gVACC,8BAID,wQACC,MA/Ke,KAgLf,aAGD,uyBAEC,qBACA,WAED,yeACC,mBAED,8cACC,mBAED,2xBACC,YAED,iRACC,aACA,cAGA,mBACA,mbACC,gBAIF,04BAEC,cAGD,0RACC,UAnNiB,KAoNjB,gBACA,aACA,cAEA,4bACC,gBAQA,2hDACC,gBAMD,ygDACC,kBAKJ,8EACC,UACA,6FACC,UAcD,+EACC,MAhQiB,KAiQjB,OAjQiB,KAwQrB,kBACC,wBACA,kBACA,MACA,2CACA,aACA,sBACA,uCACA,gBACA,gBACA,gBACA,kBACA,eACA,UC/mCgB,MDgnChB,UC/mCgB,MDknChB,yCACC,kBACA,YACA,eACA,iBACA,aACA,eACA,mBACA,cAKC,8RAEC,QACA,WACA,YACA,YACA,aACA,WACA,eACA,4mBAEC,WAED,wtBAEC,WACA,ghDAEC,UAIF,kVACC,UAKH,8IAGC,8CAEA,2RACC,aAIF,6JAEC,kBACA,YACA,WACA,WAQC,2XAEC,aAEA,2eACC,WAIH,wFACC,SACA,SAEA,aACA,gGACC,SAGD,oHACC,aAKH,qEACC,aACA,SACA,UACA,qBACA,YACA,WACA,SACA,UAGD,qEACC,kBACA,qBACA,YACA,WACA,iBACA,kBACA,sBACA,kBACA,WACA,kBACA,gBACA,0BACA,iBACA,iBACA,eACA,QACA,iBAGD,kJAEC,cACA,kBACA,mBACA,gBACA,uBACA,QACA,aACA,mBACA,eAGD,yEACC,WACA,QACA,SACA,6BAGD,wEACC,QACA,mBACA,gBACA,uBACA,gBACA,WACA,cACA,iBAGD,qEACC,QACA,kBACA,kFACC,SAGA,WAIH,2EACC","file":"apps.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["apps.scss","variables.scss","functions.scss"],"names":[],"mappings":"AAsBA,MACC,gEAEA,0GACA,8FAGD,sCACC,MACC,6BACA,8BAKF,KACC,WACA,YACA,kBAEA,6EAGD,KAEC,6EAEA,0EACA,sBACA,2BACA,eACA,WACA,iDAKD,GACC,iBACA,eACA,mBACA,iBACA,8BAGD,GACC,eACA,cACA,8BAGD,GACC,eAID,GACC,kBACA,gCAGD,GACC,eAGD,MAEC,qBACA,aACA,eAGD,GACC,YACA,mBACA,iBAGD,IACC,iBACA,sBACA,kCACA,mCACA,qBACA,mBAMD,wBACC,sBAKD,0BAEC,8DAEA,MCfkB,MDgBlB,YACA,gBACA,kBACA,mDACA,8CACA,+EACA,gBACA,YACA,sBACA,qBACA,iBACA,aACA,sBACA,YACA,cAGA,8CACC,cACA,6CACA,qDACC,qBACA,WACA,aACA,kBACA,gCACA,gBACA,SAIF,6BACC,kBAED,6BACC,kBACA,YACA,WACA,kBACA,gBACA,sBACA,aACA,sBACA,6CACA,iBAEA,wCACC,oDAGD,gCACC,oBACA,eACA,QACA,cACA,SACA,kBACA,WACA,wCAGA,uCACC,QACA,oDACC,2BAIF,8DAEC,6BAED,2DAIC,6BAKA,oKAEC,+CAGF,gDACC,gDACA,aAMA,gVAEC,4CAKF,yDACC,UACA,SAMA,qGAEC,aAIF,uDACC,iBACA,iBACA,eACA,mBACA,uBACA,2BACA,iBACA,oBAEA,yEACC,gBAKF,mCACC,cACA,WACA,kBACA,sCACC,oBACA,eACA,kBACA,WACA,kBAIC,oLAEC,wCACA,+CAKD,gMAEC,wCACA,4CAKF,+DACC,UAGD,oEAEC,gBACA,kBAGD,iEAEC,gBAGA,6BAMJ,sEAEC,kBACA,sBAGC,sRAGC,oCAIF,0EACC,0BACA,gCACA,4BACA,cACA,8BACA,iBACA,gBACA,sBACA,gBACA,sBACA,mBACA,uBACA,wCACA,6BACA,aACA,YAGA,kFACC,sBACA,gHACC,qBAGF,0GACC,kBACA,WACA,YAEA,wCAID,kIACC,qBACA,YACA,0MACC,2BAKH,gIACC,kBACA,cACA,YACA,WACA,YACA,YACA,kBACA,eACA,wCAEA,oIAEC,oCAKF,4HACC,SAID,4IACC,UACA,YAED,kJACC,wBACA,YAIH,iCACC,aAMD,kMAEC,SACA,WACA,+BACA,4BACA,2BACA,4ZAEC,+BACA,UAUD,iDACC,UACA,kBACA,WACA,YACA,SACA,YAIA,OAEA,+DACC,UACA,eACA,gDACA,gBAGF,8CACC,kBACA,YACA,WACA,SACA,UACA,gBE5XF,6CF8XE,qBACA,4BACA,2BACA,YACA,gBACA,wBACA,gBACA,YACA,UACA,iCACA,6BACA,yBACA,YACA,kBACA,qCAMD,qDACC,kBAIA,wGACC,UAED,8FACC,sBAED,oJACC,oCAID,mDACC,4BACA,wBACA,oBAQH,sDACC,cACA,yDACC,wBACA,mBACA,yBAED,yDACC,sBACA,YAED,6DACC,YACA,WACA,SACA,gBAIA,gJEhcF,uCFmcE,sNAEC,+BACA,UAGF,0FACC,gBACA,iBACA,cACA,iBACA,eAEA,sGACC,UACA,kBACA,2GACC,gBACA,mBACA,sCACA,gCASJ,qDACC,iBACA,kBACA,cACA,uBACA,qCACA,UACA,kBACA,8CACA,WACA,mHAEC,oBACA,WAED,2DACC,YACA,eACA,YACA,kIAGC,UAGF,sEACC,WACA,YACA,6BACA,0BAED,wIAEC,WACA,YACA,cACA,0KACC,2BAED,4KACC,iBAED,8JACC,gDACA,6CACA,4BACA,yBAQH,wDACC,oBACA,kBACA,4BACA,kGACC,kBACA,mBACA,uBACA,gBACA,aACA,iBAED,6FACC,SACA,YACA,WACA,iBACA,sMAEC,UAQH,6GAEC,uBACA,2FAGA,kBACA,OACA,8CACA,sBAMD,yCACC,gDACA,wCACA,oBAGD,iCACC,yBAGD,iHAEC,qBAMF,SACC,sBACA,gBACA,oCACA,gBACA,UACA,aACA,kDACA,0BACA,2CACA,cAEA,kCACC,eAIF,2CACC,SACC,kDACA,mDAED,gBACC,kDAED,aACC,oDAcF,aACC,aACA,8CACA,iBACA,cACA,iBACA,YAGA,kCACC,gBAID,kCACC,aACA,kBACA,oBAGA,gBAGA,uDAEC,eACA,mFACC,aAWJ,aACC,WACA,UCvnBmB,MDwnBnB,UCvnBmB,MDwnBnB,cACA,wBACA,gBACA,IC9nBe,KD+nBf,QACA,gBACA,kBACA,aACA,aACA,0BACA,wCACA,0CACA,cAEA,uBACC,aAOF,cAEC,gBAGC,oFACC,cAKH,sBACC,aACA,6CACA,cACA,kDAEA,iBACA,gBACA,sBAGA,uCACC,UAGD,iCACC,uBACA,gCAOE,4NACC,qBACA,WACA,cAOL,qBACC,sBACA,+BACA,gBACA,oDACA,6CACA,cAEA,sCACC,aACA,mBACA,YACA,WACA,UACA,SACA,+BACA,gBACA,SACA,oDACA,gBACA,mBACA,eACA,WAGA,6BAEA,6CACC,yCACA,8CACA,eAED,wFAEC,+CAGD,8CACC,2CACA,gCACA,4BACA,WACA,WACA,YACA,MACA,OACA,cAGD,oDACC,2DACA,gCAMH,SACC,cACA,aACA,mBACA,gBACC,wBAIA,yDAEC,oBACA,iBAIH,aACC,kBACA,gBACA,iBACA,mBAGD,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAKF,YACC,aACA,mBAEA,uBACC,aACA,sBACA,YACA,kBACA,mBACA,gBACA,uBACA,eACA,gCACA,kBACA,YAEA,8BACC,aAID,mCACC,kBAED,kCACC,mBAGD,6BACC,qBACA,WACA,YACA,qBACA,sBACA,gBACA,iBACA,WACA,eAGD,yBACC,gCACA,kBACA,gBACA,uBAED,gCACC,iBAED,0FAGC,kBACA,6BACA,kDAIH,eACC,WACA,oBACC,oBAWD,0DACC,wCAIA,gFACC,YAKH,gDAGC,kBACA,8CACA,6BACA,yCACA,YACA,YACA,WACA,gBACA,QACA,sDACA,aACA,mBAEA,kEACC,YAKA,UAEA,2BACA,YACA,SACA,QACA,kBACA,oBACA,iDACA,iBAGD,oFACC,0BACA,UACA,eACA,sGACC,UACA,0BAIF,8EACC,WACA,OACA,eACA,gGACC,SACA,WAIF,+DACC,cAGD,+GACC,SAGD,yDAEC,wBACA,sBAED,yDACC,aACA,cAEA,8EACC,aAGD,oOAGC,eACA,YAhGkB,KAiGlB,SACA,yCACA,+BACA,aACA,uBACA,YACA,SACA,mBACA,gBACA,WACA,6BACA,mBAEA,whDAIC,YACA,aACA,gCACA,gBApHe,KAsHhB,yzBAIC,yBAOC,gvGACC,YAnIe,KAuIlB,+tBAEC,iCAED,ojBAEC,+CAED,4nBAEC,kDAED,mSACC,wCACA,4CAGD,mSACC,2BAED,iRACC,eACA,mBAED,sPACC,YACA,kBACA,cACA,mBAED,mSACC,SACA,gBAGD,gVACC,8BAID,wQACC,MA/Ke,KAgLf,aAGD,uyBAEC,qBACA,WAED,yeACC,mBAED,8cACC,mBAED,2xBACC,YAED,iRACC,aACA,cAGA,mBACA,mbACC,gBAIF,04BAEC,cAGD,0RACC,UAnNiB,KAoNjB,gBACA,aACA,cAEA,4bACC,gBAQA,2hDACC,gBAMD,ygDACC,kBAKJ,8EACC,UACA,6FACC,UAcD,+EACC,MAhQiB,KAiQjB,OAjQiB,KAwQrB,kBACC,wBACA,kBACA,MACA,2CACA,aACA,sBACA,uCACA,gBACA,gBACA,gBACA,kBACA,eACA,UC/mCgB,MDgnChB,UC/mCgB,MDknChB,yCACC,kBACA,YACA,eACA,iBACA,aACA,eACA,mBACA,cAKC,8RAEC,QACA,WACA,YACA,YACA,aACA,WACA,eACA,4mBAEC,WAED,wtBAEC,WACA,ghDAEC,UAIF,kVACC,UAKH,8IAGC,8CAEA,2RACC,aAIF,6JAEC,kBACA,YACA,WACA,WAQC,2XAEC,aAEA,2eACC,WAIH,wFACC,SACA,SAEA,aACA,gGACC,SAGD,oHACC,aAKH,qEACC,aACA,SACA,UACA,qBACA,YACA,WACA,SACA,UAGD,qEACC,kBACA,qBACA,YACA,WACA,iBACA,kBACA,sBACA,kBACA,WACA,kBACA,gBACA,0BACA,iBACA,iBACA,eACA,QACA,iBAGD,kJAEC,cACA,kBACA,mBACA,gBACA,uBACA,QACA,aACA,mBACA,eAGD,yEACC,WACA,QACA,SACA,6BAGD,wEACC,QACA,mBACA,gBACA,uBACA,gBACA,WACA,cACA,iBAGD,qEACC,QACA,kBACA,kFACC,SAGA,WAIH,2EACC","file":"apps.css"} \ No newline at end of file
diff --git a/core/css/apps.scss b/core/css/apps.scss
index 3dc918555b5..2b820b1ca2e 100644
--- a/core/css/apps.scss
+++ b/core/css/apps.scss
@@ -667,7 +667,7 @@ kbd {
width: calc(100% - var(--body-container-margin) * 2);
height: var(--body-height);
border-radius: var(--body-container-radius);
- overflow: hidden;
+ overflow: clip;
&:not(.with-sidebar--full) {
position: fixed;
diff --git a/core/css/server.css b/core/css/server.css
index 6e7603c010f..21f6f777d84 100644
--- a/core/css/server.css
+++ b/core/css/server.css
@@ -1 +1 @@
-@import"../../dist/icons.css";html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section,main{margin:0;padding:0;border:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default;scrollbar-color:var(--color-border-dark) rgba(0,0,0,0);scrollbar-width:thin}.js-focus-visible :focus:not(.focus-visible){outline:none}.content:not(#content-vue) :focus-visible,.app-navigation:not(#app-navigation-vue) :focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);outline:none}html,body{height:100%}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}body{line-height:1.5}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:left;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none;cursor:pointer}a *{cursor:pointer}a.external{margin:0 3px;text-decoration:underline}input{cursor:pointer}input *{cursor:pointer}select,.button span,label{cursor:pointer}ul{list-style:none}body{font-weight:normal;font-size:var(--default-font-size);line-height:var(--default-line-height);font-family:var(--font-face);color:var(--color-main-text)}.two-factor-header{text-align:center}.two-factor-provider{text-align:center;width:100% !important;display:inline-block;margin-bottom:0 !important;background-color:var(--color-background-darker) !important;border:none !important}.two-factor-link{display:inline-block;padding:12px;color:var(--color-text-lighter)}.float-spinner{height:32px;display:none}#nojavascript{position:fixed;top:0;bottom:0;left:0;height:100%;width:100%;z-index:9000;text-align:center;background-color:var(--color-background-darker);color:var(--color-primary-text);line-height:125%;font-size:24px}#nojavascript div{display:block;position:relative;width:50%;top:35%;margin:0px auto}#nojavascript a{color:var(--color-primary-text);border-bottom:2px dotted var(--color-main-background)}#nojavascript a:hover,#nojavascript a:focus{color:var(--color-primary-text-dark)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--border-radius-large);border:2px solid rgba(0,0,0,0);background-clip:content-box}::selection{background-color:var(--color-primary-element);color:var(--color-primary-text)}#app-navigation *{box-sizing:border-box}#emptycontent,.emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:30vh;width:100%}#app-sidebar #emptycontent,#app-sidebar .emptycontent{margin-top:10vh}#emptycontent .emptycontent-search,.emptycontent .emptycontent-search{position:static}#emptycontent h2,.emptycontent h2{margin-bottom:10px}#emptycontent [class^=icon-],#emptycontent [class*=icon-],.emptycontent [class^=icon-],.emptycontent [class*=icon-]{background-size:64px;height:64px;width:64px;margin:0 auto 15px}#emptycontent [class^=icon-]:not([class^=icon-loading]),#emptycontent [class^=icon-]:not([class*=icon-loading]),#emptycontent [class*=icon-]:not([class^=icon-loading]),#emptycontent [class*=icon-]:not([class*=icon-loading]),.emptycontent [class^=icon-]:not([class^=icon-loading]),.emptycontent [class^=icon-]:not([class*=icon-loading]),.emptycontent [class*=icon-]:not([class^=icon-loading]),.emptycontent [class*=icon-]:not([class*=icon-loading]){opacity:.4}#datadirContent label{width:100%}.grouptop,.groupmiddle,.groupbottom{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#show,#dbpassword{position:absolute;right:1em;top:.8em;float:right}#show+label,#dbpassword+label{right:21px;top:15px !important;margin:-14px !important;padding:14px !important}#show:checked+label,#dbpassword:checked+label,#personal-show:checked+label{opacity:.8}#show:focus-visible+label,#dbpassword-toggle:focus-visible+label,#personal-show:focus-visible+label{box-shadow:var(--color-primary) 0 0 0 2px;opacity:1;border-radius:9999px}#show+label,#dbpassword+label,#personal-show+label{position:absolute !important;height:20px;width:24px;background-image:var(--icon-toggle-dark);background-repeat:no-repeat;background-position:center;opacity:.3}#show:focus+label,#dbpassword:focus+label,#personal-show:focus+label{opacity:1}#show+label:hover,#dbpassword+label:hover,#personal-show+label:hover{opacity:1}#show+label:before,#dbpassword+label:before,#personal-show+label:before{display:none}#pass2,input[name=personal-password-clone]{padding-right:30px}.personal-show-container{position:relative;display:inline-block;margin-right:6px}#personal-show+label{display:block;right:0;margin-top:-43px;margin-right:-4px;padding:22px}#body-user .warning,#body-settings .warning{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-main-text);background-color:rgba(var(--color-warning-rgb), 0.2)}.warning legend,.warning a{font-weight:bold !important}.error:not(.toastify) a{color:#fff !important;font-weight:bold !important}.error:not(.toastify) a.button{color:var(--color-text-lighter) !important;display:inline-block;text-align:center}.error:not(.toastify) pre{white-space:pre-wrap;text-align:left}.error-wide{width:700px;margin-left:-200px !important}.error-wide .button{color:#000 !important}.warning-input{border-color:var(--color-error) !important}.avatar,.avatardiv{border-radius:50%;flex-shrink:0}.avatar>img,.avatardiv>img{border-radius:50%;flex-shrink:0}td.avatar{border-radius:0}tr .action:not(.permanent),.selectedActions>a{opacity:0}tr:hover .action:not(.menuitem),tr:focus .action:not(.menuitem),tr .action.permanent:not(.menuitem){opacity:.5}.selectedActions>a{opacity:.5;position:relative;top:2px}.selectedActions>a:hover,.selectedActions>a:focus{opacity:1}tr .action{width:16px;height:16px}.header-action{opacity:.8}tr:hover .action:hover,tr:focus .action:focus{opacity:1}.selectedActions a:hover,.selectedActions a:focus{opacity:1}.header-action:hover,.header-action:focus{opacity:1}tbody tr:hover,tbody tr:focus,tbody tr:active{background-color:var(--color-background-dark)}code{font-family:"Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono",monospace}.pager{list-style:none;float:right;display:inline;margin:.7em 13em 0 0}.pager li{display:inline-block}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{overflow:hidden;text-overflow:ellipsis}.ui-icon-circle-triangle-e{background-image:url("../img/actions/play-next.svg?v=1")}.ui-icon-circle-triangle-w{background-image:url("../img/actions/play-previous.svg?v=1")}.ui-widget.ui-datepicker{margin-top:10px;padding:4px 8px;width:auto;border-radius:var(--border-radius);border:none;z-index:1600 !important}.ui-widget.ui-datepicker .ui-state-default,.ui-widget.ui-datepicker .ui-widget-content .ui-state-default,.ui-widget.ui-datepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-datepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-datepicker .ui-widget-header .ui-datepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-datepicker .ui-widget-header .ui-icon{opacity:.5}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-right.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-left.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-state-hover .ui-icon{opacity:1}.ui-widget.ui-datepicker .ui-datepicker-calendar th{font-weight:normal;color:var(--color-text-lighter);opacity:.8;width:26px;padding:2px}.ui-widget.ui-datepicker .ui-datepicker-calendar tr:hover{background-color:inherit}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a:not(.ui-state-hover){background-color:var(--color-background-darker)}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-hover,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-priority-secondary:not(.ui-state-hover){color:var(--color-text-lighter);opacity:.8}.ui-datepicker-prev,.ui-datepicker-next{border:var(--color-border-dark);background:var(--color-main-background)}.ui-widget.ui-timepicker{margin-top:10px !important;width:auto !important;border-radius:var(--border-radius);z-index:1600 !important}.ui-widget.ui-timepicker .ui-widget-content{border:none !important}.ui-widget.ui-timepicker .ui-state-default,.ui-widget.ui-timepicker .ui-widget-content .ui-state-default,.ui-widget.ui-timepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-timepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-timepicker .ui-widget-header .ui-timepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-timepicker table.ui-timepicker tr .ui-timepicker-hour-cell:first-child{margin-left:30px}.ui-widget.ui-timepicker .ui-timepicker-table th{font-weight:normal;color:var(--color-text-lighter);opacity:.8}.ui-widget.ui-timepicker .ui-timepicker-table th.periods{padding:0;width:30px;line-height:30px}.ui-widget.ui-timepicker .ui-timepicker-table tr:hover{background-color:inherit}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hour-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minute-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-hover,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minutes:not(.ui-state-hover){color:var(--color-text-lighter)}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hours{border-right:1px solid var(--color-border)}.ui-widget.ui-datepicker .ui-datepicker-calendar tr,.ui-widget.ui-timepicker table.ui-timepicker tr{display:flex;flex-wrap:nowrap;justify-content:space-between}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td,.ui-widget.ui-timepicker table.ui-timepicker tr td{flex:1 1 auto;margin:0;padding:2px;height:26px;width:26px;display:flex;align-items:center;justify-content:center}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td>*,.ui-widget.ui-timepicker table.ui-timepicker tr td>*{border-radius:50%;text-align:center;font-weight:normal;color:var(--color-main-text);display:block;line-height:18px;width:18px;height:18px;padding:3px;font-size:.9em}#oc-dialog-filepicker-content{position:relative;display:flex;flex-direction:column}#oc-dialog-filepicker-content .dirtree{flex-wrap:wrap;box-sizing:border-box;padding-right:140px}#oc-dialog-filepicker-content .dirtree div:first-child a{font-size:0px;background-image:var(--icon-home-dark);background-repeat:no-repeat;background-position:left center}#oc-dialog-filepicker-content .dirtree span:not(:last-child){cursor:pointer}#oc-dialog-filepicker-content .dirtree span:last-child{font-weight:bold}#oc-dialog-filepicker-content .dirtree span:not(:last-child)::after{content:">";padding:3px}#oc-dialog-filepicker-content #picker-showgridview{position:absolute;background-color:rgba(0,0,0,0);border:none;margin:0;padding:22px;opacity:.5;right:0;top:0}#oc-dialog-filepicker-content #picker-showgridview:hover,#oc-dialog-filepicker-content #picker-showgridview:active,#oc-dialog-filepicker-content #picker-showgridview:focus{box-shadow:0 0 0 2px var(--color-primary);opacity:1}#oc-dialog-filepicker-content .actions.creatable{flex-wrap:wrap;padding:0px;box-sizing:border-box;display:inline-flex;float:none;max-height:36px;max-width:36px;background-color:var(--color-background-dark);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-pill);position:relative;left:15px;top:3px;order:1}#oc-dialog-filepicker-content .actions.creatable .icon.icon-add{background-image:var(--icon-add-dark);background-size:16px 16px;width:34px;height:34px;margin:0px;opacity:.5}#oc-dialog-filepicker-content .actions.creatable a{width:36px;padding:0px;position:static}#oc-dialog-filepicker-content .actions.creatable .menu{top:100%;margin-top:10px}#oc-dialog-filepicker-content .actions.creatable .menu form{display:flex;margin:10px}#oc-dialog-filepicker-content .filelist-container{box-sizing:border-box;display:inline-block;overflow-y:auto;flex:1;width:100%;overflow-x:hidden}#oc-dialog-filepicker-content .emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:80px;width:100%;display:none}#oc-dialog-filepicker-content .filelist{background-color:var(--color-main-background);width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist{min-width:initial;margin-bottom:50px}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr{border-bottom:1px solid var(--color-border);background-color:var(--color-main-background)}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr th{width:80%;border:none}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle.name{padding-left:5px;margin-left:50px}#oc-dialog-filepicker-content #picker-filestable.filelist th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}#oc-dialog-filepicker-content #picker-filestable.filelist .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:hidden}#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:visible}#oc-dialog-filepicker-content #picker-filestable.filelist td{padding:14px;border-bottom:1px solid var(--color-border)}#oc-dialog-filepicker-content #picker-filestable.filelist tr:last-child td{border-bottom:none}#oc-dialog-filepicker-content #picker-filestable.filelist .filename{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-size:32px;background-repeat:no-repeat;padding-left:51px;background-position:7px 7px;cursor:pointer;max-width:0}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts{display:flex}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__first{overflow:hidden;white-space:pre;text-overflow:ellipsis}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__last{white-space:pre}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize,#oc-dialog-filepicker-content #picker-filestable.filelist .date{width:80px}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize{text-align:right}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid{display:flex;flex-direction:column}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody{display:grid;grid-template-columns:repeat(auto-fill, 120px);justify-content:space-around;row-gap:15px;margin:15px 0}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr{display:block;position:relative;border-radius:var(--border-radius);padding:10px;display:flex;flex-direction:column;width:100px}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td{border:none;padding:0;text-align:center;border-radius:var(--border-radius)}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename{padding:100px 0 0 0;background-position:center top;background-size:contain;line-height:30px;max-width:none}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename .filename-parts{justify-content:center}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filesize{line-height:10px;width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.date{display:none}#oc-dialog-filepicker-content .filepicker_element_selected{background-color:var(--color-background-darker)}.ui-dialog{position:fixed !important}span.ui-icon{float:left;margin:3px 7px 30px 0}.extra-data{padding-right:5px !important}#tagsdialog .content{width:100%;height:280px}#tagsdialog .scrollarea{overflow:auto;border:1px solid var(--color-background-darker);width:100%;height:240px}#tagsdialog .bottombuttons{width:100%;height:30px}#tagsdialog .bottombuttons *{float:left}#tagsdialog .taglist li{background:var(--color-background-dark);padding:.3em .8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:background-color 500ms;transition:background-color 500ms}#tagsdialog .taglist li:hover,#tagsdialog .taglist li:active{background:var(--color-background-darker)}#tagsdialog .addinput{width:90%;clear:both}.breadcrumb{display:inline-flex}div.crumb{display:inline-flex;background-image:url("../img/breadcrumb.svg?v=1");background-repeat:no-repeat;background-position:right center;height:44px;background-size:auto 24px;flex:0 0 auto;order:1;padding-right:7px}div.crumb.crumbmenu{order:2;position:relative}div.crumb.crumbmenu a{opacity:.5}div.crumb.crumbmenu.canDropChildren .popovermenu,div.crumb.crumbmenu.canDrop .popovermenu{display:block}div.crumb.crumbmenu .popovermenu{top:100%;margin-right:3px}div.crumb.crumbmenu .popovermenu ul{max-height:345px;overflow-y:auto;overflow-x:hidden;padding-right:5px}div.crumb.crumbmenu .popovermenu ul li.canDrop span:first-child{background-image:url("../img/filetypes/folder-drag-accept.svg?v=1") !important}div.crumb.crumbmenu .popovermenu .in-breadcrumb{display:none}div.crumb.hidden{display:none}div.crumb.hidden~.crumb{order:3}div.crumb>a,div.crumb>span{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;max-width:200px}div.crumb>a.icon-home,div.crumb>a.icon-delete,div.crumb>span.icon-home,div.crumb>span.icon-delete{text-indent:-9999px}div.crumb>a[class^=icon-]{padding:0;width:44px}div.crumb:last-child{font-weight:bold;margin-right:10px}div.crumb:last-child a~span{padding-left:0}div.crumb:hover,div.crumb:focus,div.crumb a:focus,div.crumb:active{opacity:1}div.crumb:hover>a,div.crumb:hover>span,div.crumb:focus>a,div.crumb:focus>span,div.crumb a:focus>a,div.crumb a:focus>span,div.crumb:active>a,div.crumb:active>span{opacity:.7}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}fieldset.warning legend,fieldset.update legend{top:18px;position:relative}fieldset.warning legend+p,fieldset.update legend+p{margin-top:12px}@-ms-viewport{width:device-width}.hiddenuploadfield{display:none;width:0;height:0;opacity:0}input,textarea,select,button,div[contenteditable=true],div[contenteditable=false]{font-family:var(--font-face)}.select2-container-multi .select2-choices .select2-search-field input,.select2-search input,.ui-widget{font-family:var(--font-face) !important}.select2-container.select2-drop-above .select2-choice{background-image:unset !important}select,button:not(.button-vue,[class^=vs__]),input,textarea,div[contenteditable=true],div[contenteditable=false]{width:130px;min-height:36px;box-sizing:border-box}input:not([type=range]){outline:none}div.select2-drop .select2-search input,input[type=submit],input[type=button],input[type=reset],button:not(.button-vue,[class^=vs__]),.button,.pager li a{margin:3px 3px 3px 0;padding:7px 14px;font-size:13px;background-color:var(--color-main-background);color:var(--color-main-text);border:1px solid var(--color-border-dark);font-size:var(--default-font-size);outline:none;border-radius:var(--border-radius);cursor:text}div.select2-drop .select2-search input:not(:disabled):not(.primary):hover,div.select2-drop .select2-search input:not(:disabled):not(.primary):focus,div.select2-drop .select2-search input:not(:disabled):not(.primary).active,input[type=submit]:not(:disabled):not(.primary):hover,input[type=submit]:not(:disabled):not(.primary):focus,input[type=submit]:not(:disabled):not(.primary).active,input[type=button]:not(:disabled):not(.primary):hover,input[type=button]:not(:disabled):not(.primary):focus,input[type=button]:not(:disabled):not(.primary).active,input[type=reset]:not(:disabled):not(.primary):hover,input[type=reset]:not(:disabled):not(.primary):focus,input[type=reset]:not(:disabled):not(.primary).active,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):hover,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):focus,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary).active,.button:not(:disabled):not(.primary):hover,.button:not(:disabled):not(.primary):focus,.button:not(:disabled):not(.primary).active,.pager li a:not(:disabled):not(.primary):hover,.pager li a:not(:disabled):not(.primary):focus,.pager li a:not(:disabled):not(.primary).active{border-color:var(--color-primary-element);outline:none}div.select2-drop .select2-search input:not(:disabled):not(.primary):active,input[type=submit]:not(:disabled):not(.primary):active,input[type=button]:not(:disabled):not(.primary):active,input[type=reset]:not(:disabled):not(.primary):active,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):active,.button:not(:disabled):not(.primary):active,.pager li a:not(:disabled):not(.primary):active{outline:none;background-color:var(--color-main-background);color:var(--color-text-light)}div.select2-drop .select2-search input:not(:disabled):not(.primary):focus-visible,input[type=submit]:not(:disabled):not(.primary):focus-visible,input[type=button]:not(:disabled):not(.primary):focus-visible,input[type=reset]:not(:disabled):not(.primary):focus-visible,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):focus-visible,.button:not(:disabled):not(.primary):focus-visible,.pager li a:not(:disabled):not(.primary):focus-visible{box-shadow:0 0 0 2px var(--color-primary)}div.select2-drop .select2-search input:disabled,input[type=submit]:disabled,input[type=button]:disabled,input[type=reset]:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,.pager li a:disabled{background-color:var(--color-background-dark);color:var(--color-main-text);cursor:default;opacity:.5}div.select2-drop .select2-search input:required,input[type=submit]:required,input[type=button]:required,input[type=reset]:required,button:not(.button-vue,[class^=vs__]):required,.button:required,.pager li a:required{box-shadow:none}div.select2-drop .select2-search input:user-invalid,input[type=submit]:user-invalid,input[type=button]:user-invalid,input[type=reset]:user-invalid,button:not(.button-vue,[class^=vs__]):user-invalid,.button:user-invalid,.pager li a:user-invalid{box-shadow:0 0 0 2px var(--color-error) !important}div.select2-drop .select2-search input.primary,input[type=submit].primary,input[type=button].primary,input[type=reset].primary,button:not(.button-vue,[class^=vs__]).primary,.button.primary,.pager li a.primary{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-text);cursor:pointer}#body-login :not(.body-login-container) div.select2-drop .select2-search input.primary,#header div.select2-drop .select2-search input.primary,#body-login :not(.body-login-container) input[type=submit].primary,#header input[type=submit].primary,#body-login :not(.body-login-container) input[type=button].primary,#header input[type=button].primary,#body-login :not(.body-login-container) input[type=reset].primary,#header input[type=reset].primary,#body-login :not(.body-login-container) button:not(.button-vue,[class^=vs__]).primary,#header button:not(.button-vue,[class^=vs__]).primary,#body-login :not(.body-login-container) .button.primary,#header .button.primary,#body-login :not(.body-login-container) .pager li a.primary,#header .pager li a.primary{border-color:var(--color-primary-text)}div.select2-drop .select2-search input.primary:not(:disabled):hover,div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):hover,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):hover,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):hover,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):hover,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):hover,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):hover,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):active{background-color:var(--color-primary-element-hover);border-color:var(--color-primary-element-hover)}div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):focus-visible,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):focus-visible,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):focus-visible,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):focus-visible,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus-visible,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):focus-visible,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):focus-visible{box-shadow:0 0 0 2px var(--color-main-text)}div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):active{color:var(--color-primary-text-dark)}div.select2-drop .select2-search input.primary:disabled,input[type=submit].primary:disabled,input[type=button].primary:disabled,input[type=reset].primary:disabled,button:not(.button-vue,[class^=vs__]).primary:disabled,.button.primary:disabled,.pager li a.primary:disabled{background-color:var(--color-primary-element);color:var(--color-primary-text-dark);cursor:default}div[contenteditable=false]{margin:3px 3px 3px 0;padding:7px 6px;font-size:13px;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-background-darker);outline:none;border-radius:var(--border-radius);background-color:var(--color-background-dark);color:var(--color-text-lighter);cursor:default;opacity:.5}input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]):not([type=color]):not([type=file]):not([type=image]){-webkit-appearance:textfield;-moz-appearance:textfield;height:36px}input[type=radio],input[type=checkbox],input[type=file],input[type=image]{height:auto;width:auto}input[type=color]{margin:3px;padding:0 2px;min-height:30px;width:40px;cursor:pointer}input[type=hidden]{height:0;width:0}input[type=time]{width:initial}select,button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{padding:8px 14px;font-size:var(--default-font-size);width:auto;min-height:36px;cursor:pointer;box-sizing:border-box;background-color:var(--color-background-dark)}select:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,input[type=button]:disabled,input[type=submit]:disabled,input[type=reset]:disabled{cursor:default}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]),select,div[contenteditable=true],textarea{margin:3px 3px 3px 0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);height:36px;outline:none;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):hover,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):active,select:not(:disabled):hover,select:not(:disabled):focus,select:not(:disabled):active,div[contenteditable=true]:not(:disabled):hover,div[contenteditable=true]:not(:disabled):focus,div[contenteditable=true]:not(:disabled):active,textarea:not(:disabled):hover,textarea:not(:disabled):focus,textarea:not(:disabled):active{border-color:var(--color-primary-element)}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,select:not(:disabled):focus,div[contenteditable=true]:not(:disabled):focus,textarea:not(:disabled):focus{cursor:text}.multiselect__input,.select2-input{background-color:var(--color-main-background);color:var(--color-main-text)}textarea,div[contenteditable=true]{padding:12px;height:auto}select{background:var(--icon-triangle-s-dark) no-repeat right 8px center;appearance:none;background-color:var(--color-main-background);padding-right:28px !important}select *,button:not(.button-vue,[class^=vs__]) *,.button *{cursor:pointer}select:disabled *,button:not(.button-vue,[class^=vs__]):disabled *,.button:disabled *{cursor:default}button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{font-weight:bold;border-radius:var(--border-radius-pill)}button:not(.button-vue,[class^=vs__])::-moz-focus-inner,.button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,input[type=reset]::-moz-focus-inner{border:0}button:not(.button-vue,[class^=vs__]).error,.button.error,input[type=button].error,input[type=submit].error,input[type=reset].error{background-color:var(--color-error) !important;border-color:var(--color-error) !important;color:#fff !important}button:not(.button-vue,.action-button,[class^=vs__])>span[class^=icon-],button:not(.button-vue,.action-button,[class^=vs__])>span[class*=" icon-"],.button>span[class^=icon-],.button>span[class*=" icon-"]{display:inline-block;vertical-align:text-bottom;opacity:.5}input[type=text]+.icon-confirm,input[type=password]+.icon-confirm,input[type=email]+.icon-confirm{margin-left:-13px !important;border-left-color:rgba(0,0,0,0) !important;border-radius:0 var(--border-radius-large) var(--border-radius-large) 0 !important;border-width:2px;background-clip:padding-box;background-color:var(--color-main-background) !important;opacity:1;height:36px;width:36px;padding:7px 6px;cursor:pointer;margin-right:0}input[type=text]+.icon-confirm:disabled,input[type=password]+.icon-confirm:disabled,input[type=email]+.icon-confirm:disabled{cursor:default;background-image:var(--icon-confirm-fade-dark)}input[type=text]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=password]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=email]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm{border-color:var(--color-error)}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus{border-color:var(--color-primary-element) !important;border-radius:var(--border-radius) !important}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled{border-color:var(--color-background-darker) !important}input[type=text]:active+.icon-confirm,input[type=text]:hover+.icon-confirm,input[type=text]:focus+.icon-confirm,input[type=password]:active+.icon-confirm,input[type=password]:hover+.icon-confirm,input[type=password]:focus+.icon-confirm,input[type=email]:active+.icon-confirm,input[type=email]:hover+.icon-confirm,input[type=email]:focus+.icon-confirm{border-color:var(--color-primary-element) !important;border-left-color:rgba(0,0,0,0) !important;z-index:2}button img,.button img{cursor:pointer}select,.button.multiselect{font-weight:normal}input[type=checkbox].radio,input[type=checkbox].checkbox,input[type=radio].radio,input[type=radio].checkbox{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}input[type=checkbox].radio+label,input[type=checkbox].checkbox+label,input[type=radio].radio+label,input[type=radio].checkbox+label{user-select:none}input[type=checkbox].radio:disabled+label,input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label,input[type=radio].checkbox:disabled+label:before{cursor:default}input[type=checkbox].radio+label:before,input[type=checkbox].checkbox+label:before,input[type=radio].radio+label:before,input[type=radio].checkbox+label:before{content:"";display:inline-block;height:14px;width:14px;vertical-align:middle;border-radius:50%;margin:0 6px 3px 3px;border:1px solid var(--color-text-lighter)}input[type=checkbox].radio:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].radio:focus+label:before,input[type=checkbox].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox:focus+label:before,input[type=radio].radio:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio:focus+label:before,input[type=radio].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox:focus+label:before{border-color:var(--color-primary-element)}input[type=checkbox].radio:focus-visible+label,input[type=checkbox].checkbox:focus-visible+label,input[type=radio].radio:focus-visible+label,input[type=radio].checkbox:focus-visible+label{outline-style:solid;outline-color:var(--color-main-text);outline-width:1px;outline-offset:2px}input[type=checkbox].radio:checked+label:before,input[type=checkbox].radio.checkbox:indeterminate+label:before,input[type=checkbox].checkbox:checked+label:before,input[type=checkbox].checkbox.checkbox:indeterminate+label:before,input[type=radio].radio:checked+label:before,input[type=radio].radio.checkbox:indeterminate+label:before,input[type=radio].checkbox:checked+label:before,input[type=radio].checkbox.checkbox:indeterminate+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:var(--color-primary-element);border-color:var(--color-primary-element)}input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label:before{border:1px solid var(--color-text-lighter);background-color:var(--color-text-maxcontrast) !important}input[type=checkbox].radio:checked:disabled+label:before,input[type=checkbox].checkbox:checked:disabled+label:before,input[type=radio].radio:checked:disabled+label:before,input[type=radio].checkbox:checked:disabled+label:before{background-color:var(--color-text-maxcontrast)}input[type=checkbox].radio+label~em,input[type=checkbox].checkbox+label~em,input[type=radio].radio+label~em,input[type=radio].checkbox+label~em{display:inline-block;margin-left:25px}input[type=checkbox].radio+label~em:last-of-type,input[type=checkbox].checkbox+label~em:last-of-type,input[type=radio].radio+label~em:last-of-type,input[type=radio].checkbox+label~em:last-of-type{margin-bottom:14px}input[type=checkbox].checkbox+label:before,input[type=radio].checkbox+label:before{border-radius:1px;height:14px;width:14px;box-shadow:none !important;background-position:center}input[type=checkbox].checkbox:checked+label:before,input[type=radio].checkbox:checked+label:before{background-image:url("../img/actions/checkbox-mark.svg")}input[type=checkbox].checkbox:indeterminate+label:before,input[type=radio].checkbox:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed.svg")}input[type=checkbox].radio--white+label:before,input[type=checkbox].radio--white:focus+label:before,input[type=checkbox].checkbox--white+label:before,input[type=checkbox].checkbox--white:focus+label:before,input[type=radio].radio--white+label:before,input[type=radio].radio--white:focus+label:before,input[type=radio].checkbox--white+label:before,input[type=radio].checkbox--white:focus+label:before{border-color:#bababa}input[type=checkbox].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox--white:not(:disabled):not(:checked)+label:hover:before{border-color:#fff}input[type=checkbox].radio--white:checked+label:before,input[type=checkbox].checkbox--white:checked+label:before,input[type=radio].radio--white:checked+label:before,input[type=radio].checkbox--white:checked+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:#dbdbdb;border-color:#dbdbdb}input[type=checkbox].radio--white:disabled+label:before,input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].radio--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{background-color:#bababa !important;border-color:rgba(255,255,255,.4) !important}input[type=checkbox].radio--white:checked:disabled+label:before,input[type=checkbox].checkbox--white:checked:disabled+label:before,input[type=radio].radio--white:checked:disabled+label:before,input[type=radio].checkbox--white:checked:disabled+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);border-color:rgba(255,255,255,.4) !important;background-color:#bababa}input[type=checkbox].checkbox--white:checked+label:before,input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:checked+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-color:rgba(0,0,0,0) !important;border-color:#fff !important;background-image:url("../img/actions/checkbox-mark-white.svg")}input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed-white.svg")}input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{opacity:.7}div.select2-drop{margin-top:-2px;background-color:var(--color-main-background)}div.select2-drop.select2-drop-active{border-color:var(--color-border-dark)}div.select2-drop .avatar{display:inline-block;margin-right:8px;vertical-align:middle}div.select2-drop .avatar img{cursor:pointer}div.select2-drop .select2-search input{min-height:auto;background:var(--icon-search-dark) no-repeat right center !important;background-origin:content-box !important}div.select2-drop .select2-results{max-height:250px;margin:0;padding:0}div.select2-drop .select2-results .select2-result-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}div.select2-drop .select2-results .select2-result-label span{cursor:pointer}div.select2-drop .select2-results .select2-result-label span em{cursor:inherit;background:unset}div.select2-drop .select2-results .select2-result,div.select2-drop .select2-results .select2-no-results,div.select2-drop .select2-results .select2-searching{position:relative;display:list-item;padding:12px;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-lighter)}div.select2-drop .select2-results .select2-result.select2-selected{background-color:var(--color-background-dark)}div.select2-drop .select2-results .select2-highlighted{background-color:var(--color-background-dark);color:var(--color-main-text)}.select2-chosen .avatar,.select2-chosen .avatar img,#select2-drop .avatar,#select2-drop .avatar img{cursor:pointer}div.select2-container-multi .select2-choices,div.select2-container-multi.select2-container-active .select2-choices{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-lighter) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px;min-height:44px}div.select2-container-multi .select2-choices:focus-within,div.select2-container-multi.select2-container-active .select2-choices:focus-within{border-color:var(--color-primary)}div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{line-height:20px;padding-left:5px}div.select2-container-multi .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi .select2-choices .select2-search-choice:hover,div.select2-container-multi .select2-choices .select2-search-choice:active,div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:hover,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{background-image:none;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-border-dark)}div.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice .select2-search-choice-close{display:none}div.select2-container-multi .select2-choices .select2-search-field input,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input{line-height:20px;min-height:28px;max-height:28px;color:var(--color-main-text)}div.select2-container-multi .select2-choices .select2-search-field input.select2-active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input.select2-active{background:none !important}div.select2-container{margin:3px 3px 3px 0}div.select2-container.select2-container-multi .select2-choices{display:flex;flex-wrap:wrap}div.select2-container.select2-container-multi .select2-choices li{float:none}div.select2-container a.select2-choice{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-lighter) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px 12px;min-height:44px}div.select2-container a.select2-choice:focus-within{border-color:var(--color-primary)}div.select2-container a.select2-choice .select2-search-choice{line-height:20px;padding-left:5px;background-image:none;background-color:var(--color-background-dark);border-color:var(--color-background-dark)}div.select2-container a.select2-choice .select2-search-choice .select2-search-choice-close{display:none}div.select2-container a.select2-choice .select2-search-choice.select2-search-choice-focus,div.select2-container a.select2-choice .select2-search-choice:hover{background-color:var(--color-border);border-color:var(--color-border)}div.select2-container a.select2-choice .select2-arrow{background:none;border-radius:0;border:none}div.select2-container a.select2-choice .select2-arrow b{background:var(--icon-triangle-s-dark) no-repeat center !important;opacity:.5}div.select2-container a.select2-choice:hover .select2-arrow b,div.select2-container a.select2-choice:focus .select2-arrow b,div.select2-container a.select2-choice:active .select2-arrow b{opacity:.7}div.select2-container a.select2-choice .select2-search-field input{line-height:20px}.v-select{margin:3px 3px 3px 0;display:inline-block}.v-select .dropdown-toggle{display:flex !important;flex-wrap:wrap}.v-select .dropdown-toggle .selected-tag{line-height:20px;padding-left:5px;background-image:none;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center}.v-select .dropdown-toggle .selected-tag .close{margin-left:3px}.v-select .dropdown-menu{padding:0}.v-select .dropdown-menu li{padding:5px;position:relative;display:list-item;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-lighter)}.v-select .dropdown-menu li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:25px;padding:3px 7px 4px 2px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0) !important;color:inherit !important}.v-select .dropdown-menu li a::before{content:" ";background-image:var(--icon-checkmark-dark);background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.v-select .dropdown-menu li.highlight{color:var(--color-main-text)}.v-select .dropdown-menu li.active>a{background-color:var(--color-background-dark);color:var(--color-main-text)}.v-select .dropdown-menu li.active>a::before{visibility:visible}progress:not(.vue){display:block;width:100%;padding:0;border:0 none;background-color:var(--color-background-dark);border-radius:var(--border-radius);flex-basis:100%;height:5px;overflow:hidden}progress:not(.vue).warn::-moz-progress-bar{background:var(--color-error)}progress:not(.vue).warn::-webkit-progress-value{background:var(--color-error)}progress:not(.vue)::-webkit-progress-bar{background:rgba(0,0,0,0)}progress:not(.vue)::-moz-progress-bar{border-radius:var(--border-radius);background:var(--color-primary);transition:250ms all ease-in-out}progress:not(.vue)::-webkit-progress-value{border-radius:var(--border-radius);background:var(--color-primary);transition:250ms all ease-in-out}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.shake{animation-name:shake;animation-duration:.7s;animation-timing-function:ease-out}label.infield{position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}::placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}#header,#expanddiv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#header a:not(.button):focus-visible,#header button:not(.button-vue):focus-visible,#header div[role=button]:focus-visible,#expanddiv a:not(.button):focus-visible,#expanddiv button:not(.button-vue):focus-visible,#expanddiv div[role=button]:focus-visible{outline:none}#header a:not(.button):focus-visible::after,#header .button-vue:focus-visible::after,#header div[role=button]:focus-visible::after,#expanddiv a:not(.button):focus-visible::after,#expanddiv .button-vue:focus-visible::after,#expanddiv div[role=button]:focus-visible::after{content:" ";position:absolute;transform:translateX(-50%);width:12px;height:2px;border-radius:3px;background-color:var(--color-primary-text);left:50%;opacity:1}#header a:not(.button):focus-visible::after,#header .button-vue:focus-visible::after,#expanddiv a:not(.button):focus-visible::after,#expanddiv .button-vue:focus-visible::after{bottom:2px}#header .header-right a:not(.button):focus-visible::after,#header .header-right div[role=button]:focus-visible::after,#expanddiv .header-right a:not(.button):focus-visible::after,#expanddiv .header-right div[role=button]:focus-visible::after{bottom:4px}#header .header-right #expand.menutoggle:focus-visible::after,#expanddiv .header-right #expand.menutoggle:focus-visible::after{left:40%}#body-user #header,#body-settings #header,#body-public #header{display:inline-flex;position:absolute;top:0;width:100%;z-index:2000;height:50px;box-sizing:border-box;justify-content:space-between}#nextcloud{padding:5px 0;padding-left:86px;position:relative;height:calc(100% - 4px);box-sizing:border-box;opacity:1;align-items:center;display:flex;flex-wrap:wrap;overflow:hidden;margin:2px}#nextcloud:hover,#nextcloud:active{opacity:1}#header .header-right>div>.menu{background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow));border-radius:var(--border-radius-large);box-sizing:border-box;z-index:2000;position:absolute;max-width:350px;min-height:66px;max-height:calc(100vh - 50px - 8px);right:8px;top:50px;margin:0;overflow-y:auto}#header .header-right>div>.menu:not(.popovermenu){display:none}#header .header-right>div>.menu:after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:100%;content:" ";height:0;width:0;position:absolute;pointer-events:none;right:10px}#header .header-right>div>.menu>div,#header .header-right>div>.menu>ul{-webkit-overflow-scrolling:touch;min-height:66px;max-height:calc(100vh - 50px - 8px)}#header .logo{display:inline-flex;background-image:var(--image-logoheader, var(--image-logo, url("../img/logo/logo.svg")));background-repeat:no-repeat;background-size:contain;background-position:center;width:62px;position:absolute;left:12px;top:1px;bottom:1px;filter:var(--image-logoheader-custom, var(--background-image-invert-if-bright))}#header .header-appname-container{display:none;padding-right:10px;flex-shrink:0}#header #header-left,#header .header-left,#header #header-right,#header .header-right{display:inline-flex;align-items:center}#header #header-left,#header .header-left{flex:1 0;white-space:nowrap;min-width:0}#header #header-right,#header .header-right{justify-content:flex-end;flex-shrink:1}#header .header-right>div,#header .header-right>form{height:100%;position:relative}#header .header-right>div>.menutoggle,#header .header-right>form>.menutoggle{display:flex;justify-content:center;align-items:center;width:50px;height:44px;cursor:pointer;opacity:.85;padding:0;margin:2px 0}#header .header-right>div>.menutoggle:focus,#header .header-right>form>.menutoggle:focus{opacity:1}#header .header-right>div>.menutoggle:focus-visible,#header .header-right>form>.menutoggle:focus-visible{outline:none}.header-appname-container .header-appname{opacity:.75}.header-appname{color:var(--color-primary-text);font-size:16px;font-weight:bold;margin:0;padding:0;padding-right:5px;overflow:hidden;text-overflow:ellipsis;flex:1 1 100%}.header-shared-by{color:var(--color-primary-text);position:relative;font-weight:300;font-size:11px;line-height:11px;overflow:hidden;text-overflow:ellipsis}#skip-actions{position:absolute;overflow:hidden;z-index:9999;top:-999px;left:3px;height:50px;padding:11px}#skip-actions:focus-within{top:50px}header #emptycontent h2,header .emptycontent h2{font-weight:normal;font-size:16px}header #emptycontent [class^=icon-],header #emptycontent [class*=icon-],header .emptycontent [class^=icon-],header .emptycontent [class*=icon-]{background-size:48px;height:48px;width:48px}[class^=icon-],[class*=" icon-"]{background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px}.icon-breadcrumb{background-image:url("../img/breadcrumb.svg?v=1")}.loading,.loading-small,.icon-loading,.icon-loading-dark,.icon-loading-small,.icon-loading-small-dark{position:relative}.loading:after,.loading-small:after,.icon-loading:after,.icon-loading-dark:after,.icon-loading-small:after,.icon-loading-small-dark:after{z-index:2;content:"";height:28px;width:28px;margin:-16px 0 0 -16px;position:absolute;top:50%;left:50%;border-radius:100%;-webkit-animation:rotate .8s infinite linear;animation:rotate .8s infinite linear;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;border:2px solid var(--color-loading-light);border-top-color:var(--color-loading-dark);filter:var(--background-invert-if-dark)}.primary .loading:after,.primary+.loading:after,.primary .loading-small:after,.primary+.loading-small:after,.primary .icon-loading:after,.primary+.icon-loading:after,.primary .icon-loading-dark:after,.primary+.icon-loading-dark:after,.primary .icon-loading-small:after,.primary+.icon-loading-small:after,.primary .icon-loading-small-dark:after,.primary+.icon-loading-small-dark:after{filter:var(--primary-invert-if-bright)}.icon-loading-dark:after,.icon-loading-small-dark:after{border:2px solid var(--color-loading-dark);border-top-color:var(--color-loading-light)}.icon-loading-small:after,.icon-loading-small-dark:after{height:12px;width:12px;margin:-8px 0 0 -8px}audio.icon-loading,canvas.icon-loading,embed.icon-loading,iframe.icon-loading,img.icon-loading,input.icon-loading,object.icon-loading,video.icon-loading{background-image:url("../img/loading.gif")}audio.icon-loading-dark,canvas.icon-loading-dark,embed.icon-loading-dark,iframe.icon-loading-dark,img.icon-loading-dark,input.icon-loading-dark,object.icon-loading-dark,video.icon-loading-dark{background-image:url("../img/loading-dark.gif")}audio.icon-loading-small,canvas.icon-loading-small,embed.icon-loading-small,iframe.icon-loading-small,img.icon-loading-small,input.icon-loading-small,object.icon-loading-small,video.icon-loading-small{background-image:url("../img/loading-small.gif")}audio.icon-loading-small-dark,canvas.icon-loading-small-dark,embed.icon-loading-small-dark,iframe.icon-loading-small-dark,img.icon-loading-small-dark,input.icon-loading-small-dark,object.icon-loading-small-dark,video.icon-loading-small-dark{background-image:url("../img/loading-small-dark.gif")}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon-32{background-size:32px !important}.icon-white.icon-shadow,.icon-audio-white,.icon-audio-off-white,.icon-fullscreen-white,.icon-screen-white,.icon-screen-off-white,.icon-video-white,.icon-video-off-white{filter:drop-shadow(1px 1px 4px var(--color-box-shadow))}:root{--body-container-margin: calc(var(--default-grid-baseline) * 2);--body-container-radius: calc(var(--default-clickable-area) / 2 + var(--default-grid-baseline) * 2 - 2px);--body-height: calc(100% - env(safe-area-inset-bottom) - 50px - var(--body-container-margin))}@media screen and (max-width: 1024px){:root{--body-container-margin: 0px;--body-container-radius: 0px}}html{width:100%;height:100%;position:absolute;background-color:var(--color-background-plain, var(--color-main-background))}body{background-color:var(--color-background-plain, var(--color-main-background));background-image:var(--image-background, var(--image-background-default));background-size:cover;background-position:center;position:fixed;width:100%;height:calc(100vh - env(safe-area-inset-bottom))}h2{font-weight:bold;font-size:20px;margin-bottom:12px;line-height:30px;color:var(--color-text-light)}h3{font-size:16px;margin:12px 0;color:var(--color-text-light)}h4{font-size:14px}em{font-style:normal;color:var(--color-text-lighter)}dl{padding:12px 0}dt,dd{display:inline-block;padding:12px;padding-left:0}dt{width:130px;white-space:nowrap;text-align:right}kbd{padding:4px 10px;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.2);border-radius:var(--border-radius);display:inline-block;white-space:nowrap}#content[class*=app-] *{box-sizing:border-box}#app-navigation:not(.vue){--border-radius-pill: calc(var(--default-clickable-area) / 2);width:300px;z-index:500;overflow-y:auto;overflow-x:hidden;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);-webkit-user-select:none;position:sticky;height:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0}#app-navigation:not(.vue) .app-navigation-new{display:block;padding:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue) .app-navigation-new button{display:inline-block;width:100%;padding:10px;padding-left:34px;background-position:10px center;text-align:left;margin:0}#app-navigation:not(.vue) li{position:relative}#app-navigation:not(.vue)>ul{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;padding:calc(var(--default-grid-baseline)*2);padding-bottom:0}#app-navigation:not(.vue)>ul:last-child{padding-bottom:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue)>ul>li{display:inline-flex;flex-wrap:wrap;order:1;flex-shrink:0;margin:0;margin-bottom:3px;width:100%;border-radius:var(--border-radius-pill)}#app-navigation:not(.vue)>ul>li.pinned{order:2}#app-navigation:not(.vue)>ul>li.pinned.first-pinned{margin-top:auto !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-deleted{padding-left:44px !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-edit{padding-left:38px !important}#app-navigation:not(.vue)>ul>li a:hover,#app-navigation:not(.vue)>ul>li a:hover>a,#app-navigation:not(.vue)>ul>li a:focus,#app-navigation:not(.vue)>ul>li a:focus>a{background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li a:focus-visible{box-shadow:var(--color-primary) inset 0 0 0 2px;outline:none}#app-navigation:not(.vue)>ul>li.active,#app-navigation:not(.vue)>ul>li.active>a,#app-navigation:not(.vue)>ul>li a:active,#app-navigation:not(.vue)>ul>li a:active>a,#app-navigation:not(.vue)>ul>li a.selected,#app-navigation:not(.vue)>ul>li a.selected>a,#app-navigation:not(.vue)>ul>li a.active,#app-navigation:not(.vue)>ul>li a.active>a{background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li.icon-loading-small:after{left:22px;top:22px}#app-navigation:not(.vue)>ul>li.deleted>ul,#app-navigation:not(.vue)>ul>li.collapsible:not(.open)>ul{display:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption{font-weight:bold;line-height:44px;padding:0 44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption:not(:first-child){margin-top:22px}#app-navigation:not(.vue)>ul>li>ul{flex:0 1 auto;width:100%;position:relative}#app-navigation:not(.vue)>ul>li>ul>li{display:inline-flex;flex-wrap:wrap;padding-left:44px;width:100%;margin-bottom:3px}#app-navigation:not(.vue)>ul>li>ul>li:hover,#app-navigation:not(.vue)>ul>li>ul>li:hover>a,#app-navigation:not(.vue)>ul>li>ul>li:focus,#app-navigation:not(.vue)>ul>li>ul>li:focus>a{border-radius:var(--border-radius-pill);background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li>ul>li.active,#app-navigation:not(.vue)>ul>li>ul>li.active>a,#app-navigation:not(.vue)>ul>li>ul>li a.selected,#app-navigation:not(.vue)>ul>li>ul>li a.selected>a{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small:after{left:22px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-deleted{margin-left:4px;padding-left:84px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-edit{margin-left:4px;padding-left:78px !important}#app-navigation:not(.vue)>ul>li,#app-navigation:not(.vue)>ul>li>ul>li{position:relative;box-sizing:border-box}#app-navigation:not(.vue)>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li.icon-loading-small>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>a,#app-navigation:not(.vue)>ul>li>ul>li>a{background-size:16px 16px;background-position:14px center;background-repeat:no-repeat;display:block;justify-content:space-between;line-height:44px;min-height:44px;padding:0 12px 0 14px;overflow:hidden;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--border-radius-pill);color:var(--color-main-text);flex:1 1 0px;z-index:100}#app-navigation:not(.vue)>ul>li>a.svg,#app-navigation:not(.vue)>ul>li>ul>li>a.svg{padding:0 12px 0 44px}#app-navigation:not(.vue)>ul>li>a.svg :focus-visible,#app-navigation:not(.vue)>ul>li>ul>li>a.svg :focus-visible{padding:0 8px 0 42px}#app-navigation:not(.vue)>ul>li>a:first-child img,#app-navigation:not(.vue)>ul>li>ul>li>a:first-child img{margin-right:11px;width:16px;height:16px;filter:var(--background-invert-if-dark)}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils{display:inline-block;float:right}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter{padding-right:0 !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet{position:absolute;display:block;margin:16px;width:12px;height:12px;border:none;border-radius:50%;cursor:pointer;transition:background 100ms ease-in-out}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet+a,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet+a{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-menu,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-menu{top:44px}#app-navigation:not(.vue)>ul>li.editing .app-navigation-entry-edit,#app-navigation:not(.vue)>ul>li>ul>li.editing .app-navigation-entry-edit{opacity:1;z-index:250}#app-navigation:not(.vue)>ul>li.deleted .app-navigation-entry-deleted,#app-navigation:not(.vue)>ul>li>ul>li.deleted .app-navigation-entry-deleted{transform:translateX(0);z-index:250}#app-navigation:not(.vue).hidden{display:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{border:0;opacity:.5;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .collapsible .collapse{opacity:0;position:absolute;width:44px;height:44px;margin:0;z-index:110;left:0}#app-navigation:not(.vue) .collapsible .collapse:focus-visible{opacity:1;border-width:0;box-shadow:inset 0 0 0 2px var(--color-primary);background:none}#app-navigation:not(.vue) .collapsible:before{position:absolute;height:44px;width:44px;margin:0;padding:0;background:none;background-image:var(--icon-triangle-s-dark);background-size:16px;background-repeat:no-repeat;background-position:center;border:none;border-radius:0;outline:none !important;box-shadow:none;content:" ";opacity:0;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);z-index:105;border-radius:50%;transition:opacity 100ms ease-in-out}#app-navigation:not(.vue) .collapsible>a:first-child{padding-left:44px}#app-navigation:not(.vue) .collapsible:hover:before,#app-navigation:not(.vue) .collapsible:focus:before{opacity:1}#app-navigation:not(.vue) .collapsible:hover>a,#app-navigation:not(.vue) .collapsible:focus>a{background-image:none}#app-navigation:not(.vue) .collapsible:hover>.app-navigation-entry-bullet,#app-navigation:not(.vue) .collapsible:focus>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue) .collapsible.open:before{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}#app-navigation:not(.vue) .app-navigation-entry-utils{flex:0 1 auto}#app-navigation:not(.vue) .app-navigation-entry-utils ul{display:flex !important;align-items:center;justify-content:flex-end}#app-navigation:not(.vue) .app-navigation-entry-utils li{width:44px !important;height:44px}#app-navigation:not(.vue) .app-navigation-entry-utils button{height:100%;width:100%;margin:0;box-shadow:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]){background-image:var(--icon-more-dark)}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter{overflow:hidden;text-align:right;font-size:9pt;line-height:44px;padding:0 12px}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted{padding:0;text-align:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span{padding:2px 5px;border-radius:10px;background-color:var(--color-primary);color:var(--color-primary-text)}#app-navigation:not(.vue) .app-navigation-entry-edit{padding-left:5px;padding-right:5px;display:block;width:calc(100% - 1px);transition:opacity 250ms ease-in-out;opacity:0;position:absolute;background-color:var(--color-main-background);z-index:-1}#app-navigation:not(.vue) .app-navigation-entry-edit form,#app-navigation:not(.vue) .app-navigation-entry-edit div{display:inline-flex;width:100%}#app-navigation:not(.vue) .app-navigation-entry-edit input{padding:5px;margin-right:0;height:38px}#app-navigation:not(.vue) .app-navigation-entry-edit input:hover,#app-navigation:not(.vue) .app-navigation-entry-edit input:focus{z-index:1}#app-navigation:not(.vue) .app-navigation-entry-edit input[type=text]{width:100%;min-width:0;border-bottom-right-radius:0;border-top-right-radius:0}#app-navigation:not(.vue) .app-navigation-entry-edit button,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]){width:36px;height:38px;flex:0 0 36px}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:last-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:last-child){border-radius:0 !important}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:first-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:first-child){margin-left:-1px}#app-navigation:not(.vue) .app-navigation-entry-edit button:last-child,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):last-child{border-bottom-right-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-left-radius:0;border-top-left-radius:0}#app-navigation:not(.vue) .app-navigation-entry-deleted{display:inline-flex;padding-left:44px;transform:translateX(300px)}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-description{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 0px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{margin:0;height:44px;width:44px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{opacity:1}#app-navigation:not(.vue) .app-navigation-entry-edit,#app-navigation:not(.vue) .app-navigation-entry-deleted{width:calc(100% - 1px);transition:transform 250ms ease-in-out,opacity 250ms ease-in-out,z-index 250ms ease-in-out;position:absolute;left:0;background-color:var(--color-main-background);box-sizing:border-box}#app-navigation:not(.vue) .drag-and-drop{-webkit-transition:padding-bottom 500ms ease 0s;transition:padding-bottom 500ms ease 0s;padding-bottom:40px}#app-navigation:not(.vue) .error{color:var(--color-error)}#app-navigation:not(.vue) .app-navigation-entry-utils ul,#app-navigation:not(.vue) .app-navigation-entry-menu ul{list-style-type:none}#content{box-sizing:border-box;position:static;margin:var(--body-container-margin);margin-top:50px;padding:0;display:flex;width:calc(100% - var(--body-container-margin)*2);height:var(--body-height);border-radius:var(--body-container-radius);overflow:hidden}#content:not(.with-sidebar--full){position:fixed}@media only screen and (max-width: 1024px){#content{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}#app-navigation{border-top-left-radius:var(--border-radius-large)}#app-sidebar{border-top-right-radius:var(--border-radius-large)}}#app-content{z-index:1000;background-color:var(--color-main-background);flex-basis:100vw;overflow:auto;position:initial;height:100%}#app-content>.section:first-child{border-top:none}#app-content #app-content-wrapper{display:flex;position:relative;align-items:stretch;min-height:100%}#app-content #app-content-wrapper .app-content-details{flex:1 1 524px}#app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back{display:none}#app-sidebar{width:27vw;min-width:300px;max-width:500px;display:block;position:-webkit-sticky;position:sticky;top:50px;right:0;overflow-y:auto;overflow-x:hidden;z-index:1500;opacity:.7px;height:calc(100vh - 50px);background:var(--color-main-background);border-left:1px solid var(--color-border);flex-shrink:0}#app-sidebar.disappear{display:none}#app-settings{margin-top:auto}#app-settings.open #app-settings-content,#app-settings.opened #app-settings-content{display:block}#app-settings-content{display:none;padding:calc(var(--default-grid-baseline)*2);padding-top:0;padding-left:calc(var(--default-grid-baseline)*4);max-height:300px;overflow-y:auto;box-sizing:border-box}#app-settings-content input[type=text]{width:93%}#app-settings-content .info-text{padding:5px 0 7px 22px;color:var(--color-text-lighter)}#app-settings-content input[type=checkbox].radio+label,#app-settings-content input[type=checkbox].checkbox+label,#app-settings-content input[type=radio].radio+label,#app-settings-content input[type=radio].checkbox+label{display:inline-block;width:100%;padding:5px 0}#app-settings-header{box-sizing:border-box;background-color:rgba(0,0,0,0);overflow:hidden;border-radius:calc(var(--default-clickable-area)/2);padding:calc(var(--default-grid-baseline)*2);padding-top:0}#app-settings-header .settings-button{display:flex;align-items:center;height:44px;width:100%;padding:0;margin:0;background-color:rgba(0,0,0,0);box-shadow:none;border:0;border-radius:calc(var(--default-clickable-area)/2);text-align:left;font-weight:normal;font-size:100%;opacity:.8;color:var(--color-main-text)}#app-settings-header .settings-button.opened{border-top:solid 1px var(--color-border);background-color:var(--color-main-background);margin-top:8px}#app-settings-header .settings-button:hover,#app-settings-header .settings-button:focus{background-color:var(--color-background-hover)}#app-settings-header .settings-button::before{background-image:var(--icon-settings-dark);background-position:14px center;background-repeat:no-repeat;content:"";width:44px;height:44px;top:0;left:0;display:block}#app-settings-header .settings-button:focus-visible{box-shadow:0 0 0 2px inset var(--color-primary) !important;background-position:12px center}.section{display:block;padding:30px;margin-bottom:24px}.section.hidden{display:none !important}.section input[type=checkbox],.section input[type=radio]{vertical-align:-2px;margin-right:4px}.sub-section{position:relative;margin-top:10px;margin-left:27px;margin-bottom:10px}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}.tabHeaders{display:flex;margin-bottom:16px}.tabHeaders .tabHeader{display:flex;flex-direction:column;flex-grow:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color-text-lighter);margin-bottom:1px;padding:5px}.tabHeaders .tabHeader.hidden{display:none}.tabHeaders .tabHeader:first-child{padding-left:15px}.tabHeaders .tabHeader:last-child{padding-right:15px}.tabHeaders .tabHeader .icon{display:inline-block;width:100%;height:16px;background-size:16px;vertical-align:middle;margin-top:-2px;margin-right:3px;opacity:.7;cursor:pointer}.tabHeaders .tabHeader a{color:var(--color-text-lighter);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis}.tabHeaders .tabHeader.selected{font-weight:bold}.tabHeaders .tabHeader.selected,.tabHeaders .tabHeader:hover,.tabHeaders .tabHeader:focus{margin-bottom:0px;color:var(--color-main-text);border-bottom:1px solid var(--color-text-lighter)}.tabsContainer{clear:left}.tabsContainer .tab{padding:0 15px 15px}.contact .popovermenu ul>li>a>img,.popover__menu>li>a>img{filter:var(--background-invert-if-dark)}.contact .popovermenu ul>li>a>img[src^=data],.popover__menu>li>a>img[src^=data]{filter:none}.bubble,.app-navigation-entry-menu,.popovermenu{position:absolute;background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--border-radius-large);padding:3px;z-index:110;margin:5px;margin-top:-5px;right:0;filter:drop-shadow(0 1px 3px var(--color-box-shadow));display:none;will-change:filter}.bubble:after,.app-navigation-entry-menu:after,.popovermenu:after{bottom:100%;right:7px;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);border-width:9px}.bubble.menu-center,.app-navigation-entry-menu.menu-center,.popovermenu.menu-center{transform:translateX(50%);right:50%;margin-right:0}.bubble.menu-center:after,.app-navigation-entry-menu.menu-center:after,.popovermenu.menu-center:after{right:50%;transform:translateX(50%)}.bubble.menu-left,.app-navigation-entry-menu.menu-left,.popovermenu.menu-left{right:auto;left:0;margin-right:0}.bubble.menu-left:after,.app-navigation-entry-menu.menu-left:after,.popovermenu.menu-left:after{left:6px;right:auto}.bubble.open,.app-navigation-entry-menu.open,.popovermenu.open{display:block}.bubble.contactsmenu-popover,.app-navigation-entry-menu.contactsmenu-popover,.popovermenu.contactsmenu-popover{margin:0}.bubble ul,.app-navigation-entry-menu ul,.popovermenu ul{display:flex !important;flex-direction:column}.bubble li,.app-navigation-entry-menu li,.popovermenu li{display:flex;flex:0 0 auto}.bubble li.hidden,.app-navigation-entry-menu li.hidden,.popovermenu li.hidden{display:none}.bubble li>button,.bubble li>a,.bubble li>.menuitem,.app-navigation-entry-menu li>button,.app-navigation-entry-menu li>a,.app-navigation-entry-menu li>.menuitem,.popovermenu li>button,.popovermenu li>a,.popovermenu li>.menuitem{cursor:pointer;line-height:44px;border:0;border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{min-width:0;min-height:0;background-position:14px center;background-size:16px}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"]{padding:22px 0 22px 44px}.bubble li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{padding:0 14px 0 44px !important}.bubble li>button:hover,.bubble li>button:focus,.bubble li>a:hover,.bubble li>a:focus,.bubble li>.menuitem:hover,.bubble li>.menuitem:focus,.app-navigation-entry-menu li>button:hover,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>a:hover,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>.menuitem:hover,.app-navigation-entry-menu li>.menuitem:focus,.popovermenu li>button:hover,.popovermenu li>button:focus,.popovermenu li>a:hover,.popovermenu li>a:focus,.popovermenu li>.menuitem:hover,.popovermenu li>.menuitem:focus{background-color:var(--color-background-hover)}.bubble li>button:focus,.bubble li>button:focus-visible,.bubble li>a:focus,.bubble li>a:focus-visible,.bubble li>.menuitem:focus,.bubble li>.menuitem:focus-visible,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>button:focus-visible,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>a:focus-visible,.app-navigation-entry-menu li>.menuitem:focus,.app-navigation-entry-menu li>.menuitem:focus-visible,.popovermenu li>button:focus,.popovermenu li>button:focus-visible,.popovermenu li>a:focus,.popovermenu li>a:focus-visible,.popovermenu li>.menuitem:focus,.popovermenu li>.menuitem:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element)}.bubble li>button.active,.bubble li>a.active,.bubble li>.menuitem.active,.app-navigation-entry-menu li>button.active,.app-navigation-entry-menu li>a.active,.app-navigation-entry-menu li>.menuitem.active,.popovermenu li>button.active,.popovermenu li>a.active,.popovermenu li>.menuitem.active{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}.bubble li>button.action,.bubble li>a.action,.bubble li>.menuitem.action,.app-navigation-entry-menu li>button.action,.app-navigation-entry-menu li>a.action,.app-navigation-entry-menu li>.menuitem.action,.popovermenu li>button.action,.popovermenu li>a.action,.popovermenu li>.menuitem.action{padding:inherit !important}.bubble li>button>span,.bubble li>a>span,.bubble li>.menuitem>span,.app-navigation-entry-menu li>button>span,.app-navigation-entry-menu li>a>span,.app-navigation-entry-menu li>.menuitem>span,.popovermenu li>button>span,.popovermenu li>a>span,.popovermenu li>.menuitem>span{cursor:pointer;white-space:nowrap}.bubble li>button>p,.bubble li>a>p,.bubble li>.menuitem>p,.app-navigation-entry-menu li>button>p,.app-navigation-entry-menu li>a>p,.app-navigation-entry-menu li>.menuitem>p,.popovermenu li>button>p,.popovermenu li>a>p,.popovermenu li>.menuitem>p{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}.bubble li>button>select,.bubble li>a>select,.bubble li>.menuitem>select,.app-navigation-entry-menu li>button>select,.app-navigation-entry-menu li>a>select,.app-navigation-entry-menu li>.menuitem>select,.popovermenu li>button>select,.popovermenu li>a>select,.popovermenu li>.menuitem>select{margin:0;margin-left:6px}.bubble li>button:not(:empty),.bubble li>a:not(:empty),.bubble li>.menuitem:not(:empty),.app-navigation-entry-menu li>button:not(:empty),.app-navigation-entry-menu li>a:not(:empty),.app-navigation-entry-menu li>.menuitem:not(:empty),.popovermenu li>button:not(:empty),.popovermenu li>a:not(:empty),.popovermenu li>.menuitem:not(:empty){padding-right:14px !important}.bubble li>button>img,.bubble li>a>img,.bubble li>.menuitem>img,.app-navigation-entry-menu li>button>img,.app-navigation-entry-menu li>a>img,.app-navigation-entry-menu li>.menuitem>img,.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:16px;padding:14px}.bubble li>button>input.radio+label,.bubble li>button>input.checkbox+label,.bubble li>a>input.radio+label,.bubble li>a>input.checkbox+label,.bubble li>.menuitem>input.radio+label,.bubble li>.menuitem>input.checkbox+label,.app-navigation-entry-menu li>button>input.radio+label,.app-navigation-entry-menu li>button>input.checkbox+label,.app-navigation-entry-menu li>a>input.radio+label,.app-navigation-entry-menu li>a>input.checkbox+label,.app-navigation-entry-menu li>.menuitem>input.radio+label,.app-navigation-entry-menu li>.menuitem>input.checkbox+label,.popovermenu li>button>input.radio+label,.popovermenu li>button>input.checkbox+label,.popovermenu li>a>input.radio+label,.popovermenu li>a>input.checkbox+label,.popovermenu li>.menuitem>input.radio+label,.popovermenu li>.menuitem>input.checkbox+label{padding:0 !important;width:100%}.bubble li>button>input.checkbox+label::before,.bubble li>a>input.checkbox+label::before,.bubble li>.menuitem>input.checkbox+label::before,.app-navigation-entry-menu li>button>input.checkbox+label::before,.app-navigation-entry-menu li>a>input.checkbox+label::before,.app-navigation-entry-menu li>.menuitem>input.checkbox+label::before,.popovermenu li>button>input.checkbox+label::before,.popovermenu li>a>input.checkbox+label::before,.popovermenu li>.menuitem>input.checkbox+label::before{margin:-2px 13px 0}.bubble li>button>input.radio+label::before,.bubble li>a>input.radio+label::before,.bubble li>.menuitem>input.radio+label::before,.app-navigation-entry-menu li>button>input.radio+label::before,.app-navigation-entry-menu li>a>input.radio+label::before,.app-navigation-entry-menu li>.menuitem>input.radio+label::before,.popovermenu li>button>input.radio+label::before,.popovermenu li>a>input.radio+label::before,.popovermenu li>.menuitem>input.radio+label::before{margin:-2px 12px 0}.bubble li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}.bubble li>button form,.bubble li>a form,.bubble li>.menuitem form,.app-navigation-entry-menu li>button form,.app-navigation-entry-menu li>a form,.app-navigation-entry-menu li>.menuitem form,.popovermenu li>button form,.popovermenu li>a form,.popovermenu li>.menuitem form{display:flex;flex:1 1 auto;align-items:center}.bubble li>button form:not(:first-child),.bubble li>a form:not(:first-child),.bubble li>.menuitem form:not(:first-child),.app-navigation-entry-menu li>button form:not(:first-child),.app-navigation-entry-menu li>a form:not(:first-child),.app-navigation-entry-menu li>.menuitem form:not(:first-child),.popovermenu li>button form:not(:first-child),.popovermenu li>a form:not(:first-child),.popovermenu li>.menuitem form:not(:first-child){margin-left:5px}.bubble li>button>span.hidden+form,.bubble li>button>span[style*="display:none"]+form,.bubble li>a>span.hidden+form,.bubble li>a>span[style*="display:none"]+form,.bubble li>.menuitem>span.hidden+form,.bubble li>.menuitem>span[style*="display:none"]+form,.app-navigation-entry-menu li>button>span.hidden+form,.app-navigation-entry-menu li>button>span[style*="display:none"]+form,.app-navigation-entry-menu li>a>span.hidden+form,.app-navigation-entry-menu li>a>span[style*="display:none"]+form,.app-navigation-entry-menu li>.menuitem>span.hidden+form,.app-navigation-entry-menu li>.menuitem>span[style*="display:none"]+form,.popovermenu li>button>span.hidden+form,.popovermenu li>button>span[style*="display:none"]+form,.popovermenu li>a>span.hidden+form,.popovermenu li>a>span[style*="display:none"]+form,.popovermenu li>.menuitem>span.hidden+form,.popovermenu li>.menuitem>span[style*="display:none"]+form{margin-left:0}.bubble li>button input,.bubble li>a input,.bubble li>.menuitem input,.app-navigation-entry-menu li>button input,.app-navigation-entry-menu li>a input,.app-navigation-entry-menu li>.menuitem input,.popovermenu li>button input,.popovermenu li>a input,.popovermenu li>.menuitem input{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}.bubble li>button input:not(:first-child),.bubble li>a input:not(:first-child),.bubble li>.menuitem input:not(:first-child),.app-navigation-entry-menu li>button input:not(:first-child),.app-navigation-entry-menu li>a input:not(:first-child),.app-navigation-entry-menu li>.menuitem input:not(:first-child),.popovermenu li>button input:not(:first-child),.popovermenu li>a input:not(:first-child),.popovermenu li>.menuitem input:not(:first-child){margin-left:5px}.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input{margin-top:12px}.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input{margin-bottom:0px}.bubble li>button,.app-navigation-entry-menu li>button,.popovermenu li>button{padding:0}.bubble li>button span,.app-navigation-entry-menu li>button span,.popovermenu li>button span{opacity:1}.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:44px;height:44px}.app-content-list{position:-webkit-sticky;position:relative;top:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform 250ms ease-in-out;min-height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;flex:1 1 200px;min-width:200px;max-width:300px}.app-content-list .app-content-list-item{position:relative;height:68px;cursor:pointer;padding:10px 7px;display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto}.app-content-list .app-content-list-item>[class^=icon-],.app-content-list .app-content-list-item>[class*=" icon-"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]{order:4;width:24px;height:24px;margin:-7px;padding:22px;opacity:.3;cursor:pointer}.app-content-list .app-content-list-item>[class^=icon-]:hover,.app-content-list .app-content-list-item>[class^=icon-]:focus,.app-content-list .app-content-list-item>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:focus{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:focus{opacity:1}.app-content-list .app-content-list-item>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>[class*=" icon-"].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"].icon-starred{opacity:1}.app-content-list .app-content-list-item:hover,.app-content-list .app-content-list-item:focus,.app-content-list .app-content-list-item.active{background-color:var(--color-background-dark)}.app-content-list .app-content-list-item:hover .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item:focus .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item.active .app-content-list-item-checkbox.checkbox+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item .app-content-list-item-star{position:absolute;height:40px;width:40px;z-index:50}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label+.app-content-list-item-icon{opacity:.7}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label{top:14px;left:7px;display:none}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label::before{margin:0}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label~.app-content-list-item-star{display:none}.app-content-list .app-content-list-item .app-content-list-item-star{display:flex;top:10px;left:32px;background-size:16px;height:20px;width:20px;margin:0;padding:0}.app-content-list .app-content-list-item .app-content-list-item-icon{position:absolute;display:inline-block;height:40px;width:40px;line-height:40px;border-radius:50%;vertical-align:middle;margin-right:10px;color:#fff;text-align:center;font-size:1.5em;text-transform:capitalize;object-fit:cover;user-select:none;cursor:pointer;top:50%;margin-top:-20px}.app-content-list .app-content-list-item .app-content-list-item-line-one,.app-content-list .app-content-list-item .app-content-list-item-line-two{display:block;padding-left:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1;flex:1 1 0px;padding-right:10px;cursor:pointer}.app-content-list .app-content-list-item .app-content-list-item-line-two{opacity:.5;order:3;flex:1 0;flex-basis:calc(100% - 44px)}.app-content-list .app-content-list-item .app-content-list-item-details{order:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;opacity:.5;font-size:80%;user-select:none}.app-content-list .app-content-list-item .app-content-list-item-menu{order:4;position:relative}.app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu{margin:0;right:-2px}.app-content-list.selection .app-content-list-item-checkbox.checkbox+label{display:flex}.pull-left{float:left}.pull-right{float:right}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.hidden{display:none}.hidden-visually{position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}.bold{font-weight:600}.center{text-align:center}.inlineblock{display:inline-block}::-moz-focus-inner{border:0}@media only screen and (width < 1024px){#dropdown{margin-right:10% !important;width:80% !important}.ui-autocomplete{z-index:1000 !important}.error-wide{width:100%;margin-left:0 !important;box-sizing:border-box}#app-navigation:not(.vue){transform:translateX(-300px);position:fixed;height:var(--body-height)}.snapjs-left #app-navigation{transform:translateX(0)}#app-navigation:not(.hidden)+#app-content{margin-left:0}.skip-navigation.skip-content{left:3px;margin-left:0}.app-content-list{background:var(--color-main-background);flex:1 1 100%;max-height:unset;max-width:100%}.app-content-list+.app-content-details{display:none}.app-content-list.showdetails{display:none}.app-content-list.showdetails+.app-content-details{display:initial}#app-content.showdetails #app-navigation-toggle{transform:translateX(-44px)}#app-content.showdetails #app-navigation-toggle-back{position:fixed;display:inline-block !important;top:50px;left:0;width:44px;height:44px;z-index:1050;background-color:rgba(255,255,255,.7);cursor:pointer;opacity:.6;transform:rotate(90deg)}#app-content.showdetails .app-content-list{transform:translateX(-100%)}#app-navigation-toggle{position:fixed;display:inline-block !important;left:0;width:44px;height:44px;z-index:1050;cursor:pointer;opacity:.6}#app-navigation-toggle:hover,#app-navigation-toggle:focus{opacity:1}#app-navigation+#app-content .files-controls{padding-left:44px}#body-user .app-files.viewer-mode .files-controls{padding-left:0 !important}.app-files.viewer-mode #app-navigation-toggle{display:none !important}table.multiselect thead{left:0 !important}#usersearchform{display:none}#body-settings .files-controls{min-width:1024px !important}#oc-dialog-filepicker-content .filelist .column-size,#oc-dialog-filepicker-content .filelist .column-mtime,#oc-dialog-filepicker-content .filelist .filesize,#oc-dialog-filepicker-content .filelist .date{display:none}#oc-dialog-filepicker-content .filelist .filename{max-width:100%}.snapjs-left table.multiselect thead{top:44px}}@media only screen and (max-width: 480px){#header .header-right>div>.menu{max-width:calc(100vw - 10px);position:fixed}#header .header-right>div>.menu::after{display:none !important}#header .header-right>div.openedMenu::after{display:block}#header .header-right>div::after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:0;content:" ";height:0;width:0;position:absolute;pointer-events:none;right:15px;z-index:2001;display:none}#header .header-right>div#settings::after{right:27px}}.tooltip{position:absolute;display:block;font-family:var(--font-face);font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;overflow-wrap:anywhere;font-size:12px;opacity:0;z-index:100000;margin-top:-3px;padding:10px 0;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.tooltip.in,.tooltip.show,.tooltip.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.tooltip.top .tooltip-arrow,.tooltip[x-placement^=top]{left:50%;margin-left:-10px}.tooltip.bottom,.tooltip[x-placement^=bottom]{margin-top:3px;padding:10px 0}.tooltip.right,.tooltip[x-placement^=right]{margin-left:3px;padding:0 10px}.tooltip.right .tooltip-arrow,.tooltip[x-placement^=right] .tooltip-arrow{top:50%;left:0;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:var(--color-main-background)}.tooltip.left,.tooltip[x-placement^=left]{margin-left:-3px;padding:0 5px}.tooltip.left .tooltip-arrow,.tooltip[x-placement^=left] .tooltip-arrow{top:50%;right:0;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:var(--color-main-background)}.tooltip.top .tooltip-arrow,.tooltip.top .arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-left .arrow,.tooltip[x-placement^=top] .tooltip-arrow,.tooltip[x-placement^=top] .arrow,.tooltip.top-right .tooltip-arrow,.tooltip.top-right .arrow{bottom:0;border-width:10px 10px 0;border-top-color:var(--color-main-background)}.tooltip.top-left .tooltip-arrow{right:10px;margin-bottom:-10px}.tooltip.top-right .tooltip-arrow{left:10px;margin-bottom:-10px}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .arrow,.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip[x-placement^=bottom] .arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .arrow,.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .arrow{top:0;border-width:0 10px 10px;border-bottom-color:var(--color-main-background)}.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-10px}.tooltip.bottom-left .tooltip-arrow{right:10px;margin-top:-10px}.tooltip.bottom-right .tooltip-arrow{left:10px;margin-top:-10px}.tooltip-inner{max-width:350px;padding:5px 8px;background-color:var(--color-main-background);color:var(--color-main-text);text-align:center;border-radius:var(--border-radius)}.tooltip-arrow,.tooltip .arrow{position:absolute;width:0;height:0;border-color:rgba(0,0,0,0);border-style:solid}.toastify.dialogs{min-width:200px;background:none;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 6px 0 var(--color-box-shadow);padding:0 12px;margin-top:45px;position:fixed;z-index:10100;border-radius:var(--border-radius);display:flex;align-items:center}.toastify.dialogs .toast-undo-container{display:flex;align-items:center}.toastify.dialogs .toast-undo-button,.toastify.dialogs .toast-close{position:static;overflow:hidden;box-sizing:border-box;min-width:44px;height:100%;padding:12px;white-space:nowrap;background-repeat:no-repeat;background-position:center;background-color:transparent;min-height:0}.toastify.dialogs .toast-undo-button.toast-close,.toastify.dialogs .toast-close.toast-close{text-indent:0;opacity:.4;border:none;min-height:44px;margin-left:10px;font-size:0}.toastify.dialogs .toast-undo-button.toast-close::before,.toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo=");content:" ";filter:var(--background-invert-if-dark);display:inline-block;width:16px;height:16px}.toastify.dialogs .toast-undo-button.toast-undo-button,.toastify.dialogs .toast-close.toast-undo-button{margin:3px;height:calc(100% - 6px);margin-left:12px}.toastify.dialogs .toast-undo-button:hover,.toastify.dialogs .toast-undo-button:focus,.toastify.dialogs .toast-undo-button:active,.toastify.dialogs .toast-close:hover,.toastify.dialogs .toast-close:focus,.toastify.dialogs .toast-close:active{cursor:pointer;opacity:1}.toastify.dialogs.toastify-top{right:10px}.toastify.dialogs.toast-with-click{cursor:pointer}.toastify.dialogs.toast-error{border-left:3px solid var(--color-error)}.toastify.dialogs.toast-info{border-left:3px solid var(--color-primary)}.toastify.dialogs.toast-warning{border-left:3px solid var(--color-warning)}.toastify.dialogs.toast-success{border-left:3px solid var(--color-success)}.toastify.dialogs.toast-undo{border-left:3px solid var(--color-success)}.theme--dark .toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo=")}#body-public .header-right #header-primary-action a{color:var(--color-primary-text)}#body-public .header-right #header-secondary-action ul li{min-width:270px}#body-public .header-right #header-secondary-action #header-actions-toggle{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);filter:var(--background-invert-if-dark)}#body-public .header-right #header-secondary-action #header-actions-toggle:hover,#body-public .header-right #header-secondary-action #header-actions-toggle:focus,#body-public .header-right #header-secondary-action #header-actions-toggle:active{opacity:1}#body-public .header-right #header-secondary-action #external-share-menu-item form{display:flex}#body-public .header-right #header-secondary-action #external-share-menu-item .hidden{display:none}#body-public .header-right #header-secondary-action #external-share-menu-item #save-button-confirm{flex-grow:0}#body-public #content{min-height:calc(100% - 65px)}#body-public.layout-base #content{padding-top:0}#body-public p.info{margin:20px auto;text-shadow:0 0 2px rgba(0,0,0,.4);-moz-user-select:none;-ms-user-select:none;user-select:none}#body-public p.info,#body-public form fieldset legend,#body-public #datadirContent label,#body-public form fieldset .warning-info,#body-public form input[type=checkbox]+label{text-align:center}#body-public footer{position:fixed;display:flex;align-items:center;justify-content:center;height:65px;flex-direction:column;bottom:0;width:calc(100% - 16px);margin:8px;background-color:var(--color-main-background);border-radius:var(--border-radius-large)}#body-public footer p{text-align:center;color:var(--color-text-lighter)}#body-public footer p a{color:var(--color-text-lighter);font-weight:bold;white-space:nowrap;padding:10px;margin:-10px;line-height:200%}/*# sourceMappingURL=server.css.map */
+@import"../../dist/icons.css";html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section,main{margin:0;padding:0;border:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default;scrollbar-color:var(--color-border-dark) rgba(0,0,0,0);scrollbar-width:thin}.js-focus-visible :focus:not(.focus-visible){outline:none}.content:not(#content-vue) :focus-visible,.app-navigation:not(#app-navigation-vue) :focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);outline:none}html,body{height:100%}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}body{line-height:1.5}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:left;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none;cursor:pointer}a *{cursor:pointer}a.external{margin:0 3px;text-decoration:underline}input{cursor:pointer}input *{cursor:pointer}select,.button span,label{cursor:pointer}ul{list-style:none}body{font-weight:normal;font-size:var(--default-font-size);line-height:var(--default-line-height);font-family:var(--font-face);color:var(--color-main-text)}.two-factor-header{text-align:center}.two-factor-provider{text-align:center;width:100% !important;display:inline-block;margin-bottom:0 !important;background-color:var(--color-background-darker) !important;border:none !important}.two-factor-link{display:inline-block;padding:12px;color:var(--color-text-lighter)}.float-spinner{height:32px;display:none}#nojavascript{position:fixed;top:0;bottom:0;left:0;height:100%;width:100%;z-index:9000;text-align:center;background-color:var(--color-background-darker);color:var(--color-primary-text);line-height:125%;font-size:24px}#nojavascript div{display:block;position:relative;width:50%;top:35%;margin:0px auto}#nojavascript a{color:var(--color-primary-text);border-bottom:2px dotted var(--color-main-background)}#nojavascript a:hover,#nojavascript a:focus{color:var(--color-primary-text-dark)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--border-radius-large);border:2px solid rgba(0,0,0,0);background-clip:content-box}::selection{background-color:var(--color-primary-element);color:var(--color-primary-text)}#app-navigation *{box-sizing:border-box}#emptycontent,.emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:30vh;width:100%}#app-sidebar #emptycontent,#app-sidebar .emptycontent{margin-top:10vh}#emptycontent .emptycontent-search,.emptycontent .emptycontent-search{position:static}#emptycontent h2,.emptycontent h2{margin-bottom:10px}#emptycontent [class^=icon-],#emptycontent [class*=icon-],.emptycontent [class^=icon-],.emptycontent [class*=icon-]{background-size:64px;height:64px;width:64px;margin:0 auto 15px}#emptycontent [class^=icon-]:not([class^=icon-loading]),#emptycontent [class^=icon-]:not([class*=icon-loading]),#emptycontent [class*=icon-]:not([class^=icon-loading]),#emptycontent [class*=icon-]:not([class*=icon-loading]),.emptycontent [class^=icon-]:not([class^=icon-loading]),.emptycontent [class^=icon-]:not([class*=icon-loading]),.emptycontent [class*=icon-]:not([class^=icon-loading]),.emptycontent [class*=icon-]:not([class*=icon-loading]){opacity:.4}#datadirContent label{width:100%}.grouptop,.groupmiddle,.groupbottom{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#show,#dbpassword{position:absolute;right:1em;top:.8em;float:right}#show+label,#dbpassword+label{right:21px;top:15px !important;margin:-14px !important;padding:14px !important}#show:checked+label,#dbpassword:checked+label,#personal-show:checked+label{opacity:.8}#show:focus-visible+label,#dbpassword-toggle:focus-visible+label,#personal-show:focus-visible+label{box-shadow:var(--color-primary) 0 0 0 2px;opacity:1;border-radius:9999px}#show+label,#dbpassword+label,#personal-show+label{position:absolute !important;height:20px;width:24px;background-image:var(--icon-toggle-dark);background-repeat:no-repeat;background-position:center;opacity:.3}#show:focus+label,#dbpassword:focus+label,#personal-show:focus+label{opacity:1}#show+label:hover,#dbpassword+label:hover,#personal-show+label:hover{opacity:1}#show+label:before,#dbpassword+label:before,#personal-show+label:before{display:none}#pass2,input[name=personal-password-clone]{padding-right:30px}.personal-show-container{position:relative;display:inline-block;margin-right:6px}#personal-show+label{display:block;right:0;margin-top:-43px;margin-right:-4px;padding:22px}#body-user .warning,#body-settings .warning{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-main-text);background-color:rgba(var(--color-warning-rgb), 0.2)}.warning legend,.warning a{font-weight:bold !important}.error:not(.toastify) a{color:#fff !important;font-weight:bold !important}.error:not(.toastify) a.button{color:var(--color-text-lighter) !important;display:inline-block;text-align:center}.error:not(.toastify) pre{white-space:pre-wrap;text-align:left}.error-wide{width:700px;margin-left:-200px !important}.error-wide .button{color:#000 !important}.warning-input{border-color:var(--color-error) !important}.avatar,.avatardiv{border-radius:50%;flex-shrink:0}.avatar>img,.avatardiv>img{border-radius:50%;flex-shrink:0}td.avatar{border-radius:0}tr .action:not(.permanent),.selectedActions>a{opacity:0}tr:hover .action:not(.menuitem),tr:focus .action:not(.menuitem),tr .action.permanent:not(.menuitem){opacity:.5}.selectedActions>a{opacity:.5;position:relative;top:2px}.selectedActions>a:hover,.selectedActions>a:focus{opacity:1}tr .action{width:16px;height:16px}.header-action{opacity:.8}tr:hover .action:hover,tr:focus .action:focus{opacity:1}.selectedActions a:hover,.selectedActions a:focus{opacity:1}.header-action:hover,.header-action:focus{opacity:1}tbody tr:hover,tbody tr:focus,tbody tr:active{background-color:var(--color-background-dark)}code{font-family:"Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono",monospace}.pager{list-style:none;float:right;display:inline;margin:.7em 13em 0 0}.pager li{display:inline-block}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{overflow:hidden;text-overflow:ellipsis}.ui-icon-circle-triangle-e{background-image:url("../img/actions/play-next.svg?v=1")}.ui-icon-circle-triangle-w{background-image:url("../img/actions/play-previous.svg?v=1")}.ui-widget.ui-datepicker{margin-top:10px;padding:4px 8px;width:auto;border-radius:var(--border-radius);border:none;z-index:1600 !important}.ui-widget.ui-datepicker .ui-state-default,.ui-widget.ui-datepicker .ui-widget-content .ui-state-default,.ui-widget.ui-datepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-datepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-datepicker .ui-widget-header .ui-datepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-datepicker .ui-widget-header .ui-icon{opacity:.5}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-right.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-left.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-state-hover .ui-icon{opacity:1}.ui-widget.ui-datepicker .ui-datepicker-calendar th{font-weight:normal;color:var(--color-text-lighter);opacity:.8;width:26px;padding:2px}.ui-widget.ui-datepicker .ui-datepicker-calendar tr:hover{background-color:inherit}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a:not(.ui-state-hover){background-color:var(--color-background-darker)}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-hover,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-priority-secondary:not(.ui-state-hover){color:var(--color-text-lighter);opacity:.8}.ui-datepicker-prev,.ui-datepicker-next{border:var(--color-border-dark);background:var(--color-main-background)}.ui-widget.ui-timepicker{margin-top:10px !important;width:auto !important;border-radius:var(--border-radius);z-index:1600 !important}.ui-widget.ui-timepicker .ui-widget-content{border:none !important}.ui-widget.ui-timepicker .ui-state-default,.ui-widget.ui-timepicker .ui-widget-content .ui-state-default,.ui-widget.ui-timepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-timepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-timepicker .ui-widget-header .ui-timepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-timepicker table.ui-timepicker tr .ui-timepicker-hour-cell:first-child{margin-left:30px}.ui-widget.ui-timepicker .ui-timepicker-table th{font-weight:normal;color:var(--color-text-lighter);opacity:.8}.ui-widget.ui-timepicker .ui-timepicker-table th.periods{padding:0;width:30px;line-height:30px}.ui-widget.ui-timepicker .ui-timepicker-table tr:hover{background-color:inherit}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hour-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minute-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-hover,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minutes:not(.ui-state-hover){color:var(--color-text-lighter)}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hours{border-right:1px solid var(--color-border)}.ui-widget.ui-datepicker .ui-datepicker-calendar tr,.ui-widget.ui-timepicker table.ui-timepicker tr{display:flex;flex-wrap:nowrap;justify-content:space-between}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td,.ui-widget.ui-timepicker table.ui-timepicker tr td{flex:1 1 auto;margin:0;padding:2px;height:26px;width:26px;display:flex;align-items:center;justify-content:center}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td>*,.ui-widget.ui-timepicker table.ui-timepicker tr td>*{border-radius:50%;text-align:center;font-weight:normal;color:var(--color-main-text);display:block;line-height:18px;width:18px;height:18px;padding:3px;font-size:.9em}#oc-dialog-filepicker-content{position:relative;display:flex;flex-direction:column}#oc-dialog-filepicker-content .dirtree{flex-wrap:wrap;box-sizing:border-box;padding-right:140px}#oc-dialog-filepicker-content .dirtree div:first-child a{font-size:0px;background-image:var(--icon-home-dark);background-repeat:no-repeat;background-position:left center}#oc-dialog-filepicker-content .dirtree span:not(:last-child){cursor:pointer}#oc-dialog-filepicker-content .dirtree span:last-child{font-weight:bold}#oc-dialog-filepicker-content .dirtree span:not(:last-child)::after{content:">";padding:3px}#oc-dialog-filepicker-content #picker-showgridview{position:absolute;background-color:rgba(0,0,0,0);border:none;margin:0;padding:22px;opacity:.5;right:0;top:0}#oc-dialog-filepicker-content #picker-showgridview:hover,#oc-dialog-filepicker-content #picker-showgridview:active,#oc-dialog-filepicker-content #picker-showgridview:focus{box-shadow:0 0 0 2px var(--color-primary);opacity:1}#oc-dialog-filepicker-content .actions.creatable{flex-wrap:wrap;padding:0px;box-sizing:border-box;display:inline-flex;float:none;max-height:36px;max-width:36px;background-color:var(--color-background-dark);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-pill);position:relative;left:15px;top:3px;order:1}#oc-dialog-filepicker-content .actions.creatable .icon.icon-add{background-image:var(--icon-add-dark);background-size:16px 16px;width:34px;height:34px;margin:0px;opacity:.5}#oc-dialog-filepicker-content .actions.creatable a{width:36px;padding:0px;position:static}#oc-dialog-filepicker-content .actions.creatable .menu{top:100%;margin-top:10px}#oc-dialog-filepicker-content .actions.creatable .menu form{display:flex;margin:10px}#oc-dialog-filepicker-content .filelist-container{box-sizing:border-box;display:inline-block;overflow-y:auto;flex:1;width:100%;overflow-x:hidden}#oc-dialog-filepicker-content .emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:80px;width:100%;display:none}#oc-dialog-filepicker-content .filelist{background-color:var(--color-main-background);width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist{min-width:initial;margin-bottom:50px}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr{border-bottom:1px solid var(--color-border);background-color:var(--color-main-background)}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr th{width:80%;border:none}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle.name{padding-left:5px;margin-left:50px}#oc-dialog-filepicker-content #picker-filestable.filelist th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}#oc-dialog-filepicker-content #picker-filestable.filelist .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:hidden}#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:visible}#oc-dialog-filepicker-content #picker-filestable.filelist td{padding:14px;border-bottom:1px solid var(--color-border)}#oc-dialog-filepicker-content #picker-filestable.filelist tr:last-child td{border-bottom:none}#oc-dialog-filepicker-content #picker-filestable.filelist .filename{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-size:32px;background-repeat:no-repeat;padding-left:51px;background-position:7px 7px;cursor:pointer;max-width:0}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts{display:flex}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__first{overflow:hidden;white-space:pre;text-overflow:ellipsis}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__last{white-space:pre}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize,#oc-dialog-filepicker-content #picker-filestable.filelist .date{width:80px}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize{text-align:right}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid{display:flex;flex-direction:column}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody{display:grid;grid-template-columns:repeat(auto-fill, 120px);justify-content:space-around;row-gap:15px;margin:15px 0}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr{display:block;position:relative;border-radius:var(--border-radius);padding:10px;display:flex;flex-direction:column;width:100px}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td{border:none;padding:0;text-align:center;border-radius:var(--border-radius)}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename{padding:100px 0 0 0;background-position:center top;background-size:contain;line-height:30px;max-width:none}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename .filename-parts{justify-content:center}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filesize{line-height:10px;width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.date{display:none}#oc-dialog-filepicker-content .filepicker_element_selected{background-color:var(--color-background-darker)}.ui-dialog{position:fixed !important}span.ui-icon{float:left;margin:3px 7px 30px 0}.extra-data{padding-right:5px !important}#tagsdialog .content{width:100%;height:280px}#tagsdialog .scrollarea{overflow:auto;border:1px solid var(--color-background-darker);width:100%;height:240px}#tagsdialog .bottombuttons{width:100%;height:30px}#tagsdialog .bottombuttons *{float:left}#tagsdialog .taglist li{background:var(--color-background-dark);padding:.3em .8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:background-color 500ms;transition:background-color 500ms}#tagsdialog .taglist li:hover,#tagsdialog .taglist li:active{background:var(--color-background-darker)}#tagsdialog .addinput{width:90%;clear:both}.breadcrumb{display:inline-flex}div.crumb{display:inline-flex;background-image:url("../img/breadcrumb.svg?v=1");background-repeat:no-repeat;background-position:right center;height:44px;background-size:auto 24px;flex:0 0 auto;order:1;padding-right:7px}div.crumb.crumbmenu{order:2;position:relative}div.crumb.crumbmenu a{opacity:.5}div.crumb.crumbmenu.canDropChildren .popovermenu,div.crumb.crumbmenu.canDrop .popovermenu{display:block}div.crumb.crumbmenu .popovermenu{top:100%;margin-right:3px}div.crumb.crumbmenu .popovermenu ul{max-height:345px;overflow-y:auto;overflow-x:hidden;padding-right:5px}div.crumb.crumbmenu .popovermenu ul li.canDrop span:first-child{background-image:url("../img/filetypes/folder-drag-accept.svg?v=1") !important}div.crumb.crumbmenu .popovermenu .in-breadcrumb{display:none}div.crumb.hidden{display:none}div.crumb.hidden~.crumb{order:3}div.crumb>a,div.crumb>span{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;max-width:200px}div.crumb>a.icon-home,div.crumb>a.icon-delete,div.crumb>span.icon-home,div.crumb>span.icon-delete{text-indent:-9999px}div.crumb>a[class^=icon-]{padding:0;width:44px}div.crumb:last-child{font-weight:bold;margin-right:10px}div.crumb:last-child a~span{padding-left:0}div.crumb:hover,div.crumb:focus,div.crumb a:focus,div.crumb:active{opacity:1}div.crumb:hover>a,div.crumb:hover>span,div.crumb:focus>a,div.crumb:focus>span,div.crumb a:focus>a,div.crumb a:focus>span,div.crumb:active>a,div.crumb:active>span{opacity:.7}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}fieldset.warning legend,fieldset.update legend{top:18px;position:relative}fieldset.warning legend+p,fieldset.update legend+p{margin-top:12px}@-ms-viewport{width:device-width}.hiddenuploadfield{display:none;width:0;height:0;opacity:0}input,textarea,select,button,div[contenteditable=true],div[contenteditable=false]{font-family:var(--font-face)}.select2-container-multi .select2-choices .select2-search-field input,.select2-search input,.ui-widget{font-family:var(--font-face) !important}.select2-container.select2-drop-above .select2-choice{background-image:unset !important}select,button:not(.button-vue,[class^=vs__]),input,textarea,div[contenteditable=true],div[contenteditable=false]{width:130px;min-height:36px;box-sizing:border-box}input:not([type=range]){outline:none}div.select2-drop .select2-search input,input[type=submit],input[type=button],input[type=reset],button:not(.button-vue,[class^=vs__]),.button,.pager li a{margin:3px 3px 3px 0;padding:7px 14px;font-size:13px;background-color:var(--color-main-background);color:var(--color-main-text);border:1px solid var(--color-border-dark);font-size:var(--default-font-size);outline:none;border-radius:var(--border-radius);cursor:text}div.select2-drop .select2-search input:not(:disabled):not(.primary):hover,div.select2-drop .select2-search input:not(:disabled):not(.primary):focus,div.select2-drop .select2-search input:not(:disabled):not(.primary).active,input[type=submit]:not(:disabled):not(.primary):hover,input[type=submit]:not(:disabled):not(.primary):focus,input[type=submit]:not(:disabled):not(.primary).active,input[type=button]:not(:disabled):not(.primary):hover,input[type=button]:not(:disabled):not(.primary):focus,input[type=button]:not(:disabled):not(.primary).active,input[type=reset]:not(:disabled):not(.primary):hover,input[type=reset]:not(:disabled):not(.primary):focus,input[type=reset]:not(:disabled):not(.primary).active,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):hover,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):focus,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary).active,.button:not(:disabled):not(.primary):hover,.button:not(:disabled):not(.primary):focus,.button:not(:disabled):not(.primary).active,.pager li a:not(:disabled):not(.primary):hover,.pager li a:not(:disabled):not(.primary):focus,.pager li a:not(:disabled):not(.primary).active{border-color:var(--color-primary-element);outline:none}div.select2-drop .select2-search input:not(:disabled):not(.primary):active,input[type=submit]:not(:disabled):not(.primary):active,input[type=button]:not(:disabled):not(.primary):active,input[type=reset]:not(:disabled):not(.primary):active,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):active,.button:not(:disabled):not(.primary):active,.pager li a:not(:disabled):not(.primary):active{outline:none;background-color:var(--color-main-background);color:var(--color-text-light)}div.select2-drop .select2-search input:not(:disabled):not(.primary):focus-visible,input[type=submit]:not(:disabled):not(.primary):focus-visible,input[type=button]:not(:disabled):not(.primary):focus-visible,input[type=reset]:not(:disabled):not(.primary):focus-visible,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):focus-visible,.button:not(:disabled):not(.primary):focus-visible,.pager li a:not(:disabled):not(.primary):focus-visible{box-shadow:0 0 0 2px var(--color-primary)}div.select2-drop .select2-search input:disabled,input[type=submit]:disabled,input[type=button]:disabled,input[type=reset]:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,.pager li a:disabled{background-color:var(--color-background-dark);color:var(--color-main-text);cursor:default;opacity:.5}div.select2-drop .select2-search input:required,input[type=submit]:required,input[type=button]:required,input[type=reset]:required,button:not(.button-vue,[class^=vs__]):required,.button:required,.pager li a:required{box-shadow:none}div.select2-drop .select2-search input:user-invalid,input[type=submit]:user-invalid,input[type=button]:user-invalid,input[type=reset]:user-invalid,button:not(.button-vue,[class^=vs__]):user-invalid,.button:user-invalid,.pager li a:user-invalid{box-shadow:0 0 0 2px var(--color-error) !important}div.select2-drop .select2-search input.primary,input[type=submit].primary,input[type=button].primary,input[type=reset].primary,button:not(.button-vue,[class^=vs__]).primary,.button.primary,.pager li a.primary{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-text);cursor:pointer}#body-login :not(.body-login-container) div.select2-drop .select2-search input.primary,#header div.select2-drop .select2-search input.primary,#body-login :not(.body-login-container) input[type=submit].primary,#header input[type=submit].primary,#body-login :not(.body-login-container) input[type=button].primary,#header input[type=button].primary,#body-login :not(.body-login-container) input[type=reset].primary,#header input[type=reset].primary,#body-login :not(.body-login-container) button:not(.button-vue,[class^=vs__]).primary,#header button:not(.button-vue,[class^=vs__]).primary,#body-login :not(.body-login-container) .button.primary,#header .button.primary,#body-login :not(.body-login-container) .pager li a.primary,#header .pager li a.primary{border-color:var(--color-primary-text)}div.select2-drop .select2-search input.primary:not(:disabled):hover,div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):hover,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):hover,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):hover,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):hover,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):hover,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):hover,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):active{background-color:var(--color-primary-element-hover);border-color:var(--color-primary-element-hover)}div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):focus-visible,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):focus-visible,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):focus-visible,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):focus-visible,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus-visible,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):focus-visible,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):focus-visible{box-shadow:0 0 0 2px var(--color-main-text)}div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):active{color:var(--color-primary-text-dark)}div.select2-drop .select2-search input.primary:disabled,input[type=submit].primary:disabled,input[type=button].primary:disabled,input[type=reset].primary:disabled,button:not(.button-vue,[class^=vs__]).primary:disabled,.button.primary:disabled,.pager li a.primary:disabled{background-color:var(--color-primary-element);color:var(--color-primary-text-dark);cursor:default}div[contenteditable=false]{margin:3px 3px 3px 0;padding:7px 6px;font-size:13px;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-background-darker);outline:none;border-radius:var(--border-radius);background-color:var(--color-background-dark);color:var(--color-text-lighter);cursor:default;opacity:.5}input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]):not([type=color]):not([type=file]):not([type=image]){-webkit-appearance:textfield;-moz-appearance:textfield;height:36px}input[type=radio],input[type=checkbox],input[type=file],input[type=image]{height:auto;width:auto}input[type=color]{margin:3px;padding:0 2px;min-height:30px;width:40px;cursor:pointer}input[type=hidden]{height:0;width:0}input[type=time]{width:initial}select,button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{padding:8px 14px;font-size:var(--default-font-size);width:auto;min-height:36px;cursor:pointer;box-sizing:border-box;background-color:var(--color-background-dark)}select:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,input[type=button]:disabled,input[type=submit]:disabled,input[type=reset]:disabled{cursor:default}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]),select,div[contenteditable=true],textarea{margin:3px 3px 3px 0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);height:36px;outline:none;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):hover,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):active,select:not(:disabled):hover,select:not(:disabled):focus,select:not(:disabled):active,div[contenteditable=true]:not(:disabled):hover,div[contenteditable=true]:not(:disabled):focus,div[contenteditable=true]:not(:disabled):active,textarea:not(:disabled):hover,textarea:not(:disabled):focus,textarea:not(:disabled):active{border-color:var(--color-primary-element)}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,select:not(:disabled):focus,div[contenteditable=true]:not(:disabled):focus,textarea:not(:disabled):focus{cursor:text}.multiselect__input,.select2-input{background-color:var(--color-main-background);color:var(--color-main-text)}textarea,div[contenteditable=true]{padding:12px;height:auto}select{background:var(--icon-triangle-s-dark) no-repeat right 8px center;appearance:none;background-color:var(--color-main-background);padding-right:28px !important}select *,button:not(.button-vue,[class^=vs__]) *,.button *{cursor:pointer}select:disabled *,button:not(.button-vue,[class^=vs__]):disabled *,.button:disabled *{cursor:default}button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{font-weight:bold;border-radius:var(--border-radius-pill)}button:not(.button-vue,[class^=vs__])::-moz-focus-inner,.button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,input[type=reset]::-moz-focus-inner{border:0}button:not(.button-vue,[class^=vs__]).error,.button.error,input[type=button].error,input[type=submit].error,input[type=reset].error{background-color:var(--color-error) !important;border-color:var(--color-error) !important;color:#fff !important}button:not(.button-vue,.action-button,[class^=vs__])>span[class^=icon-],button:not(.button-vue,.action-button,[class^=vs__])>span[class*=" icon-"],.button>span[class^=icon-],.button>span[class*=" icon-"]{display:inline-block;vertical-align:text-bottom;opacity:.5}input[type=text]+.icon-confirm,input[type=password]+.icon-confirm,input[type=email]+.icon-confirm{margin-left:-13px !important;border-left-color:rgba(0,0,0,0) !important;border-radius:0 var(--border-radius-large) var(--border-radius-large) 0 !important;border-width:2px;background-clip:padding-box;background-color:var(--color-main-background) !important;opacity:1;height:36px;width:36px;padding:7px 6px;cursor:pointer;margin-right:0}input[type=text]+.icon-confirm:disabled,input[type=password]+.icon-confirm:disabled,input[type=email]+.icon-confirm:disabled{cursor:default;background-image:var(--icon-confirm-fade-dark)}input[type=text]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=password]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=email]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm{border-color:var(--color-error)}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus{border-color:var(--color-primary-element) !important;border-radius:var(--border-radius) !important}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled{border-color:var(--color-background-darker) !important}input[type=text]:active+.icon-confirm,input[type=text]:hover+.icon-confirm,input[type=text]:focus+.icon-confirm,input[type=password]:active+.icon-confirm,input[type=password]:hover+.icon-confirm,input[type=password]:focus+.icon-confirm,input[type=email]:active+.icon-confirm,input[type=email]:hover+.icon-confirm,input[type=email]:focus+.icon-confirm{border-color:var(--color-primary-element) !important;border-left-color:rgba(0,0,0,0) !important;z-index:2}button img,.button img{cursor:pointer}select,.button.multiselect{font-weight:normal}input[type=checkbox].radio,input[type=checkbox].checkbox,input[type=radio].radio,input[type=radio].checkbox{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}input[type=checkbox].radio+label,input[type=checkbox].checkbox+label,input[type=radio].radio+label,input[type=radio].checkbox+label{user-select:none}input[type=checkbox].radio:disabled+label,input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label,input[type=radio].checkbox:disabled+label:before{cursor:default}input[type=checkbox].radio+label:before,input[type=checkbox].checkbox+label:before,input[type=radio].radio+label:before,input[type=radio].checkbox+label:before{content:"";display:inline-block;height:14px;width:14px;vertical-align:middle;border-radius:50%;margin:0 6px 3px 3px;border:1px solid var(--color-text-lighter)}input[type=checkbox].radio:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].radio:focus+label:before,input[type=checkbox].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox:focus+label:before,input[type=radio].radio:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio:focus+label:before,input[type=radio].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox:focus+label:before{border-color:var(--color-primary-element)}input[type=checkbox].radio:focus-visible+label,input[type=checkbox].checkbox:focus-visible+label,input[type=radio].radio:focus-visible+label,input[type=radio].checkbox:focus-visible+label{outline-style:solid;outline-color:var(--color-main-text);outline-width:1px;outline-offset:2px}input[type=checkbox].radio:checked+label:before,input[type=checkbox].radio.checkbox:indeterminate+label:before,input[type=checkbox].checkbox:checked+label:before,input[type=checkbox].checkbox.checkbox:indeterminate+label:before,input[type=radio].radio:checked+label:before,input[type=radio].radio.checkbox:indeterminate+label:before,input[type=radio].checkbox:checked+label:before,input[type=radio].checkbox.checkbox:indeterminate+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:var(--color-primary-element);border-color:var(--color-primary-element)}input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label:before{border:1px solid var(--color-text-lighter);background-color:var(--color-text-maxcontrast) !important}input[type=checkbox].radio:checked:disabled+label:before,input[type=checkbox].checkbox:checked:disabled+label:before,input[type=radio].radio:checked:disabled+label:before,input[type=radio].checkbox:checked:disabled+label:before{background-color:var(--color-text-maxcontrast)}input[type=checkbox].radio+label~em,input[type=checkbox].checkbox+label~em,input[type=radio].radio+label~em,input[type=radio].checkbox+label~em{display:inline-block;margin-left:25px}input[type=checkbox].radio+label~em:last-of-type,input[type=checkbox].checkbox+label~em:last-of-type,input[type=radio].radio+label~em:last-of-type,input[type=radio].checkbox+label~em:last-of-type{margin-bottom:14px}input[type=checkbox].checkbox+label:before,input[type=radio].checkbox+label:before{border-radius:1px;height:14px;width:14px;box-shadow:none !important;background-position:center}input[type=checkbox].checkbox:checked+label:before,input[type=radio].checkbox:checked+label:before{background-image:url("../img/actions/checkbox-mark.svg")}input[type=checkbox].checkbox:indeterminate+label:before,input[type=radio].checkbox:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed.svg")}input[type=checkbox].radio--white+label:before,input[type=checkbox].radio--white:focus+label:before,input[type=checkbox].checkbox--white+label:before,input[type=checkbox].checkbox--white:focus+label:before,input[type=radio].radio--white+label:before,input[type=radio].radio--white:focus+label:before,input[type=radio].checkbox--white+label:before,input[type=radio].checkbox--white:focus+label:before{border-color:#bababa}input[type=checkbox].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox--white:not(:disabled):not(:checked)+label:hover:before{border-color:#fff}input[type=checkbox].radio--white:checked+label:before,input[type=checkbox].checkbox--white:checked+label:before,input[type=radio].radio--white:checked+label:before,input[type=radio].checkbox--white:checked+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:#dbdbdb;border-color:#dbdbdb}input[type=checkbox].radio--white:disabled+label:before,input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].radio--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{background-color:#bababa !important;border-color:rgba(255,255,255,.4) !important}input[type=checkbox].radio--white:checked:disabled+label:before,input[type=checkbox].checkbox--white:checked:disabled+label:before,input[type=radio].radio--white:checked:disabled+label:before,input[type=radio].checkbox--white:checked:disabled+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);border-color:rgba(255,255,255,.4) !important;background-color:#bababa}input[type=checkbox].checkbox--white:checked+label:before,input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:checked+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-color:rgba(0,0,0,0) !important;border-color:#fff !important;background-image:url("../img/actions/checkbox-mark-white.svg")}input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed-white.svg")}input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{opacity:.7}div.select2-drop{margin-top:-2px;background-color:var(--color-main-background)}div.select2-drop.select2-drop-active{border-color:var(--color-border-dark)}div.select2-drop .avatar{display:inline-block;margin-right:8px;vertical-align:middle}div.select2-drop .avatar img{cursor:pointer}div.select2-drop .select2-search input{min-height:auto;background:var(--icon-search-dark) no-repeat right center !important;background-origin:content-box !important}div.select2-drop .select2-results{max-height:250px;margin:0;padding:0}div.select2-drop .select2-results .select2-result-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}div.select2-drop .select2-results .select2-result-label span{cursor:pointer}div.select2-drop .select2-results .select2-result-label span em{cursor:inherit;background:unset}div.select2-drop .select2-results .select2-result,div.select2-drop .select2-results .select2-no-results,div.select2-drop .select2-results .select2-searching{position:relative;display:list-item;padding:12px;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-lighter)}div.select2-drop .select2-results .select2-result.select2-selected{background-color:var(--color-background-dark)}div.select2-drop .select2-results .select2-highlighted{background-color:var(--color-background-dark);color:var(--color-main-text)}.select2-chosen .avatar,.select2-chosen .avatar img,#select2-drop .avatar,#select2-drop .avatar img{cursor:pointer}div.select2-container-multi .select2-choices,div.select2-container-multi.select2-container-active .select2-choices{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-lighter) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px;min-height:44px}div.select2-container-multi .select2-choices:focus-within,div.select2-container-multi.select2-container-active .select2-choices:focus-within{border-color:var(--color-primary)}div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{line-height:20px;padding-left:5px}div.select2-container-multi .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi .select2-choices .select2-search-choice:hover,div.select2-container-multi .select2-choices .select2-search-choice:active,div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:hover,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{background-image:none;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-border-dark)}div.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice .select2-search-choice-close{display:none}div.select2-container-multi .select2-choices .select2-search-field input,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input{line-height:20px;min-height:28px;max-height:28px;color:var(--color-main-text)}div.select2-container-multi .select2-choices .select2-search-field input.select2-active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input.select2-active{background:none !important}div.select2-container{margin:3px 3px 3px 0}div.select2-container.select2-container-multi .select2-choices{display:flex;flex-wrap:wrap}div.select2-container.select2-container-multi .select2-choices li{float:none}div.select2-container a.select2-choice{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-lighter) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px 12px;min-height:44px}div.select2-container a.select2-choice:focus-within{border-color:var(--color-primary)}div.select2-container a.select2-choice .select2-search-choice{line-height:20px;padding-left:5px;background-image:none;background-color:var(--color-background-dark);border-color:var(--color-background-dark)}div.select2-container a.select2-choice .select2-search-choice .select2-search-choice-close{display:none}div.select2-container a.select2-choice .select2-search-choice.select2-search-choice-focus,div.select2-container a.select2-choice .select2-search-choice:hover{background-color:var(--color-border);border-color:var(--color-border)}div.select2-container a.select2-choice .select2-arrow{background:none;border-radius:0;border:none}div.select2-container a.select2-choice .select2-arrow b{background:var(--icon-triangle-s-dark) no-repeat center !important;opacity:.5}div.select2-container a.select2-choice:hover .select2-arrow b,div.select2-container a.select2-choice:focus .select2-arrow b,div.select2-container a.select2-choice:active .select2-arrow b{opacity:.7}div.select2-container a.select2-choice .select2-search-field input{line-height:20px}.v-select{margin:3px 3px 3px 0;display:inline-block}.v-select .dropdown-toggle{display:flex !important;flex-wrap:wrap}.v-select .dropdown-toggle .selected-tag{line-height:20px;padding-left:5px;background-image:none;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center}.v-select .dropdown-toggle .selected-tag .close{margin-left:3px}.v-select .dropdown-menu{padding:0}.v-select .dropdown-menu li{padding:5px;position:relative;display:list-item;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-lighter)}.v-select .dropdown-menu li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:25px;padding:3px 7px 4px 2px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0) !important;color:inherit !important}.v-select .dropdown-menu li a::before{content:" ";background-image:var(--icon-checkmark-dark);background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.v-select .dropdown-menu li.highlight{color:var(--color-main-text)}.v-select .dropdown-menu li.active>a{background-color:var(--color-background-dark);color:var(--color-main-text)}.v-select .dropdown-menu li.active>a::before{visibility:visible}progress:not(.vue){display:block;width:100%;padding:0;border:0 none;background-color:var(--color-background-dark);border-radius:var(--border-radius);flex-basis:100%;height:5px;overflow:hidden}progress:not(.vue).warn::-moz-progress-bar{background:var(--color-error)}progress:not(.vue).warn::-webkit-progress-value{background:var(--color-error)}progress:not(.vue)::-webkit-progress-bar{background:rgba(0,0,0,0)}progress:not(.vue)::-moz-progress-bar{border-radius:var(--border-radius);background:var(--color-primary);transition:250ms all ease-in-out}progress:not(.vue)::-webkit-progress-value{border-radius:var(--border-radius);background:var(--color-primary);transition:250ms all ease-in-out}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.shake{animation-name:shake;animation-duration:.7s;animation-timing-function:ease-out}label.infield{position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}::placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}#header,#expanddiv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#header a:not(.button):focus-visible,#header button:not(.button-vue):focus-visible,#header div[role=button]:focus-visible,#expanddiv a:not(.button):focus-visible,#expanddiv button:not(.button-vue):focus-visible,#expanddiv div[role=button]:focus-visible{outline:none}#header a:not(.button):focus-visible::after,#header .button-vue:focus-visible::after,#header div[role=button]:focus-visible::after,#expanddiv a:not(.button):focus-visible::after,#expanddiv .button-vue:focus-visible::after,#expanddiv div[role=button]:focus-visible::after{content:" ";position:absolute;transform:translateX(-50%);width:12px;height:2px;border-radius:3px;background-color:var(--color-primary-text);left:50%;opacity:1}#header a:not(.button):focus-visible::after,#header .button-vue:focus-visible::after,#expanddiv a:not(.button):focus-visible::after,#expanddiv .button-vue:focus-visible::after{bottom:2px}#header .header-right a:not(.button):focus-visible::after,#header .header-right div[role=button]:focus-visible::after,#expanddiv .header-right a:not(.button):focus-visible::after,#expanddiv .header-right div[role=button]:focus-visible::after{bottom:4px}#header .header-right #expand.menutoggle:focus-visible::after,#expanddiv .header-right #expand.menutoggle:focus-visible::after{left:40%}#body-user #header,#body-settings #header,#body-public #header{display:inline-flex;position:absolute;top:0;width:100%;z-index:2000;height:50px;box-sizing:border-box;justify-content:space-between}#nextcloud{padding:5px 0;padding-left:86px;position:relative;height:calc(100% - 4px);box-sizing:border-box;opacity:1;align-items:center;display:flex;flex-wrap:wrap;overflow:hidden;margin:2px}#nextcloud:hover,#nextcloud:active{opacity:1}#header .header-right>div>.menu{background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow));border-radius:var(--border-radius-large);box-sizing:border-box;z-index:2000;position:absolute;max-width:350px;min-height:66px;max-height:calc(100vh - 50px - 8px);right:8px;top:50px;margin:0;overflow-y:auto}#header .header-right>div>.menu:not(.popovermenu){display:none}#header .header-right>div>.menu:after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:100%;content:" ";height:0;width:0;position:absolute;pointer-events:none;right:10px}#header .header-right>div>.menu>div,#header .header-right>div>.menu>ul{-webkit-overflow-scrolling:touch;min-height:66px;max-height:calc(100vh - 50px - 8px)}#header .logo{display:inline-flex;background-image:var(--image-logoheader, var(--image-logo, url("../img/logo/logo.svg")));background-repeat:no-repeat;background-size:contain;background-position:center;width:62px;position:absolute;left:12px;top:1px;bottom:1px;filter:var(--image-logoheader-custom, var(--background-image-invert-if-bright))}#header .header-appname-container{display:none;padding-right:10px;flex-shrink:0}#header #header-left,#header .header-left,#header #header-right,#header .header-right{display:inline-flex;align-items:center}#header #header-left,#header .header-left{flex:1 0;white-space:nowrap;min-width:0}#header #header-right,#header .header-right{justify-content:flex-end;flex-shrink:1}#header .header-right>div,#header .header-right>form{height:100%;position:relative}#header .header-right>div>.menutoggle,#header .header-right>form>.menutoggle{display:flex;justify-content:center;align-items:center;width:50px;height:44px;cursor:pointer;opacity:.85;padding:0;margin:2px 0}#header .header-right>div>.menutoggle:focus,#header .header-right>form>.menutoggle:focus{opacity:1}#header .header-right>div>.menutoggle:focus-visible,#header .header-right>form>.menutoggle:focus-visible{outline:none}.header-appname-container .header-appname{opacity:.75}.header-appname{color:var(--color-primary-text);font-size:16px;font-weight:bold;margin:0;padding:0;padding-right:5px;overflow:hidden;text-overflow:ellipsis;flex:1 1 100%}.header-shared-by{color:var(--color-primary-text);position:relative;font-weight:300;font-size:11px;line-height:11px;overflow:hidden;text-overflow:ellipsis}#skip-actions{position:absolute;overflow:hidden;z-index:9999;top:-999px;left:3px;height:50px;padding:11px}#skip-actions:focus-within{top:50px}header #emptycontent h2,header .emptycontent h2{font-weight:normal;font-size:16px}header #emptycontent [class^=icon-],header #emptycontent [class*=icon-],header .emptycontent [class^=icon-],header .emptycontent [class*=icon-]{background-size:48px;height:48px;width:48px}[class^=icon-],[class*=" icon-"]{background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px}.icon-breadcrumb{background-image:url("../img/breadcrumb.svg?v=1")}.loading,.loading-small,.icon-loading,.icon-loading-dark,.icon-loading-small,.icon-loading-small-dark{position:relative}.loading:after,.loading-small:after,.icon-loading:after,.icon-loading-dark:after,.icon-loading-small:after,.icon-loading-small-dark:after{z-index:2;content:"";height:28px;width:28px;margin:-16px 0 0 -16px;position:absolute;top:50%;left:50%;border-radius:100%;-webkit-animation:rotate .8s infinite linear;animation:rotate .8s infinite linear;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;border:2px solid var(--color-loading-light);border-top-color:var(--color-loading-dark);filter:var(--background-invert-if-dark)}.primary .loading:after,.primary+.loading:after,.primary .loading-small:after,.primary+.loading-small:after,.primary .icon-loading:after,.primary+.icon-loading:after,.primary .icon-loading-dark:after,.primary+.icon-loading-dark:after,.primary .icon-loading-small:after,.primary+.icon-loading-small:after,.primary .icon-loading-small-dark:after,.primary+.icon-loading-small-dark:after{filter:var(--primary-invert-if-bright)}.icon-loading-dark:after,.icon-loading-small-dark:after{border:2px solid var(--color-loading-dark);border-top-color:var(--color-loading-light)}.icon-loading-small:after,.icon-loading-small-dark:after{height:12px;width:12px;margin:-8px 0 0 -8px}audio.icon-loading,canvas.icon-loading,embed.icon-loading,iframe.icon-loading,img.icon-loading,input.icon-loading,object.icon-loading,video.icon-loading{background-image:url("../img/loading.gif")}audio.icon-loading-dark,canvas.icon-loading-dark,embed.icon-loading-dark,iframe.icon-loading-dark,img.icon-loading-dark,input.icon-loading-dark,object.icon-loading-dark,video.icon-loading-dark{background-image:url("../img/loading-dark.gif")}audio.icon-loading-small,canvas.icon-loading-small,embed.icon-loading-small,iframe.icon-loading-small,img.icon-loading-small,input.icon-loading-small,object.icon-loading-small,video.icon-loading-small{background-image:url("../img/loading-small.gif")}audio.icon-loading-small-dark,canvas.icon-loading-small-dark,embed.icon-loading-small-dark,iframe.icon-loading-small-dark,img.icon-loading-small-dark,input.icon-loading-small-dark,object.icon-loading-small-dark,video.icon-loading-small-dark{background-image:url("../img/loading-small-dark.gif")}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon-32{background-size:32px !important}.icon-white.icon-shadow,.icon-audio-white,.icon-audio-off-white,.icon-fullscreen-white,.icon-screen-white,.icon-screen-off-white,.icon-video-white,.icon-video-off-white{filter:drop-shadow(1px 1px 4px var(--color-box-shadow))}:root{--body-container-margin: calc(var(--default-grid-baseline) * 2);--body-container-radius: calc(var(--default-clickable-area) / 2 + var(--default-grid-baseline) * 2 - 2px);--body-height: calc(100% - env(safe-area-inset-bottom) - 50px - var(--body-container-margin))}@media screen and (max-width: 1024px){:root{--body-container-margin: 0px;--body-container-radius: 0px}}html{width:100%;height:100%;position:absolute;background-color:var(--color-background-plain, var(--color-main-background))}body{background-color:var(--color-background-plain, var(--color-main-background));background-image:var(--image-background, var(--image-background-default));background-size:cover;background-position:center;position:fixed;width:100%;height:calc(100vh - env(safe-area-inset-bottom))}h2{font-weight:bold;font-size:20px;margin-bottom:12px;line-height:30px;color:var(--color-text-light)}h3{font-size:16px;margin:12px 0;color:var(--color-text-light)}h4{font-size:14px}em{font-style:normal;color:var(--color-text-lighter)}dl{padding:12px 0}dt,dd{display:inline-block;padding:12px;padding-left:0}dt{width:130px;white-space:nowrap;text-align:right}kbd{padding:4px 10px;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.2);border-radius:var(--border-radius);display:inline-block;white-space:nowrap}#content[class*=app-] *{box-sizing:border-box}#app-navigation:not(.vue){--border-radius-pill: calc(var(--default-clickable-area) / 2);width:300px;z-index:500;overflow-y:auto;overflow-x:hidden;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);-webkit-user-select:none;position:sticky;height:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0}#app-navigation:not(.vue) .app-navigation-new{display:block;padding:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue) .app-navigation-new button{display:inline-block;width:100%;padding:10px;padding-left:34px;background-position:10px center;text-align:left;margin:0}#app-navigation:not(.vue) li{position:relative}#app-navigation:not(.vue)>ul{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;padding:calc(var(--default-grid-baseline)*2);padding-bottom:0}#app-navigation:not(.vue)>ul:last-child{padding-bottom:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue)>ul>li{display:inline-flex;flex-wrap:wrap;order:1;flex-shrink:0;margin:0;margin-bottom:3px;width:100%;border-radius:var(--border-radius-pill)}#app-navigation:not(.vue)>ul>li.pinned{order:2}#app-navigation:not(.vue)>ul>li.pinned.first-pinned{margin-top:auto !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-deleted{padding-left:44px !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-edit{padding-left:38px !important}#app-navigation:not(.vue)>ul>li a:hover,#app-navigation:not(.vue)>ul>li a:hover>a,#app-navigation:not(.vue)>ul>li a:focus,#app-navigation:not(.vue)>ul>li a:focus>a{background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li a:focus-visible{box-shadow:var(--color-primary) inset 0 0 0 2px;outline:none}#app-navigation:not(.vue)>ul>li.active,#app-navigation:not(.vue)>ul>li.active>a,#app-navigation:not(.vue)>ul>li a:active,#app-navigation:not(.vue)>ul>li a:active>a,#app-navigation:not(.vue)>ul>li a.selected,#app-navigation:not(.vue)>ul>li a.selected>a,#app-navigation:not(.vue)>ul>li a.active,#app-navigation:not(.vue)>ul>li a.active>a{background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li.icon-loading-small:after{left:22px;top:22px}#app-navigation:not(.vue)>ul>li.deleted>ul,#app-navigation:not(.vue)>ul>li.collapsible:not(.open)>ul{display:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption{font-weight:bold;line-height:44px;padding:0 44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption:not(:first-child){margin-top:22px}#app-navigation:not(.vue)>ul>li>ul{flex:0 1 auto;width:100%;position:relative}#app-navigation:not(.vue)>ul>li>ul>li{display:inline-flex;flex-wrap:wrap;padding-left:44px;width:100%;margin-bottom:3px}#app-navigation:not(.vue)>ul>li>ul>li:hover,#app-navigation:not(.vue)>ul>li>ul>li:hover>a,#app-navigation:not(.vue)>ul>li>ul>li:focus,#app-navigation:not(.vue)>ul>li>ul>li:focus>a{border-radius:var(--border-radius-pill);background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li>ul>li.active,#app-navigation:not(.vue)>ul>li>ul>li.active>a,#app-navigation:not(.vue)>ul>li>ul>li a.selected,#app-navigation:not(.vue)>ul>li>ul>li a.selected>a{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small:after{left:22px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-deleted{margin-left:4px;padding-left:84px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-edit{margin-left:4px;padding-left:78px !important}#app-navigation:not(.vue)>ul>li,#app-navigation:not(.vue)>ul>li>ul>li{position:relative;box-sizing:border-box}#app-navigation:not(.vue)>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li.icon-loading-small>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>a,#app-navigation:not(.vue)>ul>li>ul>li>a{background-size:16px 16px;background-position:14px center;background-repeat:no-repeat;display:block;justify-content:space-between;line-height:44px;min-height:44px;padding:0 12px 0 14px;overflow:hidden;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--border-radius-pill);color:var(--color-main-text);flex:1 1 0px;z-index:100}#app-navigation:not(.vue)>ul>li>a.svg,#app-navigation:not(.vue)>ul>li>ul>li>a.svg{padding:0 12px 0 44px}#app-navigation:not(.vue)>ul>li>a.svg :focus-visible,#app-navigation:not(.vue)>ul>li>ul>li>a.svg :focus-visible{padding:0 8px 0 42px}#app-navigation:not(.vue)>ul>li>a:first-child img,#app-navigation:not(.vue)>ul>li>ul>li>a:first-child img{margin-right:11px;width:16px;height:16px;filter:var(--background-invert-if-dark)}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils{display:inline-block;float:right}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter{padding-right:0 !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet{position:absolute;display:block;margin:16px;width:12px;height:12px;border:none;border-radius:50%;cursor:pointer;transition:background 100ms ease-in-out}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet+a,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet+a{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-menu,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-menu{top:44px}#app-navigation:not(.vue)>ul>li.editing .app-navigation-entry-edit,#app-navigation:not(.vue)>ul>li>ul>li.editing .app-navigation-entry-edit{opacity:1;z-index:250}#app-navigation:not(.vue)>ul>li.deleted .app-navigation-entry-deleted,#app-navigation:not(.vue)>ul>li>ul>li.deleted .app-navigation-entry-deleted{transform:translateX(0);z-index:250}#app-navigation:not(.vue).hidden{display:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{border:0;opacity:.5;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .collapsible .collapse{opacity:0;position:absolute;width:44px;height:44px;margin:0;z-index:110;left:0}#app-navigation:not(.vue) .collapsible .collapse:focus-visible{opacity:1;border-width:0;box-shadow:inset 0 0 0 2px var(--color-primary);background:none}#app-navigation:not(.vue) .collapsible:before{position:absolute;height:44px;width:44px;margin:0;padding:0;background:none;background-image:var(--icon-triangle-s-dark);background-size:16px;background-repeat:no-repeat;background-position:center;border:none;border-radius:0;outline:none !important;box-shadow:none;content:" ";opacity:0;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);z-index:105;border-radius:50%;transition:opacity 100ms ease-in-out}#app-navigation:not(.vue) .collapsible>a:first-child{padding-left:44px}#app-navigation:not(.vue) .collapsible:hover:before,#app-navigation:not(.vue) .collapsible:focus:before{opacity:1}#app-navigation:not(.vue) .collapsible:hover>a,#app-navigation:not(.vue) .collapsible:focus>a{background-image:none}#app-navigation:not(.vue) .collapsible:hover>.app-navigation-entry-bullet,#app-navigation:not(.vue) .collapsible:focus>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue) .collapsible.open:before{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}#app-navigation:not(.vue) .app-navigation-entry-utils{flex:0 1 auto}#app-navigation:not(.vue) .app-navigation-entry-utils ul{display:flex !important;align-items:center;justify-content:flex-end}#app-navigation:not(.vue) .app-navigation-entry-utils li{width:44px !important;height:44px}#app-navigation:not(.vue) .app-navigation-entry-utils button{height:100%;width:100%;margin:0;box-shadow:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]){background-image:var(--icon-more-dark)}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter{overflow:hidden;text-align:right;font-size:9pt;line-height:44px;padding:0 12px}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted{padding:0;text-align:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span{padding:2px 5px;border-radius:10px;background-color:var(--color-primary);color:var(--color-primary-text)}#app-navigation:not(.vue) .app-navigation-entry-edit{padding-left:5px;padding-right:5px;display:block;width:calc(100% - 1px);transition:opacity 250ms ease-in-out;opacity:0;position:absolute;background-color:var(--color-main-background);z-index:-1}#app-navigation:not(.vue) .app-navigation-entry-edit form,#app-navigation:not(.vue) .app-navigation-entry-edit div{display:inline-flex;width:100%}#app-navigation:not(.vue) .app-navigation-entry-edit input{padding:5px;margin-right:0;height:38px}#app-navigation:not(.vue) .app-navigation-entry-edit input:hover,#app-navigation:not(.vue) .app-navigation-entry-edit input:focus{z-index:1}#app-navigation:not(.vue) .app-navigation-entry-edit input[type=text]{width:100%;min-width:0;border-bottom-right-radius:0;border-top-right-radius:0}#app-navigation:not(.vue) .app-navigation-entry-edit button,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]){width:36px;height:38px;flex:0 0 36px}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:last-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:last-child){border-radius:0 !important}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:first-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:first-child){margin-left:-1px}#app-navigation:not(.vue) .app-navigation-entry-edit button:last-child,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):last-child{border-bottom-right-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-left-radius:0;border-top-left-radius:0}#app-navigation:not(.vue) .app-navigation-entry-deleted{display:inline-flex;padding-left:44px;transform:translateX(300px)}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-description{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 0px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{margin:0;height:44px;width:44px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{opacity:1}#app-navigation:not(.vue) .app-navigation-entry-edit,#app-navigation:not(.vue) .app-navigation-entry-deleted{width:calc(100% - 1px);transition:transform 250ms ease-in-out,opacity 250ms ease-in-out,z-index 250ms ease-in-out;position:absolute;left:0;background-color:var(--color-main-background);box-sizing:border-box}#app-navigation:not(.vue) .drag-and-drop{-webkit-transition:padding-bottom 500ms ease 0s;transition:padding-bottom 500ms ease 0s;padding-bottom:40px}#app-navigation:not(.vue) .error{color:var(--color-error)}#app-navigation:not(.vue) .app-navigation-entry-utils ul,#app-navigation:not(.vue) .app-navigation-entry-menu ul{list-style-type:none}#content{box-sizing:border-box;position:static;margin:var(--body-container-margin);margin-top:50px;padding:0;display:flex;width:calc(100% - var(--body-container-margin)*2);height:var(--body-height);border-radius:var(--body-container-radius);overflow:clip}#content:not(.with-sidebar--full){position:fixed}@media only screen and (max-width: 1024px){#content{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}#app-navigation{border-top-left-radius:var(--border-radius-large)}#app-sidebar{border-top-right-radius:var(--border-radius-large)}}#app-content{z-index:1000;background-color:var(--color-main-background);flex-basis:100vw;overflow:auto;position:initial;height:100%}#app-content>.section:first-child{border-top:none}#app-content #app-content-wrapper{display:flex;position:relative;align-items:stretch;min-height:100%}#app-content #app-content-wrapper .app-content-details{flex:1 1 524px}#app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back{display:none}#app-sidebar{width:27vw;min-width:300px;max-width:500px;display:block;position:-webkit-sticky;position:sticky;top:50px;right:0;overflow-y:auto;overflow-x:hidden;z-index:1500;opacity:.7px;height:calc(100vh - 50px);background:var(--color-main-background);border-left:1px solid var(--color-border);flex-shrink:0}#app-sidebar.disappear{display:none}#app-settings{margin-top:auto}#app-settings.open #app-settings-content,#app-settings.opened #app-settings-content{display:block}#app-settings-content{display:none;padding:calc(var(--default-grid-baseline)*2);padding-top:0;padding-left:calc(var(--default-grid-baseline)*4);max-height:300px;overflow-y:auto;box-sizing:border-box}#app-settings-content input[type=text]{width:93%}#app-settings-content .info-text{padding:5px 0 7px 22px;color:var(--color-text-lighter)}#app-settings-content input[type=checkbox].radio+label,#app-settings-content input[type=checkbox].checkbox+label,#app-settings-content input[type=radio].radio+label,#app-settings-content input[type=radio].checkbox+label{display:inline-block;width:100%;padding:5px 0}#app-settings-header{box-sizing:border-box;background-color:rgba(0,0,0,0);overflow:hidden;border-radius:calc(var(--default-clickable-area)/2);padding:calc(var(--default-grid-baseline)*2);padding-top:0}#app-settings-header .settings-button{display:flex;align-items:center;height:44px;width:100%;padding:0;margin:0;background-color:rgba(0,0,0,0);box-shadow:none;border:0;border-radius:calc(var(--default-clickable-area)/2);text-align:left;font-weight:normal;font-size:100%;opacity:.8;color:var(--color-main-text)}#app-settings-header .settings-button.opened{border-top:solid 1px var(--color-border);background-color:var(--color-main-background);margin-top:8px}#app-settings-header .settings-button:hover,#app-settings-header .settings-button:focus{background-color:var(--color-background-hover)}#app-settings-header .settings-button::before{background-image:var(--icon-settings-dark);background-position:14px center;background-repeat:no-repeat;content:"";width:44px;height:44px;top:0;left:0;display:block}#app-settings-header .settings-button:focus-visible{box-shadow:0 0 0 2px inset var(--color-primary) !important;background-position:12px center}.section{display:block;padding:30px;margin-bottom:24px}.section.hidden{display:none !important}.section input[type=checkbox],.section input[type=radio]{vertical-align:-2px;margin-right:4px}.sub-section{position:relative;margin-top:10px;margin-left:27px;margin-bottom:10px}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}.tabHeaders{display:flex;margin-bottom:16px}.tabHeaders .tabHeader{display:flex;flex-direction:column;flex-grow:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color-text-lighter);margin-bottom:1px;padding:5px}.tabHeaders .tabHeader.hidden{display:none}.tabHeaders .tabHeader:first-child{padding-left:15px}.tabHeaders .tabHeader:last-child{padding-right:15px}.tabHeaders .tabHeader .icon{display:inline-block;width:100%;height:16px;background-size:16px;vertical-align:middle;margin-top:-2px;margin-right:3px;opacity:.7;cursor:pointer}.tabHeaders .tabHeader a{color:var(--color-text-lighter);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis}.tabHeaders .tabHeader.selected{font-weight:bold}.tabHeaders .tabHeader.selected,.tabHeaders .tabHeader:hover,.tabHeaders .tabHeader:focus{margin-bottom:0px;color:var(--color-main-text);border-bottom:1px solid var(--color-text-lighter)}.tabsContainer{clear:left}.tabsContainer .tab{padding:0 15px 15px}.contact .popovermenu ul>li>a>img,.popover__menu>li>a>img{filter:var(--background-invert-if-dark)}.contact .popovermenu ul>li>a>img[src^=data],.popover__menu>li>a>img[src^=data]{filter:none}.bubble,.app-navigation-entry-menu,.popovermenu{position:absolute;background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--border-radius-large);padding:3px;z-index:110;margin:5px;margin-top:-5px;right:0;filter:drop-shadow(0 1px 3px var(--color-box-shadow));display:none;will-change:filter}.bubble:after,.app-navigation-entry-menu:after,.popovermenu:after{bottom:100%;right:7px;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);border-width:9px}.bubble.menu-center,.app-navigation-entry-menu.menu-center,.popovermenu.menu-center{transform:translateX(50%);right:50%;margin-right:0}.bubble.menu-center:after,.app-navigation-entry-menu.menu-center:after,.popovermenu.menu-center:after{right:50%;transform:translateX(50%)}.bubble.menu-left,.app-navigation-entry-menu.menu-left,.popovermenu.menu-left{right:auto;left:0;margin-right:0}.bubble.menu-left:after,.app-navigation-entry-menu.menu-left:after,.popovermenu.menu-left:after{left:6px;right:auto}.bubble.open,.app-navigation-entry-menu.open,.popovermenu.open{display:block}.bubble.contactsmenu-popover,.app-navigation-entry-menu.contactsmenu-popover,.popovermenu.contactsmenu-popover{margin:0}.bubble ul,.app-navigation-entry-menu ul,.popovermenu ul{display:flex !important;flex-direction:column}.bubble li,.app-navigation-entry-menu li,.popovermenu li{display:flex;flex:0 0 auto}.bubble li.hidden,.app-navigation-entry-menu li.hidden,.popovermenu li.hidden{display:none}.bubble li>button,.bubble li>a,.bubble li>.menuitem,.app-navigation-entry-menu li>button,.app-navigation-entry-menu li>a,.app-navigation-entry-menu li>.menuitem,.popovermenu li>button,.popovermenu li>a,.popovermenu li>.menuitem{cursor:pointer;line-height:44px;border:0;border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{min-width:0;min-height:0;background-position:14px center;background-size:16px}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"]{padding:22px 0 22px 44px}.bubble li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{padding:0 14px 0 44px !important}.bubble li>button:hover,.bubble li>button:focus,.bubble li>a:hover,.bubble li>a:focus,.bubble li>.menuitem:hover,.bubble li>.menuitem:focus,.app-navigation-entry-menu li>button:hover,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>a:hover,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>.menuitem:hover,.app-navigation-entry-menu li>.menuitem:focus,.popovermenu li>button:hover,.popovermenu li>button:focus,.popovermenu li>a:hover,.popovermenu li>a:focus,.popovermenu li>.menuitem:hover,.popovermenu li>.menuitem:focus{background-color:var(--color-background-hover)}.bubble li>button:focus,.bubble li>button:focus-visible,.bubble li>a:focus,.bubble li>a:focus-visible,.bubble li>.menuitem:focus,.bubble li>.menuitem:focus-visible,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>button:focus-visible,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>a:focus-visible,.app-navigation-entry-menu li>.menuitem:focus,.app-navigation-entry-menu li>.menuitem:focus-visible,.popovermenu li>button:focus,.popovermenu li>button:focus-visible,.popovermenu li>a:focus,.popovermenu li>a:focus-visible,.popovermenu li>.menuitem:focus,.popovermenu li>.menuitem:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element)}.bubble li>button.active,.bubble li>a.active,.bubble li>.menuitem.active,.app-navigation-entry-menu li>button.active,.app-navigation-entry-menu li>a.active,.app-navigation-entry-menu li>.menuitem.active,.popovermenu li>button.active,.popovermenu li>a.active,.popovermenu li>.menuitem.active{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}.bubble li>button.action,.bubble li>a.action,.bubble li>.menuitem.action,.app-navigation-entry-menu li>button.action,.app-navigation-entry-menu li>a.action,.app-navigation-entry-menu li>.menuitem.action,.popovermenu li>button.action,.popovermenu li>a.action,.popovermenu li>.menuitem.action{padding:inherit !important}.bubble li>button>span,.bubble li>a>span,.bubble li>.menuitem>span,.app-navigation-entry-menu li>button>span,.app-navigation-entry-menu li>a>span,.app-navigation-entry-menu li>.menuitem>span,.popovermenu li>button>span,.popovermenu li>a>span,.popovermenu li>.menuitem>span{cursor:pointer;white-space:nowrap}.bubble li>button>p,.bubble li>a>p,.bubble li>.menuitem>p,.app-navigation-entry-menu li>button>p,.app-navigation-entry-menu li>a>p,.app-navigation-entry-menu li>.menuitem>p,.popovermenu li>button>p,.popovermenu li>a>p,.popovermenu li>.menuitem>p{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}.bubble li>button>select,.bubble li>a>select,.bubble li>.menuitem>select,.app-navigation-entry-menu li>button>select,.app-navigation-entry-menu li>a>select,.app-navigation-entry-menu li>.menuitem>select,.popovermenu li>button>select,.popovermenu li>a>select,.popovermenu li>.menuitem>select{margin:0;margin-left:6px}.bubble li>button:not(:empty),.bubble li>a:not(:empty),.bubble li>.menuitem:not(:empty),.app-navigation-entry-menu li>button:not(:empty),.app-navigation-entry-menu li>a:not(:empty),.app-navigation-entry-menu li>.menuitem:not(:empty),.popovermenu li>button:not(:empty),.popovermenu li>a:not(:empty),.popovermenu li>.menuitem:not(:empty){padding-right:14px !important}.bubble li>button>img,.bubble li>a>img,.bubble li>.menuitem>img,.app-navigation-entry-menu li>button>img,.app-navigation-entry-menu li>a>img,.app-navigation-entry-menu li>.menuitem>img,.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:16px;padding:14px}.bubble li>button>input.radio+label,.bubble li>button>input.checkbox+label,.bubble li>a>input.radio+label,.bubble li>a>input.checkbox+label,.bubble li>.menuitem>input.radio+label,.bubble li>.menuitem>input.checkbox+label,.app-navigation-entry-menu li>button>input.radio+label,.app-navigation-entry-menu li>button>input.checkbox+label,.app-navigation-entry-menu li>a>input.radio+label,.app-navigation-entry-menu li>a>input.checkbox+label,.app-navigation-entry-menu li>.menuitem>input.radio+label,.app-navigation-entry-menu li>.menuitem>input.checkbox+label,.popovermenu li>button>input.radio+label,.popovermenu li>button>input.checkbox+label,.popovermenu li>a>input.radio+label,.popovermenu li>a>input.checkbox+label,.popovermenu li>.menuitem>input.radio+label,.popovermenu li>.menuitem>input.checkbox+label{padding:0 !important;width:100%}.bubble li>button>input.checkbox+label::before,.bubble li>a>input.checkbox+label::before,.bubble li>.menuitem>input.checkbox+label::before,.app-navigation-entry-menu li>button>input.checkbox+label::before,.app-navigation-entry-menu li>a>input.checkbox+label::before,.app-navigation-entry-menu li>.menuitem>input.checkbox+label::before,.popovermenu li>button>input.checkbox+label::before,.popovermenu li>a>input.checkbox+label::before,.popovermenu li>.menuitem>input.checkbox+label::before{margin:-2px 13px 0}.bubble li>button>input.radio+label::before,.bubble li>a>input.radio+label::before,.bubble li>.menuitem>input.radio+label::before,.app-navigation-entry-menu li>button>input.radio+label::before,.app-navigation-entry-menu li>a>input.radio+label::before,.app-navigation-entry-menu li>.menuitem>input.radio+label::before,.popovermenu li>button>input.radio+label::before,.popovermenu li>a>input.radio+label::before,.popovermenu li>.menuitem>input.radio+label::before{margin:-2px 12px 0}.bubble li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}.bubble li>button form,.bubble li>a form,.bubble li>.menuitem form,.app-navigation-entry-menu li>button form,.app-navigation-entry-menu li>a form,.app-navigation-entry-menu li>.menuitem form,.popovermenu li>button form,.popovermenu li>a form,.popovermenu li>.menuitem form{display:flex;flex:1 1 auto;align-items:center}.bubble li>button form:not(:first-child),.bubble li>a form:not(:first-child),.bubble li>.menuitem form:not(:first-child),.app-navigation-entry-menu li>button form:not(:first-child),.app-navigation-entry-menu li>a form:not(:first-child),.app-navigation-entry-menu li>.menuitem form:not(:first-child),.popovermenu li>button form:not(:first-child),.popovermenu li>a form:not(:first-child),.popovermenu li>.menuitem form:not(:first-child){margin-left:5px}.bubble li>button>span.hidden+form,.bubble li>button>span[style*="display:none"]+form,.bubble li>a>span.hidden+form,.bubble li>a>span[style*="display:none"]+form,.bubble li>.menuitem>span.hidden+form,.bubble li>.menuitem>span[style*="display:none"]+form,.app-navigation-entry-menu li>button>span.hidden+form,.app-navigation-entry-menu li>button>span[style*="display:none"]+form,.app-navigation-entry-menu li>a>span.hidden+form,.app-navigation-entry-menu li>a>span[style*="display:none"]+form,.app-navigation-entry-menu li>.menuitem>span.hidden+form,.app-navigation-entry-menu li>.menuitem>span[style*="display:none"]+form,.popovermenu li>button>span.hidden+form,.popovermenu li>button>span[style*="display:none"]+form,.popovermenu li>a>span.hidden+form,.popovermenu li>a>span[style*="display:none"]+form,.popovermenu li>.menuitem>span.hidden+form,.popovermenu li>.menuitem>span[style*="display:none"]+form{margin-left:0}.bubble li>button input,.bubble li>a input,.bubble li>.menuitem input,.app-navigation-entry-menu li>button input,.app-navigation-entry-menu li>a input,.app-navigation-entry-menu li>.menuitem input,.popovermenu li>button input,.popovermenu li>a input,.popovermenu li>.menuitem input{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}.bubble li>button input:not(:first-child),.bubble li>a input:not(:first-child),.bubble li>.menuitem input:not(:first-child),.app-navigation-entry-menu li>button input:not(:first-child),.app-navigation-entry-menu li>a input:not(:first-child),.app-navigation-entry-menu li>.menuitem input:not(:first-child),.popovermenu li>button input:not(:first-child),.popovermenu li>a input:not(:first-child),.popovermenu li>.menuitem input:not(:first-child){margin-left:5px}.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input{margin-top:12px}.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input{margin-bottom:0px}.bubble li>button,.app-navigation-entry-menu li>button,.popovermenu li>button{padding:0}.bubble li>button span,.app-navigation-entry-menu li>button span,.popovermenu li>button span{opacity:1}.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:44px;height:44px}.app-content-list{position:-webkit-sticky;position:relative;top:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform 250ms ease-in-out;min-height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;flex:1 1 200px;min-width:200px;max-width:300px}.app-content-list .app-content-list-item{position:relative;height:68px;cursor:pointer;padding:10px 7px;display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto}.app-content-list .app-content-list-item>[class^=icon-],.app-content-list .app-content-list-item>[class*=" icon-"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]{order:4;width:24px;height:24px;margin:-7px;padding:22px;opacity:.3;cursor:pointer}.app-content-list .app-content-list-item>[class^=icon-]:hover,.app-content-list .app-content-list-item>[class^=icon-]:focus,.app-content-list .app-content-list-item>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:focus{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:focus{opacity:1}.app-content-list .app-content-list-item>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>[class*=" icon-"].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"].icon-starred{opacity:1}.app-content-list .app-content-list-item:hover,.app-content-list .app-content-list-item:focus,.app-content-list .app-content-list-item.active{background-color:var(--color-background-dark)}.app-content-list .app-content-list-item:hover .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item:focus .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item.active .app-content-list-item-checkbox.checkbox+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item .app-content-list-item-star{position:absolute;height:40px;width:40px;z-index:50}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label+.app-content-list-item-icon{opacity:.7}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label{top:14px;left:7px;display:none}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label::before{margin:0}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label~.app-content-list-item-star{display:none}.app-content-list .app-content-list-item .app-content-list-item-star{display:flex;top:10px;left:32px;background-size:16px;height:20px;width:20px;margin:0;padding:0}.app-content-list .app-content-list-item .app-content-list-item-icon{position:absolute;display:inline-block;height:40px;width:40px;line-height:40px;border-radius:50%;vertical-align:middle;margin-right:10px;color:#fff;text-align:center;font-size:1.5em;text-transform:capitalize;object-fit:cover;user-select:none;cursor:pointer;top:50%;margin-top:-20px}.app-content-list .app-content-list-item .app-content-list-item-line-one,.app-content-list .app-content-list-item .app-content-list-item-line-two{display:block;padding-left:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1;flex:1 1 0px;padding-right:10px;cursor:pointer}.app-content-list .app-content-list-item .app-content-list-item-line-two{opacity:.5;order:3;flex:1 0;flex-basis:calc(100% - 44px)}.app-content-list .app-content-list-item .app-content-list-item-details{order:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;opacity:.5;font-size:80%;user-select:none}.app-content-list .app-content-list-item .app-content-list-item-menu{order:4;position:relative}.app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu{margin:0;right:-2px}.app-content-list.selection .app-content-list-item-checkbox.checkbox+label{display:flex}.pull-left{float:left}.pull-right{float:right}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.hidden{display:none}.hidden-visually{position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}.bold{font-weight:600}.center{text-align:center}.inlineblock{display:inline-block}::-moz-focus-inner{border:0}@media only screen and (width < 1024px){#dropdown{margin-right:10% !important;width:80% !important}.ui-autocomplete{z-index:1000 !important}.error-wide{width:100%;margin-left:0 !important;box-sizing:border-box}#app-navigation:not(.vue){transform:translateX(-300px);position:fixed;height:var(--body-height)}.snapjs-left #app-navigation{transform:translateX(0)}#app-navigation:not(.hidden)+#app-content{margin-left:0}.skip-navigation.skip-content{left:3px;margin-left:0}.app-content-list{background:var(--color-main-background);flex:1 1 100%;max-height:unset;max-width:100%}.app-content-list+.app-content-details{display:none}.app-content-list.showdetails{display:none}.app-content-list.showdetails+.app-content-details{display:initial}#app-content.showdetails #app-navigation-toggle{transform:translateX(-44px)}#app-content.showdetails #app-navigation-toggle-back{position:fixed;display:inline-block !important;top:50px;left:0;width:44px;height:44px;z-index:1050;background-color:rgba(255,255,255,.7);cursor:pointer;opacity:.6;transform:rotate(90deg)}#app-content.showdetails .app-content-list{transform:translateX(-100%)}#app-navigation-toggle{position:fixed;display:inline-block !important;left:0;width:44px;height:44px;z-index:1050;cursor:pointer;opacity:.6}#app-navigation-toggle:hover,#app-navigation-toggle:focus{opacity:1}#app-navigation+#app-content .files-controls{padding-left:44px}#body-user .app-files.viewer-mode .files-controls{padding-left:0 !important}.app-files.viewer-mode #app-navigation-toggle{display:none !important}table.multiselect thead{left:0 !important}#usersearchform{display:none}#body-settings .files-controls{min-width:1024px !important}#oc-dialog-filepicker-content .filelist .column-size,#oc-dialog-filepicker-content .filelist .column-mtime,#oc-dialog-filepicker-content .filelist .filesize,#oc-dialog-filepicker-content .filelist .date{display:none}#oc-dialog-filepicker-content .filelist .filename{max-width:100%}.snapjs-left table.multiselect thead{top:44px}}@media only screen and (max-width: 480px){#header .header-right>div>.menu{max-width:calc(100vw - 10px);position:fixed}#header .header-right>div>.menu::after{display:none !important}#header .header-right>div.openedMenu::after{display:block}#header .header-right>div::after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:0;content:" ";height:0;width:0;position:absolute;pointer-events:none;right:15px;z-index:2001;display:none}#header .header-right>div#settings::after{right:27px}}.tooltip{position:absolute;display:block;font-family:var(--font-face);font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;overflow-wrap:anywhere;font-size:12px;opacity:0;z-index:100000;margin-top:-3px;padding:10px 0;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.tooltip.in,.tooltip.show,.tooltip.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.tooltip.top .tooltip-arrow,.tooltip[x-placement^=top]{left:50%;margin-left:-10px}.tooltip.bottom,.tooltip[x-placement^=bottom]{margin-top:3px;padding:10px 0}.tooltip.right,.tooltip[x-placement^=right]{margin-left:3px;padding:0 10px}.tooltip.right .tooltip-arrow,.tooltip[x-placement^=right] .tooltip-arrow{top:50%;left:0;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:var(--color-main-background)}.tooltip.left,.tooltip[x-placement^=left]{margin-left:-3px;padding:0 5px}.tooltip.left .tooltip-arrow,.tooltip[x-placement^=left] .tooltip-arrow{top:50%;right:0;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:var(--color-main-background)}.tooltip.top .tooltip-arrow,.tooltip.top .arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-left .arrow,.tooltip[x-placement^=top] .tooltip-arrow,.tooltip[x-placement^=top] .arrow,.tooltip.top-right .tooltip-arrow,.tooltip.top-right .arrow{bottom:0;border-width:10px 10px 0;border-top-color:var(--color-main-background)}.tooltip.top-left .tooltip-arrow{right:10px;margin-bottom:-10px}.tooltip.top-right .tooltip-arrow{left:10px;margin-bottom:-10px}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .arrow,.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip[x-placement^=bottom] .arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .arrow,.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .arrow{top:0;border-width:0 10px 10px;border-bottom-color:var(--color-main-background)}.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-10px}.tooltip.bottom-left .tooltip-arrow{right:10px;margin-top:-10px}.tooltip.bottom-right .tooltip-arrow{left:10px;margin-top:-10px}.tooltip-inner{max-width:350px;padding:5px 8px;background-color:var(--color-main-background);color:var(--color-main-text);text-align:center;border-radius:var(--border-radius)}.tooltip-arrow,.tooltip .arrow{position:absolute;width:0;height:0;border-color:rgba(0,0,0,0);border-style:solid}.toastify.dialogs{min-width:200px;background:none;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 6px 0 var(--color-box-shadow);padding:0 12px;margin-top:45px;position:fixed;z-index:10100;border-radius:var(--border-radius);display:flex;align-items:center}.toastify.dialogs .toast-undo-container{display:flex;align-items:center}.toastify.dialogs .toast-undo-button,.toastify.dialogs .toast-close{position:static;overflow:hidden;box-sizing:border-box;min-width:44px;height:100%;padding:12px;white-space:nowrap;background-repeat:no-repeat;background-position:center;background-color:transparent;min-height:0}.toastify.dialogs .toast-undo-button.toast-close,.toastify.dialogs .toast-close.toast-close{text-indent:0;opacity:.4;border:none;min-height:44px;margin-left:10px;font-size:0}.toastify.dialogs .toast-undo-button.toast-close::before,.toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo=");content:" ";filter:var(--background-invert-if-dark);display:inline-block;width:16px;height:16px}.toastify.dialogs .toast-undo-button.toast-undo-button,.toastify.dialogs .toast-close.toast-undo-button{margin:3px;height:calc(100% - 6px);margin-left:12px}.toastify.dialogs .toast-undo-button:hover,.toastify.dialogs .toast-undo-button:focus,.toastify.dialogs .toast-undo-button:active,.toastify.dialogs .toast-close:hover,.toastify.dialogs .toast-close:focus,.toastify.dialogs .toast-close:active{cursor:pointer;opacity:1}.toastify.dialogs.toastify-top{right:10px}.toastify.dialogs.toast-with-click{cursor:pointer}.toastify.dialogs.toast-error{border-left:3px solid var(--color-error)}.toastify.dialogs.toast-info{border-left:3px solid var(--color-primary)}.toastify.dialogs.toast-warning{border-left:3px solid var(--color-warning)}.toastify.dialogs.toast-success{border-left:3px solid var(--color-success)}.toastify.dialogs.toast-undo{border-left:3px solid var(--color-success)}.theme--dark .toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo=")}#body-public .header-right #header-primary-action a{color:var(--color-primary-text)}#body-public .header-right #header-secondary-action ul li{min-width:270px}#body-public .header-right #header-secondary-action #header-actions-toggle{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);filter:var(--background-invert-if-dark)}#body-public .header-right #header-secondary-action #header-actions-toggle:hover,#body-public .header-right #header-secondary-action #header-actions-toggle:focus,#body-public .header-right #header-secondary-action #header-actions-toggle:active{opacity:1}#body-public .header-right #header-secondary-action #external-share-menu-item form{display:flex}#body-public .header-right #header-secondary-action #external-share-menu-item .hidden{display:none}#body-public .header-right #header-secondary-action #external-share-menu-item #save-button-confirm{flex-grow:0}#body-public #content{min-height:calc(100% - 65px)}#body-public.layout-base #content{padding-top:0}#body-public p.info{margin:20px auto;text-shadow:0 0 2px rgba(0,0,0,.4);-moz-user-select:none;-ms-user-select:none;user-select:none}#body-public p.info,#body-public form fieldset legend,#body-public #datadirContent label,#body-public form fieldset .warning-info,#body-public form input[type=checkbox]+label{text-align:center}#body-public footer{position:fixed;display:flex;align-items:center;justify-content:center;height:65px;flex-direction:column;bottom:0;width:calc(100% - 16px);margin:8px;background-color:var(--color-main-background);border-radius:var(--border-radius-large)}#body-public footer p{text-align:center;color:var(--color-text-lighter)}#body-public footer p a{color:var(--color-text-lighter);font-weight:bold;white-space:nowrap;padding:10px;margin:-10px;line-height:200%}/*# sourceMappingURL=server.css.map */
diff --git a/core/css/server.css.map b/core/css/server.css.map
index e20bdc64237..8c14d92f43e 100644
--- a/core/css/server.css.map
+++ b/core/css/server.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["icons.scss","styles.scss","inputs.scss","functions.scss","header.scss","variables.scss","apps.scss","global.scss","fixes.scss","mobile.scss","tooltip.scss","../../node_modules/@nextcloud/dialogs/dist/index.css","public.scss"],"names":[],"mappings":"AA8IQ,8BC5HR,yQACC,SACA,UACA,SACA,oBACA,eACA,oBACA,wBACA,eACA,uDACA,qBAGD,6CACC,aAID,kGAEC,gDACA,aAGD,UACC,YAGD,6DACC,cAGD,KACC,gBAGD,MACC,yBACA,iBACA,mBAGD,cACC,gBACA,mBAGD,YACC,sBAGD,EACC,SACA,6BACA,qBACA,eACA,IACC,eAIF,WACC,aACA,0BAGD,MACC,eACA,QACC,eAIF,0BACC,eAGD,GACC,gBAGD,KACC,mBAEA,mCACA,uCACA,6BACA,6BAGD,mBACC,kBAGD,qBACC,kBACA,sBACA,qBACA,2BACA,2DACA,uBAGD,iBACC,qBACA,aACA,gCAGD,eACC,YACA,aAGD,cACC,eACA,MACA,SACA,OACA,YACA,WACA,aACA,kBACA,gDACA,gCACA,iBACA,eACA,kBACC,cACA,kBACA,UACA,QACA,gBAED,gBACC,gCACA,sDACA,4CACC,qCAOH,oBACC,WACA,YAGD,2BACC,+BAGD,gCACC,+BAGD,0BACC,kCACA,yCACA,+BACA,4BAMD,YACC,8CACA,gCAMD,kBACC,sBAKD,4BAEC,oCACA,kBACA,gBACA,WACA,sDACC,gBAED,sEACC,gBAED,kCACC,mBAED,oHAEC,qBACA,YACA,WACA,mBACA,gcAEC,WAOH,sBACC,WASD,oCACC,kBACA,yBACA,sBACA,qBACA,iBAKD,kBACC,kBACA,UACA,SACA,YAGD,8BACC,WACA,oBACA,wBACA,wBAGD,2EACC,WAED,oGACC,0CACA,UACA,qBAGD,mDACC,6BACA,YACA,WACA,yCACA,4BACA,2BACA,WAOA,qEACC,UAED,qEACC,UAIF,wEACC,aAGD,2CACC,mBAGD,yBACC,kBACA,qBACA,iBAED,qBACC,cACA,QACA,iBACA,kBACA,aAKD,4CACC,eACA,YACA,mCACA,6BACA,qDAIA,2BACC,4BAKD,wBACC,sBACA,4BACA,+BACC,2CACA,qBACA,kBAGF,0BACC,qBACA,gBAIF,YACC,YACA,8BACA,oBACC,sBAIF,eACC,2CAUD,mBACC,kBACA,cACA,2BACC,kBACA,cAIF,UACC,gBAGD,8CACC,UAIA,oGAGC,WAIF,mBACC,WACA,kBACA,QAEA,kDACC,UAIF,WACC,WACA,YAGD,eACC,WAIA,8CACC,UAKD,kDACC,UAKD,0CACC,UAKD,8CACC,8CAIF,KACC,mFAGD,OACC,gBACA,YACA,eACA,qBACA,UACC,qBAIF,2FACC,gBACA,uBAGD,2BACC,yDAGD,2BACC,6DAID,yBACC,gBACA,gBACA,WACA,mCACA,YACA,wBAEA,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAED,oDACC,WAEA,8EACC,yEAED,8EACC,wEAGF,oEACC,UAID,oDACC,mBACA,gCACA,WACA,WACA,YAED,0DACC,yBAGA,+FACC,gDAGD,wOAGC,sCACA,gCACA,iBAGD,yNAEC,gCACA,WAMJ,wCACC,gCACA,wCAKD,yBACC,2BACA,sBACA,mCACA,wBAEA,4CACC,uBAGD,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAIF,qFACC,iBAGA,iDACC,mBACA,gCACA,WACA,yDACC,UACA,WACA,iBAGF,uDACC,yBAGA,0TAIC,sCACA,gCACA,iBAGD,4FACC,gCAGD,qEACC,2CASH,oGACC,aACA,iBACA,8BACA,0GACC,cACA,SACA,YACA,YACA,WACA,aACA,mBACA,uBACA,8GACC,kBACA,kBACA,mBACA,6BACA,cACA,iBACA,WACA,YACA,YACA,eAOJ,8BACC,kBACA,aACA,sBAEA,uCACC,eACA,sBACA,oBAEA,yDACC,cACA,uCACA,4BACA,gCAGA,6DACC,eAED,uDACC,iBAED,oEACC,YACA,YAKH,mDACC,kBACA,+BACA,YACA,SACA,aACA,WACA,QACA,MAEA,4KAGC,0CACA,UAIF,iDACC,eACA,YACA,sBACA,oBACA,WACA,gBACA,eACA,8CACA,0CACA,wCACA,kBACA,UACA,QACA,QAEA,gEACC,sCACA,0BACA,WACA,YACA,WACA,WAGD,mDACC,WACA,YACA,gBAGD,uDACC,SACA,gBACA,4DACC,aACA,YAMH,kDACC,sBACA,qBACA,gBACA,OAGA,WACA,kBAED,4CACC,oCACA,kBACA,gBACA,WACA,aAED,wCACC,8CACA,WAED,0DAEC,kBACA,mBAEC,mEACC,4CACA,8CACA,sEACC,UACA,YAIH,0EACC,cACA,aACA,YACA,sBACA,2BACA,sBAED,+EACC,iBACA,iBAGD,6EACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,qQAGC,kBAED,oLAEC,mBAGD,6DACC,aACA,4CAED,2EACC,mBAED,oEACC,gBACA,mBACA,uBACA,qBACA,4BACA,kBACA,4BACA,eAEA,YACA,oFACC,aACA,2FACC,gBACA,gBACA,uBAED,0FACC,gBAIH,oIACC,WAED,oEACC,iBAED,oEAIC,aACA,sBAEA,0EACC,aACA,+CACA,6BACA,aACA,cAEA,6EACC,cACA,kBACA,mCACA,QAhBS,KAiBT,aACA,sBACA,YAGA,gFACC,YACA,UACA,kBACA,mCAEA,yFACC,oBACA,+BACA,wBACA,YA/BU,KAgCV,eACA,yGACC,uBAGF,yFACC,iBACA,WAED,qFACC,aAON,2DACC,gDAIF,WACC,0BAGD,aACC,WACA,sBAKD,YACC,6BAMA,qBACC,WACA,aAED,wBACC,cACA,gDACA,WACA,aAED,2BACC,WACA,YACA,6BACC,WAGF,wBACC,wCACA,kBACA,mBACA,gBACA,uBACA,0CACA,kCACA,6DACC,0CAGF,sBACC,UACA,WAKF,YACC,oBAED,UACC,oBACA,kDACA,4BACA,iCACA,YACA,0BACA,cACA,QACA,kBACA,oBACC,QACA,kBACA,sBACC,WAIA,0FACC,cAIF,iCACC,SACA,iBACA,oCACC,iBACA,gBACA,kBACA,kBACA,gEACC,+EAGF,gDACC,aAIH,iBACC,aACA,wBACC,QAGF,2BAEC,kBACA,aACA,WACA,uBACA,mBACA,gBACA,cAEA,gBAEA,kGAGC,oBAGF,0BACC,UACA,WAID,qBACC,iBACA,kBAEA,4BACC,eAGF,mEACC,UAEA,kKAEC,WAOH,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAOD,+CACC,SACA,kBAED,mDACC,gBAKF,cACC,mBAMD,mBACC,aACA,QACA,SACA,UCjiCD,kFACC,6BAED,uGACC,wCAED,sDACI,kCAMJ,iHAUC,YACA,WAdgB,KAehB,sBASD,wBACI,aAIJ,yJAUC,qBACA,iBACA,eACA,8CACA,6BACA,0CACA,mCACA,aACA,mCACA,YAEC,irCAIC,0CACA,aAED,qZACC,aACA,8CACA,8BAED,scACC,0CAGF,wNACC,8CACA,6BACA,eACA,WAED,wNACC,gBAED,oPACC,mDAGD,iNACC,8CACA,0CACA,gCACA,eAGA,kvBAEC,uCAIA,mjCAGC,oDACA,gDAED,gwBAEC,4CAED,2WACC,qCAGF,gRAEC,8CACA,qCACA,eAKH,2BACC,qBACA,gBACA,eACA,8CACA,gCACA,gDACA,aACA,mCAEA,8CACA,gCACA,eACA,WAKA,4KACC,6BACA,0BAEA,OAzIe,KA2IhB,0EAIC,YACA,WAID,kBACC,WACA,cACA,gBACA,WACA,eAED,mBACC,SACA,QAED,iBACC,cAKF,6GASC,iBACA,mCACA,WACA,WAjLgB,KAkLhB,eACA,sBACA,8CAEA,mKACC,eAIF,qMAcC,qBACA,eACA,mCACA,8CACA,6BACA,iDACA,YACA,aACA,yCACA,uBACA,eACA,+0BACC,0CAED,yRACC,YAIF,mCACC,8CACA,6BAGD,mCACC,aACA,YAID,OACC,kEACA,gBACA,8CACA,8BASA,2DACC,eAIA,sFACC,eAMH,sGAQC,iBACA,wCAGA,gMACC,SAGD,oIACC,+CACA,2CACA,sBAWA,4MAEC,qBACA,2BACA,WAUD,kGACC,6BACA,2CACA,mFACA,iBACA,4BAEA,yDACA,UACA,OArTc,KAsTd,MAtTc,KAuTd,gBACA,eACA,eACA,6HACC,eCrRH,+CD6RG,yOACC,gCAID,4qBAGC,qDACA,8CACA,6vBACC,uDAQH,+VACC,qDACA,2CAEA,UAQJ,uBAEC,eAED,2BAEC,mBAUC,4GAEC,kBACA,cACA,SACA,UACA,WACA,gBACA,oIACC,iBAED,4WAEC,eAED,gKACC,WACA,qBACA,OAxBkB,KAyBlB,MAzBkB,KA0BlB,sBACA,kBACA,qBACA,2CAED,oeAEC,0CAED,4LACC,oBACA,qCACA,kBACA,mBAED,4bAIC,8DACA,8CACA,0CAED,oMACC,2CACA,0DAED,oOACC,+CAID,gJACC,qBACA,iBAED,oMACC,cA/DkB,KAmEnB,mFACC,kBACA,OArEkB,KAsElB,MAtEkB,KAuElB,2BACA,2BAED,mGACC,yDAED,+GACC,0DAOD,gZAEC,qBAED,wUACC,aAzFyB,KA2F1B,4NACC,8DACA,yBACA,qBAED,gOACC,oCACA,6CAED,gQACC,8DACA,6CACA,yBAID,8OAEC,0CACA,6BACA,+DAED,6HACC,gEAED,mHACC,WAOJ,iBACC,gBACA,8CACA,qCACC,sCAED,yBACC,qBACA,iBACA,sBACA,6BACC,eAGF,uCACC,gBACA,qEACA,yCAED,kCACC,iBACA,SACA,UACA,wDACC,mBACA,gBACA,uBACA,6DACC,eACA,gEACC,eACA,iBAIH,6JAGC,kBACA,kBACA,aACA,+BACA,eACA,gCAGA,mEACC,8CAGF,uDACE,8CACA,6BAMH,oGAEC,eAID,mHAEC,gBACA,mBACA,uBACA,wCACA,2CACA,uBACA,yCACA,0CACA,SACA,YACA,gBACA,6IACC,kCAED,iKACC,iBACA,iBACA,stBAIC,sBACA,8CACA,gCACA,0CAED,2NACC,aAGF,2KACC,iBACA,gBACA,gBACA,6BACA,yMACC,2BAKJ,sBACC,qBACA,+DACC,aACA,eACA,kEACC,WAGF,uCACC,gBACA,mBACA,uBACA,wCACA,2CACA,uBACA,yCACA,0CACA,SACA,iBACA,gBACA,oDACC,kCAED,8DACC,iBACA,iBACA,sBACA,8CACA,0CACA,2FACC,aAED,8JAEC,qCACA,iCAGF,sDACC,gBACA,gBACA,YACA,wDACC,mEACA,WAGF,2LAGC,WAED,mEACC,iBAMH,UACC,qBACA,qBACA,2BACC,wBACA,eACA,yCACC,iBACA,iBACA,sBACA,8CACA,gCACA,0CACA,oBACA,mBACA,gDACC,gBAIH,yBACC,UACA,4BACC,YACA,kBACA,kBACA,+BACA,eACA,gCACA,8BACC,mBACA,gBACA,uBACA,YACA,wBACA,SACA,eACA,eACA,2BACA,yBACA,sBACA,qBACA,iBACA,oBACA,mBACA,0CACA,yBACA,sCACC,YACA,4CACA,4BACA,2BACA,eACA,gBACA,cACA,WACA,iBACA,kBAGF,sCACC,6BAED,qCACC,8CACA,6BACA,6CACC,mBAQL,mBACC,cACA,WACA,UACA,cACA,8CACA,mCACA,gBACA,WACA,gBAEC,2CACC,8BAED,gDACC,8BAGF,yCACC,yBAED,sCACC,mCACA,gCACA,iCAED,2CACC,mCACA,gCACA,iCAKF,iBACC,QAEC,0BAED,QAEC,yBAED,YAGC,0BAED,QAEC,0BAGF,OACC,qBACA,uBACA,mCAKD,cACC,kBACA,cACA,aACA,UACA,WACA,gBAGD,kEAGC,oCACG,mCE/yBJ,mBAEC,yBACA,sBACA,qBACA,6PACC,aAGD,+QACC,YACA,kBACA,2BACA,WACA,WACA,kBACA,2CACA,SACA,UAGD,gLACC,WAIA,kPACC,WAGD,+HACC,SAOH,+DAGC,oBACA,kBACA,MACA,WACA,aACA,OC2Ce,KD1Cf,sBACA,8BAID,WACC,cACA,kBACA,kBACA,wBACA,sBACA,UACA,mBACA,aACA,eACA,gBACA,WAEA,mCACC,UAaD,gCACC,8CACA,sDACA,yCACA,sBACA,aACA,kBACA,gBAfD,gBACA,oCAgBC,UACA,SACA,SACA,gBAEA,kDACC,aAID,sCACC,gCACA,iDACA,YACA,YACA,SACA,QACA,kBACA,oBACA,WAGD,uEAEC,iCAzCF,gBACA,oCA4CA,cACC,oBACA,yFACA,4BACA,wBACA,2BACA,WACA,kBACA,UACA,QACA,WAEA,gFAGD,kCACC,aACA,mBACA,cAGD,sFAEC,oBACA,mBAGD,0CACC,SACA,mBACA,YAGD,4CACC,yBACA,cAKA,qDAEC,YACA,kBACA,6EACC,aACA,uBACA,mBACA,MC3EY,KD4EZ,YACA,eACA,YACA,UACA,aAEA,yFACC,UAGD,yGACC,aASL,0CACC,YAKD,gBACC,gCACA,eACA,iBACA,SACA,UACA,kBACA,gBACA,uBAEA,cAGD,kBACC,gCACA,kBACA,gBACA,eACA,iBACA,gBACA,uBAID,cACC,kBACA,gBACA,aACA,WACA,SACA,YACA,aAEA,2BACC,ICxIc,KD+If,gDACC,mBACA,eAED,gJAEC,qBACA,YACA,WJjOF,iCACC,4BACA,2BACA,eACA,gBAGD,iBACC,kDAID,sGAMC,kBACA,0IACC,UACA,WACA,YACA,WACA,uBACA,kBACA,QACA,SACA,mBACA,6CACA,qCACA,gCACA,4BACA,wBACA,4CACA,2CAEA,wCAEA,gYAGC,uCAKH,wDAEC,2CACA,4CAGD,yDAEC,YACA,WACA,qBAKA,yJACC,2CAED,iMACC,gDAED,yMACC,iDAED,iPACC,sDAIF,kBACC,KACC,uBAED,GACC,0BAIF,SACC,gCAGD,yKAQC,wDM3GD,MACC,gEAEA,0GACA,8FAGD,sCACC,MACC,6BACA,8BAKF,KACC,WACA,YACA,kBAEA,6EAGD,KAEC,6EAEA,0EACA,sBACA,2BACA,eACA,WACA,iDAKD,GACC,iBACA,eACA,mBACA,iBACA,8BAGD,GACC,eACA,cACA,8BAGD,GACC,eAID,GACC,kBACA,gCAGD,GACC,eAGD,MAEC,qBACA,aACA,eAGD,GACC,YACA,mBACA,iBAGD,IACC,iBACA,sBACA,kCACA,mCACA,qBACA,mBAMD,wBACC,sBAKD,0BAEC,8DAEA,MDfkB,MCgBlB,YACA,gBACA,kBACA,mDACA,8CACA,+EACA,gBACA,YACA,sBACA,qBACA,iBACA,aACA,sBACA,YACA,cAGA,8CACC,cACA,6CACA,qDACC,qBACA,WACA,aACA,kBACA,gCACA,gBACA,SAIF,6BACC,kBAED,6BACC,kBACA,YACA,WACA,kBACA,gBACA,sBACA,aACA,sBACA,6CACA,iBAEA,wCACC,oDAGD,gCACC,oBACA,eACA,QACA,cACA,SACA,kBACA,WACA,wCAGA,uCACC,QACA,oDACC,2BAIF,8DAEC,6BAED,2DAIC,6BAKA,oKAEC,+CAGF,gDACC,gDACA,aAMA,gVAEC,4CAKF,yDACC,UACA,SAMA,qGAEC,aAIF,uDACC,iBACA,iBACA,eACA,mBACA,uBACA,2BACA,iBACA,oBAEA,yEACC,gBAKF,mCACC,cACA,WACA,kBACA,sCACC,oBACA,eACA,kBACA,WACA,kBAIC,oLAEC,wCACA,+CAKD,gMAEC,wCACA,4CAKF,+DACC,UAGD,oEAEC,gBACA,kBAGD,iEAEC,gBAGA,6BAMJ,sEAEC,kBACA,sBAGC,sRAGC,oCAIF,0EACC,0BACA,gCACA,4BACA,cACA,8BACA,iBACA,gBACA,sBACA,gBACA,sBACA,mBACA,uBACA,wCACA,6BACA,aACA,YAGA,kFACC,sBACA,gHACC,qBAGF,0GACC,kBACA,WACA,YAEA,wCAID,kIACC,qBACA,YACA,0MACC,2BAKH,gIACC,kBACA,cACA,YACA,WACA,YACA,YACA,kBACA,eACA,wCAEA,oIAEC,oCAKF,4HACC,SAID,4IACC,UACA,YAED,kJACC,wBACA,YAIH,iCACC,aAMD,kMAEC,SACA,WACA,+BACA,4BACA,2BACA,4ZAEC,+BACA,UAUD,iDACC,UACA,kBACA,WACA,YACA,SACA,YAIA,OAEA,+DACC,UACA,eACA,gDACA,gBAGF,8CACC,kBACA,YACA,WACA,SACA,UACA,gBH5XF,6CG8XE,qBACA,4BACA,2BACA,YACA,gBACA,wBACA,gBACA,YACA,UACA,iCACA,6BACA,yBACA,YACA,kBACA,qCAMD,qDACC,kBAIA,wGACC,UAED,8FACC,sBAED,oJACC,oCAID,mDACC,4BACA,wBACA,oBAQH,sDACC,cACA,yDACC,wBACA,mBACA,yBAED,yDACC,sBACA,YAED,6DACC,YACA,WACA,SACA,gBAIA,gJHhcF,uCGmcE,sNAEC,+BACA,UAGF,0FACC,gBACA,iBACA,cACA,iBACA,eAEA,sGACC,UACA,kBACA,2GACC,gBACA,mBACA,sCACA,gCASJ,qDACC,iBACA,kBACA,cACA,uBACA,qCACA,UACA,kBACA,8CACA,WACA,mHAEC,oBACA,WAED,2DACC,YACA,eACA,YACA,kIAGC,UAGF,sEACC,WACA,YACA,6BACA,0BAED,wIAEC,WACA,YACA,cACA,0KACC,2BAED,4KACC,iBAED,8JACC,gDACA,6CACA,4BACA,yBAQH,wDACC,oBACA,kBACA,4BACA,kGACC,kBACA,mBACA,uBACA,gBACA,aACA,iBAED,6FACC,SACA,YACA,WACA,iBACA,sMAEC,UAQH,6GAEC,uBACA,2FAGA,kBACA,OACA,8CACA,sBAMD,yCACC,gDACA,wCACA,oBAGD,iCACC,yBAGD,iHAEC,qBAMF,SACC,sBACA,gBACA,oCACA,gBACA,UACA,aACA,kDACA,0BACA,2CACA,gBAEA,kCACC,eAIF,2CACC,SACC,kDACA,mDAED,gBACC,kDAED,aACC,oDAcF,aACC,aACA,8CACA,iBACA,cACA,iBACA,YAGA,kCACC,gBAID,kCACC,aACA,kBACA,oBAGA,gBAGA,uDAEC,eACA,mFACC,aAWJ,aACC,WACA,UDvnBmB,MCwnBnB,UDvnBmB,MCwnBnB,cACA,wBACA,gBACA,ID9nBe,KC+nBf,QACA,gBACA,kBACA,aACA,aACA,0BACA,wCACA,0CACA,cAEA,uBACC,aAOF,cAEC,gBAGC,oFACC,cAKH,sBACC,aACA,6CACA,cACA,kDAEA,iBACA,gBACA,sBAGA,uCACC,UAGD,iCACC,uBACA,gCAOE,4NACC,qBACA,WACA,cAOL,qBACC,sBACA,+BACA,gBACA,oDACA,6CACA,cAEA,sCACC,aACA,mBACA,YACA,WACA,UACA,SACA,+BACA,gBACA,SACA,oDACA,gBACA,mBACA,eACA,WAGA,6BAEA,6CACC,yCACA,8CACA,eAED,wFAEC,+CAGD,8CACC,2CACA,gCACA,4BACA,WACA,WACA,YACA,MACA,OACA,cAGD,oDACC,2DACA,gCAMH,SACC,cACA,aACA,mBACA,gBACC,wBAIA,yDAEC,oBACA,iBAIH,aACC,kBACA,gBACA,iBACA,mBAGD,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAKF,YACC,aACA,mBAEA,uBACC,aACA,sBACA,YACA,kBACA,mBACA,gBACA,uBACA,eACA,gCACA,kBACA,YAEA,8BACC,aAID,mCACC,kBAED,kCACC,mBAGD,6BACC,qBACA,WACA,YACA,qBACA,sBACA,gBACA,iBACA,WACA,eAGD,yBACC,gCACA,kBACA,gBACA,uBAED,gCACC,iBAED,0FAGC,kBACA,6BACA,kDAIH,eACC,WACA,oBACC,oBAWD,0DACC,wCAIA,gFACC,YAKH,gDAGC,kBACA,8CACA,6BACA,yCACA,YACA,YACA,WACA,gBACA,QACA,sDACA,aACA,mBAEA,kEACC,YAKA,UAEA,2BACA,YACA,SACA,QACA,kBACA,oBACA,iDACA,iBAGD,oFACC,0BACA,UACA,eACA,sGACC,UACA,0BAIF,8EACC,WACA,OACA,eACA,gGACC,SACA,WAIF,+DACC,cAGD,+GACC,SAGD,yDAEC,wBACA,sBAED,yDACC,aACA,cAEA,8EACC,aAGD,oOAGC,eACA,YAhGkB,KAiGlB,SACA,yCACA,+BACA,aACA,uBACA,YACA,SACA,mBACA,gBACA,WACA,6BACA,mBAEA,whDAIC,YACA,aACA,gCACA,gBApHe,KAsHhB,yzBAIC,yBAOC,gvGACC,YAnIe,KAuIlB,+tBAEC,iCAED,ojBAEC,+CAED,4nBAEC,kDAED,mSACC,wCACA,4CAGD,mSACC,2BAED,iRACC,eACA,mBAED,sPACC,YACA,kBACA,cACA,mBAED,mSACC,SACA,gBAGD,gVACC,8BAID,wQACC,MA/Ke,KAgLf,aAGD,uyBAEC,qBACA,WAED,yeACC,mBAED,8cACC,mBAED,2xBACC,YAED,iRACC,aACA,cAGA,mBACA,mbACC,gBAIF,04BAEC,cAGD,0RACC,UAnNiB,KAoNjB,gBACA,aACA,cAEA,4bACC,gBAQA,2hDACC,gBAMD,ygDACC,kBAKJ,8EACC,UACA,6FACC,UAcD,+EACC,MAhQiB,KAiQjB,OAjQiB,KAwQrB,kBACC,wBACA,kBACA,MACA,2CACA,aACA,sBACA,uCACA,gBACA,gBACA,gBACA,kBACA,eACA,UD/mCgB,MCgnChB,UD/mCgB,MCknChB,yCACC,kBACA,YACA,eACA,iBACA,aACA,eACA,mBACA,cAKC,8RAEC,QACA,WACA,YACA,YACA,aACA,WACA,eACA,4mBAEC,WAED,wtBAEC,WACA,ghDAEC,UAIF,kVACC,UAKH,8IAGC,8CAEA,2RACC,aAIF,6JAEC,kBACA,YACA,WACA,WAQC,2XAEC,aAEA,2eACC,WAIH,wFACC,SACA,SAEA,aACA,gGACC,SAGD,oHACC,aAKH,qEACC,aACA,SACA,UACA,qBACA,YACA,WACA,SACA,UAGD,qEACC,kBACA,qBACA,YACA,WACA,iBACA,kBACA,sBACA,kBACA,WACA,kBACA,gBACA,0BACA,iBACA,iBACA,eACA,QACA,iBAGD,kJAEC,cACA,kBACA,mBACA,gBACA,uBACA,QACA,aACA,mBACA,eAGD,yEACC,WACA,QACA,SACA,6BAGD,wEACC,QACA,mBACA,gBACA,uBACA,gBACA,WACA,cACA,iBAGD,qEACC,QACA,kBACA,kFACC,SAGA,WAIH,2EACC,aC73CF,WACC,WAGD,YACC,YAGD,YACC,WAGD,aACC,YAGD,YACC,WAGD,QACC,aAGD,iBACC,kBACA,cACA,aACA,UACA,WACA,gBAGD,MACC,gBAGD,QACC,kBAGD,aACC,qBC7CD,mBACC,SCFD,wCAGC,UACC,4BACA,qBAID,iBACC,wBAID,YACC,WACA,yBACA,sBAID,0BACC,6BACA,eACA,0BAGA,6BACC,wBAIF,0CACC,cAGD,8BACC,SACA,cAID,kBACC,wCACA,cAEA,iBAEA,eACA,uCACC,aAED,8BACC,aACA,mDACC,gBAOF,gDACC,4BAED,qDACC,eACA,gCACA,IJoCa,KInCb,OACA,WACA,YACA,aACA,sCACA,eACA,WACA,wBAED,2CACC,4BAKF,uBACC,eACA,gCACA,OACA,WACA,YACA,aACA,eACA,WAED,0DAEC,UAID,6CACC,kBAID,kDACC,0BAED,8CACC,wBAGD,wBACC,kBAID,gBACC,aAED,+BACC,4BAID,2MAIC,aAED,kDACC,eAGD,qCACC,UAMF,0CACC,gCACC,6BACA,eACA,uCACC,wBAMA,4CACC,cAGF,iCACC,gCACA,iDACA,SACA,YACA,SACA,QACA,kBACA,oBACA,WACA,aACA,aAID,0CACC,YCnKH,SACI,kBACA,cACA,6BACA,kBACA,mBACA,sBACA,gBACA,gBACA,gBACA,iBACA,qBACA,iBACA,oBACA,mBACA,kBACA,oBACA,iBACA,uBACA,eACA,UACA,eAEA,gBACA,eACA,uDACA,8DAGI,mBACA,UACA,wBAEJ,uDAEI,SACA,kBAEJ,8CAEI,eACA,eAEJ,4CAEI,gBACA,eACA,0EACI,QACA,OACA,iBACA,8BACA,gDAGR,0CAEI,iBACA,cACA,wEACI,QACA,QACA,iBACA,8BACA,+CAQJ,kPACI,SACA,yBACA,8CAGR,iCACI,WACA,oBAEJ,kCACI,UACA,oBAOA,0QACI,MACA,yBACA,iDAGR,4EAEI,SACA,kBAEJ,oCACI,WACA,iBAEJ,qCACI,UACA,iBAIR,eACI,gBACA,gBACA,8CACA,6BACA,kBACA,mCAGJ,+BACI,kBACA,QACA,SACA,2BACA,mBCpHJ,kBACE,gBACA,gBACA,8CACA,6BACA,6CACA,eACA,gBACA,eACA,cACA,mCACA,aACA,mBAEF,wCACE,aACA,mBAEF,oEAEE,gBACA,gBACA,sBACA,eACA,YACA,aACA,mBACA,4BACA,2BACA,6BACA,aAEF,4FAEE,cACA,WACA,YACA,gBACA,iBACA,YAGF,4GAEE,mRACA,YACA,wCACA,qBACA,WACA,YAEF,wGAEE,WACA,wBACA,iBAEF,kPAIE,eACA,UAEF,+BACE,WAEF,mCACE,eAEF,8BACE,yCAEF,6BACE,2CAEF,gCACE,2CAEF,gCACE,2CAEF,6BACE,2CAOF,gEACE,mUC5GA,oDACC,gCAIA,0DACC,gBAED,2EACC,+BACA,2BACA,wCAEA,oPAGC,UAID,mFACC,aAED,sFACC,aAED,mGACC,YAMJ,sBAEC,6BAKD,kCACC,cAGD,oBACC,iBACA,mCACA,sBACA,qBACA,iBAED,+KAIC,kBAID,oBACC,eACA,aACA,mBACA,uBACA,OArEc,KAsEd,sBACA,SACA,wBACA,WACA,8CACA,yCACA,sBACC,kBACA,gCACA,wBACC,gCACA,iBACA,mBAEA,aACA,aACA","file":"server.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["icons.scss","styles.scss","inputs.scss","functions.scss","header.scss","variables.scss","apps.scss","global.scss","fixes.scss","mobile.scss","tooltip.scss","../../node_modules/@nextcloud/dialogs/dist/index.css","public.scss"],"names":[],"mappings":"AA8IQ,8BC5HR,yQACC,SACA,UACA,SACA,oBACA,eACA,oBACA,wBACA,eACA,uDACA,qBAGD,6CACC,aAID,kGAEC,gDACA,aAGD,UACC,YAGD,6DACC,cAGD,KACC,gBAGD,MACC,yBACA,iBACA,mBAGD,cACC,gBACA,mBAGD,YACC,sBAGD,EACC,SACA,6BACA,qBACA,eACA,IACC,eAIF,WACC,aACA,0BAGD,MACC,eACA,QACC,eAIF,0BACC,eAGD,GACC,gBAGD,KACC,mBAEA,mCACA,uCACA,6BACA,6BAGD,mBACC,kBAGD,qBACC,kBACA,sBACA,qBACA,2BACA,2DACA,uBAGD,iBACC,qBACA,aACA,gCAGD,eACC,YACA,aAGD,cACC,eACA,MACA,SACA,OACA,YACA,WACA,aACA,kBACA,gDACA,gCACA,iBACA,eACA,kBACC,cACA,kBACA,UACA,QACA,gBAED,gBACC,gCACA,sDACA,4CACC,qCAOH,oBACC,WACA,YAGD,2BACC,+BAGD,gCACC,+BAGD,0BACC,kCACA,yCACA,+BACA,4BAMD,YACC,8CACA,gCAMD,kBACC,sBAKD,4BAEC,oCACA,kBACA,gBACA,WACA,sDACC,gBAED,sEACC,gBAED,kCACC,mBAED,oHAEC,qBACA,YACA,WACA,mBACA,gcAEC,WAOH,sBACC,WASD,oCACC,kBACA,yBACA,sBACA,qBACA,iBAKD,kBACC,kBACA,UACA,SACA,YAGD,8BACC,WACA,oBACA,wBACA,wBAGD,2EACC,WAED,oGACC,0CACA,UACA,qBAGD,mDACC,6BACA,YACA,WACA,yCACA,4BACA,2BACA,WAOA,qEACC,UAED,qEACC,UAIF,wEACC,aAGD,2CACC,mBAGD,yBACC,kBACA,qBACA,iBAED,qBACC,cACA,QACA,iBACA,kBACA,aAKD,4CACC,eACA,YACA,mCACA,6BACA,qDAIA,2BACC,4BAKD,wBACC,sBACA,4BACA,+BACC,2CACA,qBACA,kBAGF,0BACC,qBACA,gBAIF,YACC,YACA,8BACA,oBACC,sBAIF,eACC,2CAUD,mBACC,kBACA,cACA,2BACC,kBACA,cAIF,UACC,gBAGD,8CACC,UAIA,oGAGC,WAIF,mBACC,WACA,kBACA,QAEA,kDACC,UAIF,WACC,WACA,YAGD,eACC,WAIA,8CACC,UAKD,kDACC,UAKD,0CACC,UAKD,8CACC,8CAIF,KACC,mFAGD,OACC,gBACA,YACA,eACA,qBACA,UACC,qBAIF,2FACC,gBACA,uBAGD,2BACC,yDAGD,2BACC,6DAID,yBACC,gBACA,gBACA,WACA,mCACA,YACA,wBAEA,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAED,oDACC,WAEA,8EACC,yEAED,8EACC,wEAGF,oEACC,UAID,oDACC,mBACA,gCACA,WACA,WACA,YAED,0DACC,yBAGA,+FACC,gDAGD,wOAGC,sCACA,gCACA,iBAGD,yNAEC,gCACA,WAMJ,wCACC,gCACA,wCAKD,yBACC,2BACA,sBACA,mCACA,wBAEA,4CACC,uBAGD,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAIF,qFACC,iBAGA,iDACC,mBACA,gCACA,WACA,yDACC,UACA,WACA,iBAGF,uDACC,yBAGA,0TAIC,sCACA,gCACA,iBAGD,4FACC,gCAGD,qEACC,2CASH,oGACC,aACA,iBACA,8BACA,0GACC,cACA,SACA,YACA,YACA,WACA,aACA,mBACA,uBACA,8GACC,kBACA,kBACA,mBACA,6BACA,cACA,iBACA,WACA,YACA,YACA,eAOJ,8BACC,kBACA,aACA,sBAEA,uCACC,eACA,sBACA,oBAEA,yDACC,cACA,uCACA,4BACA,gCAGA,6DACC,eAED,uDACC,iBAED,oEACC,YACA,YAKH,mDACC,kBACA,+BACA,YACA,SACA,aACA,WACA,QACA,MAEA,4KAGC,0CACA,UAIF,iDACC,eACA,YACA,sBACA,oBACA,WACA,gBACA,eACA,8CACA,0CACA,wCACA,kBACA,UACA,QACA,QAEA,gEACC,sCACA,0BACA,WACA,YACA,WACA,WAGD,mDACC,WACA,YACA,gBAGD,uDACC,SACA,gBACA,4DACC,aACA,YAMH,kDACC,sBACA,qBACA,gBACA,OAGA,WACA,kBAED,4CACC,oCACA,kBACA,gBACA,WACA,aAED,wCACC,8CACA,WAED,0DAEC,kBACA,mBAEC,mEACC,4CACA,8CACA,sEACC,UACA,YAIH,0EACC,cACA,aACA,YACA,sBACA,2BACA,sBAED,+EACC,iBACA,iBAGD,6EACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,qQAGC,kBAED,oLAEC,mBAGD,6DACC,aACA,4CAED,2EACC,mBAED,oEACC,gBACA,mBACA,uBACA,qBACA,4BACA,kBACA,4BACA,eAEA,YACA,oFACC,aACA,2FACC,gBACA,gBACA,uBAED,0FACC,gBAIH,oIACC,WAED,oEACC,iBAED,oEAIC,aACA,sBAEA,0EACC,aACA,+CACA,6BACA,aACA,cAEA,6EACC,cACA,kBACA,mCACA,QAhBS,KAiBT,aACA,sBACA,YAGA,gFACC,YACA,UACA,kBACA,mCAEA,yFACC,oBACA,+BACA,wBACA,YA/BU,KAgCV,eACA,yGACC,uBAGF,yFACC,iBACA,WAED,qFACC,aAON,2DACC,gDAIF,WACC,0BAGD,aACC,WACA,sBAKD,YACC,6BAMA,qBACC,WACA,aAED,wBACC,cACA,gDACA,WACA,aAED,2BACC,WACA,YACA,6BACC,WAGF,wBACC,wCACA,kBACA,mBACA,gBACA,uBACA,0CACA,kCACA,6DACC,0CAGF,sBACC,UACA,WAKF,YACC,oBAED,UACC,oBACA,kDACA,4BACA,iCACA,YACA,0BACA,cACA,QACA,kBACA,oBACC,QACA,kBACA,sBACC,WAIA,0FACC,cAIF,iCACC,SACA,iBACA,oCACC,iBACA,gBACA,kBACA,kBACA,gEACC,+EAGF,gDACC,aAIH,iBACC,aACA,wBACC,QAGF,2BAEC,kBACA,aACA,WACA,uBACA,mBACA,gBACA,cAEA,gBAEA,kGAGC,oBAGF,0BACC,UACA,WAID,qBACC,iBACA,kBAEA,4BACC,eAGF,mEACC,UAEA,kKAEC,WAOH,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAOD,+CACC,SACA,kBAED,mDACC,gBAKF,cACC,mBAMD,mBACC,aACA,QACA,SACA,UCjiCD,kFACC,6BAED,uGACC,wCAED,sDACI,kCAMJ,iHAUC,YACA,WAdgB,KAehB,sBASD,wBACI,aAIJ,yJAUC,qBACA,iBACA,eACA,8CACA,6BACA,0CACA,mCACA,aACA,mCACA,YAEC,irCAIC,0CACA,aAED,qZACC,aACA,8CACA,8BAED,scACC,0CAGF,wNACC,8CACA,6BACA,eACA,WAED,wNACC,gBAED,oPACC,mDAGD,iNACC,8CACA,0CACA,gCACA,eAGA,kvBAEC,uCAIA,mjCAGC,oDACA,gDAED,gwBAEC,4CAED,2WACC,qCAGF,gRAEC,8CACA,qCACA,eAKH,2BACC,qBACA,gBACA,eACA,8CACA,gCACA,gDACA,aACA,mCAEA,8CACA,gCACA,eACA,WAKA,4KACC,6BACA,0BAEA,OAzIe,KA2IhB,0EAIC,YACA,WAID,kBACC,WACA,cACA,gBACA,WACA,eAED,mBACC,SACA,QAED,iBACC,cAKF,6GASC,iBACA,mCACA,WACA,WAjLgB,KAkLhB,eACA,sBACA,8CAEA,mKACC,eAIF,qMAcC,qBACA,eACA,mCACA,8CACA,6BACA,iDACA,YACA,aACA,yCACA,uBACA,eACA,+0BACC,0CAED,yRACC,YAIF,mCACC,8CACA,6BAGD,mCACC,aACA,YAID,OACC,kEACA,gBACA,8CACA,8BASA,2DACC,eAIA,sFACC,eAMH,sGAQC,iBACA,wCAGA,gMACC,SAGD,oIACC,+CACA,2CACA,sBAWA,4MAEC,qBACA,2BACA,WAUD,kGACC,6BACA,2CACA,mFACA,iBACA,4BAEA,yDACA,UACA,OArTc,KAsTd,MAtTc,KAuTd,gBACA,eACA,eACA,6HACC,eCrRH,+CD6RG,yOACC,gCAID,4qBAGC,qDACA,8CACA,6vBACC,uDAQH,+VACC,qDACA,2CAEA,UAQJ,uBAEC,eAED,2BAEC,mBAUC,4GAEC,kBACA,cACA,SACA,UACA,WACA,gBACA,oIACC,iBAED,4WAEC,eAED,gKACC,WACA,qBACA,OAxBkB,KAyBlB,MAzBkB,KA0BlB,sBACA,kBACA,qBACA,2CAED,oeAEC,0CAED,4LACC,oBACA,qCACA,kBACA,mBAED,4bAIC,8DACA,8CACA,0CAED,oMACC,2CACA,0DAED,oOACC,+CAID,gJACC,qBACA,iBAED,oMACC,cA/DkB,KAmEnB,mFACC,kBACA,OArEkB,KAsElB,MAtEkB,KAuElB,2BACA,2BAED,mGACC,yDAED,+GACC,0DAOD,gZAEC,qBAED,wUACC,aAzFyB,KA2F1B,4NACC,8DACA,yBACA,qBAED,gOACC,oCACA,6CAED,gQACC,8DACA,6CACA,yBAID,8OAEC,0CACA,6BACA,+DAED,6HACC,gEAED,mHACC,WAOJ,iBACC,gBACA,8CACA,qCACC,sCAED,yBACC,qBACA,iBACA,sBACA,6BACC,eAGF,uCACC,gBACA,qEACA,yCAED,kCACC,iBACA,SACA,UACA,wDACC,mBACA,gBACA,uBACA,6DACC,eACA,gEACC,eACA,iBAIH,6JAGC,kBACA,kBACA,aACA,+BACA,eACA,gCAGA,mEACC,8CAGF,uDACE,8CACA,6BAMH,oGAEC,eAID,mHAEC,gBACA,mBACA,uBACA,wCACA,2CACA,uBACA,yCACA,0CACA,SACA,YACA,gBACA,6IACC,kCAED,iKACC,iBACA,iBACA,stBAIC,sBACA,8CACA,gCACA,0CAED,2NACC,aAGF,2KACC,iBACA,gBACA,gBACA,6BACA,yMACC,2BAKJ,sBACC,qBACA,+DACC,aACA,eACA,kEACC,WAGF,uCACC,gBACA,mBACA,uBACA,wCACA,2CACA,uBACA,yCACA,0CACA,SACA,iBACA,gBACA,oDACC,kCAED,8DACC,iBACA,iBACA,sBACA,8CACA,0CACA,2FACC,aAED,8JAEC,qCACA,iCAGF,sDACC,gBACA,gBACA,YACA,wDACC,mEACA,WAGF,2LAGC,WAED,mEACC,iBAMH,UACC,qBACA,qBACA,2BACC,wBACA,eACA,yCACC,iBACA,iBACA,sBACA,8CACA,gCACA,0CACA,oBACA,mBACA,gDACC,gBAIH,yBACC,UACA,4BACC,YACA,kBACA,kBACA,+BACA,eACA,gCACA,8BACC,mBACA,gBACA,uBACA,YACA,wBACA,SACA,eACA,eACA,2BACA,yBACA,sBACA,qBACA,iBACA,oBACA,mBACA,0CACA,yBACA,sCACC,YACA,4CACA,4BACA,2BACA,eACA,gBACA,cACA,WACA,iBACA,kBAGF,sCACC,6BAED,qCACC,8CACA,6BACA,6CACC,mBAQL,mBACC,cACA,WACA,UACA,cACA,8CACA,mCACA,gBACA,WACA,gBAEC,2CACC,8BAED,gDACC,8BAGF,yCACC,yBAED,sCACC,mCACA,gCACA,iCAED,2CACC,mCACA,gCACA,iCAKF,iBACC,QAEC,0BAED,QAEC,yBAED,YAGC,0BAED,QAEC,0BAGF,OACC,qBACA,uBACA,mCAKD,cACC,kBACA,cACA,aACA,UACA,WACA,gBAGD,kEAGC,oCACG,mCE/yBJ,mBAEC,yBACA,sBACA,qBACA,6PACC,aAGD,+QACC,YACA,kBACA,2BACA,WACA,WACA,kBACA,2CACA,SACA,UAGD,gLACC,WAIA,kPACC,WAGD,+HACC,SAOH,+DAGC,oBACA,kBACA,MACA,WACA,aACA,OC2Ce,KD1Cf,sBACA,8BAID,WACC,cACA,kBACA,kBACA,wBACA,sBACA,UACA,mBACA,aACA,eACA,gBACA,WAEA,mCACC,UAaD,gCACC,8CACA,sDACA,yCACA,sBACA,aACA,kBACA,gBAfD,gBACA,oCAgBC,UACA,SACA,SACA,gBAEA,kDACC,aAID,sCACC,gCACA,iDACA,YACA,YACA,SACA,QACA,kBACA,oBACA,WAGD,uEAEC,iCAzCF,gBACA,oCA4CA,cACC,oBACA,yFACA,4BACA,wBACA,2BACA,WACA,kBACA,UACA,QACA,WAEA,gFAGD,kCACC,aACA,mBACA,cAGD,sFAEC,oBACA,mBAGD,0CACC,SACA,mBACA,YAGD,4CACC,yBACA,cAKA,qDAEC,YACA,kBACA,6EACC,aACA,uBACA,mBACA,MC3EY,KD4EZ,YACA,eACA,YACA,UACA,aAEA,yFACC,UAGD,yGACC,aASL,0CACC,YAKD,gBACC,gCACA,eACA,iBACA,SACA,UACA,kBACA,gBACA,uBAEA,cAGD,kBACC,gCACA,kBACA,gBACA,eACA,iBACA,gBACA,uBAID,cACC,kBACA,gBACA,aACA,WACA,SACA,YACA,aAEA,2BACC,ICxIc,KD+If,gDACC,mBACA,eAED,gJAEC,qBACA,YACA,WJjOF,iCACC,4BACA,2BACA,eACA,gBAGD,iBACC,kDAID,sGAMC,kBACA,0IACC,UACA,WACA,YACA,WACA,uBACA,kBACA,QACA,SACA,mBACA,6CACA,qCACA,gCACA,4BACA,wBACA,4CACA,2CAEA,wCAEA,gYAGC,uCAKH,wDAEC,2CACA,4CAGD,yDAEC,YACA,WACA,qBAKA,yJACC,2CAED,iMACC,gDAED,yMACC,iDAED,iPACC,sDAIF,kBACC,KACC,uBAED,GACC,0BAIF,SACC,gCAGD,yKAQC,wDM3GD,MACC,gEAEA,0GACA,8FAGD,sCACC,MACC,6BACA,8BAKF,KACC,WACA,YACA,kBAEA,6EAGD,KAEC,6EAEA,0EACA,sBACA,2BACA,eACA,WACA,iDAKD,GACC,iBACA,eACA,mBACA,iBACA,8BAGD,GACC,eACA,cACA,8BAGD,GACC,eAID,GACC,kBACA,gCAGD,GACC,eAGD,MAEC,qBACA,aACA,eAGD,GACC,YACA,mBACA,iBAGD,IACC,iBACA,sBACA,kCACA,mCACA,qBACA,mBAMD,wBACC,sBAKD,0BAEC,8DAEA,MDfkB,MCgBlB,YACA,gBACA,kBACA,mDACA,8CACA,+EACA,gBACA,YACA,sBACA,qBACA,iBACA,aACA,sBACA,YACA,cAGA,8CACC,cACA,6CACA,qDACC,qBACA,WACA,aACA,kBACA,gCACA,gBACA,SAIF,6BACC,kBAED,6BACC,kBACA,YACA,WACA,kBACA,gBACA,sBACA,aACA,sBACA,6CACA,iBAEA,wCACC,oDAGD,gCACC,oBACA,eACA,QACA,cACA,SACA,kBACA,WACA,wCAGA,uCACC,QACA,oDACC,2BAIF,8DAEC,6BAED,2DAIC,6BAKA,oKAEC,+CAGF,gDACC,gDACA,aAMA,gVAEC,4CAKF,yDACC,UACA,SAMA,qGAEC,aAIF,uDACC,iBACA,iBACA,eACA,mBACA,uBACA,2BACA,iBACA,oBAEA,yEACC,gBAKF,mCACC,cACA,WACA,kBACA,sCACC,oBACA,eACA,kBACA,WACA,kBAIC,oLAEC,wCACA,+CAKD,gMAEC,wCACA,4CAKF,+DACC,UAGD,oEAEC,gBACA,kBAGD,iEAEC,gBAGA,6BAMJ,sEAEC,kBACA,sBAGC,sRAGC,oCAIF,0EACC,0BACA,gCACA,4BACA,cACA,8BACA,iBACA,gBACA,sBACA,gBACA,sBACA,mBACA,uBACA,wCACA,6BACA,aACA,YAGA,kFACC,sBACA,gHACC,qBAGF,0GACC,kBACA,WACA,YAEA,wCAID,kIACC,qBACA,YACA,0MACC,2BAKH,gIACC,kBACA,cACA,YACA,WACA,YACA,YACA,kBACA,eACA,wCAEA,oIAEC,oCAKF,4HACC,SAID,4IACC,UACA,YAED,kJACC,wBACA,YAIH,iCACC,aAMD,kMAEC,SACA,WACA,+BACA,4BACA,2BACA,4ZAEC,+BACA,UAUD,iDACC,UACA,kBACA,WACA,YACA,SACA,YAIA,OAEA,+DACC,UACA,eACA,gDACA,gBAGF,8CACC,kBACA,YACA,WACA,SACA,UACA,gBH5XF,6CG8XE,qBACA,4BACA,2BACA,YACA,gBACA,wBACA,gBACA,YACA,UACA,iCACA,6BACA,yBACA,YACA,kBACA,qCAMD,qDACC,kBAIA,wGACC,UAED,8FACC,sBAED,oJACC,oCAID,mDACC,4BACA,wBACA,oBAQH,sDACC,cACA,yDACC,wBACA,mBACA,yBAED,yDACC,sBACA,YAED,6DACC,YACA,WACA,SACA,gBAIA,gJHhcF,uCGmcE,sNAEC,+BACA,UAGF,0FACC,gBACA,iBACA,cACA,iBACA,eAEA,sGACC,UACA,kBACA,2GACC,gBACA,mBACA,sCACA,gCASJ,qDACC,iBACA,kBACA,cACA,uBACA,qCACA,UACA,kBACA,8CACA,WACA,mHAEC,oBACA,WAED,2DACC,YACA,eACA,YACA,kIAGC,UAGF,sEACC,WACA,YACA,6BACA,0BAED,wIAEC,WACA,YACA,cACA,0KACC,2BAED,4KACC,iBAED,8JACC,gDACA,6CACA,4BACA,yBAQH,wDACC,oBACA,kBACA,4BACA,kGACC,kBACA,mBACA,uBACA,gBACA,aACA,iBAED,6FACC,SACA,YACA,WACA,iBACA,sMAEC,UAQH,6GAEC,uBACA,2FAGA,kBACA,OACA,8CACA,sBAMD,yCACC,gDACA,wCACA,oBAGD,iCACC,yBAGD,iHAEC,qBAMF,SACC,sBACA,gBACA,oCACA,gBACA,UACA,aACA,kDACA,0BACA,2CACA,cAEA,kCACC,eAIF,2CACC,SACC,kDACA,mDAED,gBACC,kDAED,aACC,oDAcF,aACC,aACA,8CACA,iBACA,cACA,iBACA,YAGA,kCACC,gBAID,kCACC,aACA,kBACA,oBAGA,gBAGA,uDAEC,eACA,mFACC,aAWJ,aACC,WACA,UDvnBmB,MCwnBnB,UDvnBmB,MCwnBnB,cACA,wBACA,gBACA,ID9nBe,KC+nBf,QACA,gBACA,kBACA,aACA,aACA,0BACA,wCACA,0CACA,cAEA,uBACC,aAOF,cAEC,gBAGC,oFACC,cAKH,sBACC,aACA,6CACA,cACA,kDAEA,iBACA,gBACA,sBAGA,uCACC,UAGD,iCACC,uBACA,gCAOE,4NACC,qBACA,WACA,cAOL,qBACC,sBACA,+BACA,gBACA,oDACA,6CACA,cAEA,sCACC,aACA,mBACA,YACA,WACA,UACA,SACA,+BACA,gBACA,SACA,oDACA,gBACA,mBACA,eACA,WAGA,6BAEA,6CACC,yCACA,8CACA,eAED,wFAEC,+CAGD,8CACC,2CACA,gCACA,4BACA,WACA,WACA,YACA,MACA,OACA,cAGD,oDACC,2DACA,gCAMH,SACC,cACA,aACA,mBACA,gBACC,wBAIA,yDAEC,oBACA,iBAIH,aACC,kBACA,gBACA,iBACA,mBAGD,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAKF,YACC,aACA,mBAEA,uBACC,aACA,sBACA,YACA,kBACA,mBACA,gBACA,uBACA,eACA,gCACA,kBACA,YAEA,8BACC,aAID,mCACC,kBAED,kCACC,mBAGD,6BACC,qBACA,WACA,YACA,qBACA,sBACA,gBACA,iBACA,WACA,eAGD,yBACC,gCACA,kBACA,gBACA,uBAED,gCACC,iBAED,0FAGC,kBACA,6BACA,kDAIH,eACC,WACA,oBACC,oBAWD,0DACC,wCAIA,gFACC,YAKH,gDAGC,kBACA,8CACA,6BACA,yCACA,YACA,YACA,WACA,gBACA,QACA,sDACA,aACA,mBAEA,kEACC,YAKA,UAEA,2BACA,YACA,SACA,QACA,kBACA,oBACA,iDACA,iBAGD,oFACC,0BACA,UACA,eACA,sGACC,UACA,0BAIF,8EACC,WACA,OACA,eACA,gGACC,SACA,WAIF,+DACC,cAGD,+GACC,SAGD,yDAEC,wBACA,sBAED,yDACC,aACA,cAEA,8EACC,aAGD,oOAGC,eACA,YAhGkB,KAiGlB,SACA,yCACA,+BACA,aACA,uBACA,YACA,SACA,mBACA,gBACA,WACA,6BACA,mBAEA,whDAIC,YACA,aACA,gCACA,gBApHe,KAsHhB,yzBAIC,yBAOC,gvGACC,YAnIe,KAuIlB,+tBAEC,iCAED,ojBAEC,+CAED,4nBAEC,kDAED,mSACC,wCACA,4CAGD,mSACC,2BAED,iRACC,eACA,mBAED,sPACC,YACA,kBACA,cACA,mBAED,mSACC,SACA,gBAGD,gVACC,8BAID,wQACC,MA/Ke,KAgLf,aAGD,uyBAEC,qBACA,WAED,yeACC,mBAED,8cACC,mBAED,2xBACC,YAED,iRACC,aACA,cAGA,mBACA,mbACC,gBAIF,04BAEC,cAGD,0RACC,UAnNiB,KAoNjB,gBACA,aACA,cAEA,4bACC,gBAQA,2hDACC,gBAMD,ygDACC,kBAKJ,8EACC,UACA,6FACC,UAcD,+EACC,MAhQiB,KAiQjB,OAjQiB,KAwQrB,kBACC,wBACA,kBACA,MACA,2CACA,aACA,sBACA,uCACA,gBACA,gBACA,gBACA,kBACA,eACA,UD/mCgB,MCgnChB,UD/mCgB,MCknChB,yCACC,kBACA,YACA,eACA,iBACA,aACA,eACA,mBACA,cAKC,8RAEC,QACA,WACA,YACA,YACA,aACA,WACA,eACA,4mBAEC,WAED,wtBAEC,WACA,ghDAEC,UAIF,kVACC,UAKH,8IAGC,8CAEA,2RACC,aAIF,6JAEC,kBACA,YACA,WACA,WAQC,2XAEC,aAEA,2eACC,WAIH,wFACC,SACA,SAEA,aACA,gGACC,SAGD,oHACC,aAKH,qEACC,aACA,SACA,UACA,qBACA,YACA,WACA,SACA,UAGD,qEACC,kBACA,qBACA,YACA,WACA,iBACA,kBACA,sBACA,kBACA,WACA,kBACA,gBACA,0BACA,iBACA,iBACA,eACA,QACA,iBAGD,kJAEC,cACA,kBACA,mBACA,gBACA,uBACA,QACA,aACA,mBACA,eAGD,yEACC,WACA,QACA,SACA,6BAGD,wEACC,QACA,mBACA,gBACA,uBACA,gBACA,WACA,cACA,iBAGD,qEACC,QACA,kBACA,kFACC,SAGA,WAIH,2EACC,aC73CF,WACC,WAGD,YACC,YAGD,YACC,WAGD,aACC,YAGD,YACC,WAGD,QACC,aAGD,iBACC,kBACA,cACA,aACA,UACA,WACA,gBAGD,MACC,gBAGD,QACC,kBAGD,aACC,qBC7CD,mBACC,SCFD,wCAGC,UACC,4BACA,qBAID,iBACC,wBAID,YACC,WACA,yBACA,sBAID,0BACC,6BACA,eACA,0BAGA,6BACC,wBAIF,0CACC,cAGD,8BACC,SACA,cAID,kBACC,wCACA,cAEA,iBAEA,eACA,uCACC,aAED,8BACC,aACA,mDACC,gBAOF,gDACC,4BAED,qDACC,eACA,gCACA,IJoCa,KInCb,OACA,WACA,YACA,aACA,sCACA,eACA,WACA,wBAED,2CACC,4BAKF,uBACC,eACA,gCACA,OACA,WACA,YACA,aACA,eACA,WAED,0DAEC,UAID,6CACC,kBAID,kDACC,0BAED,8CACC,wBAGD,wBACC,kBAID,gBACC,aAED,+BACC,4BAID,2MAIC,aAED,kDACC,eAGD,qCACC,UAMF,0CACC,gCACC,6BACA,eACA,uCACC,wBAMA,4CACC,cAGF,iCACC,gCACA,iDACA,SACA,YACA,SACA,QACA,kBACA,oBACA,WACA,aACA,aAID,0CACC,YCnKH,SACI,kBACA,cACA,6BACA,kBACA,mBACA,sBACA,gBACA,gBACA,gBACA,iBACA,qBACA,iBACA,oBACA,mBACA,kBACA,oBACA,iBACA,uBACA,eACA,UACA,eAEA,gBACA,eACA,uDACA,8DAGI,mBACA,UACA,wBAEJ,uDAEI,SACA,kBAEJ,8CAEI,eACA,eAEJ,4CAEI,gBACA,eACA,0EACI,QACA,OACA,iBACA,8BACA,gDAGR,0CAEI,iBACA,cACA,wEACI,QACA,QACA,iBACA,8BACA,+CAQJ,kPACI,SACA,yBACA,8CAGR,iCACI,WACA,oBAEJ,kCACI,UACA,oBAOA,0QACI,MACA,yBACA,iDAGR,4EAEI,SACA,kBAEJ,oCACI,WACA,iBAEJ,qCACI,UACA,iBAIR,eACI,gBACA,gBACA,8CACA,6BACA,kBACA,mCAGJ,+BACI,kBACA,QACA,SACA,2BACA,mBCpHJ,kBACE,gBACA,gBACA,8CACA,6BACA,6CACA,eACA,gBACA,eACA,cACA,mCACA,aACA,mBAEF,wCACE,aACA,mBAEF,oEAEE,gBACA,gBACA,sBACA,eACA,YACA,aACA,mBACA,4BACA,2BACA,6BACA,aAEF,4FAEE,cACA,WACA,YACA,gBACA,iBACA,YAGF,4GAEE,mRACA,YACA,wCACA,qBACA,WACA,YAEF,wGAEE,WACA,wBACA,iBAEF,kPAIE,eACA,UAEF,+BACE,WAEF,mCACE,eAEF,8BACE,yCAEF,6BACE,2CAEF,gCACE,2CAEF,gCACE,2CAEF,6BACE,2CAOF,gEACE,mUC5GA,oDACC,gCAIA,0DACC,gBAED,2EACC,+BACA,2BACA,wCAEA,oPAGC,UAID,mFACC,aAED,sFACC,aAED,mGACC,YAMJ,sBAEC,6BAKD,kCACC,cAGD,oBACC,iBACA,mCACA,sBACA,qBACA,iBAED,+KAIC,kBAID,oBACC,eACA,aACA,mBACA,uBACA,OArEc,KAsEd,sBACA,SACA,wBACA,WACA,8CACA,yCACA,sBACC,kBACA,gCACA,wBACC,gCACA,iBACA,mBAEA,aACA,aACA","file":"server.css"} \ No newline at end of file
diff --git a/core/l10n/fi.js b/core/l10n/fi.js
index b7213052bfa..c6c18b010ae 100644
--- a/core/l10n/fi.js
+++ b/core/l10n/fi.js
@@ -70,10 +70,13 @@ 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." : "Tietokantaasi ei suoriteta \"READ COMMITTED\"-transaktioeristystasolla. Tämä saattaa aiheuttaa ongelmia, kun useita toimintoja suoritetaan rinnakkaisesti.",
"The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "PHP \"fileinfo\" moduuli puuttuu. Moduulin käyttöönottaminen on vahvasti suositeltua paremman MIME tyyppien tunnistuksen saavuttamiseksi.",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Cron-työtä ei voitu suorittaa komentorivin kautta. Seuraavat tekniset virheet havaittiin:",
+ "The PHP OPcache module is not properly configured. See the {linkstart}documentation ↗{linkend} for more information." : "PHP:n OPcache-moduulin asetukset eivät ole kunnossa. Lue {linkstart}dokumentaatio ↗{linkend} saadaksesi lisätietoja.",
"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." : "PHP-funktio \"set_time_limit\" ei ole käytettävissä. Tämä saattaa johtaa siihen, että skriptien suoritus päättyy ennenaikaisesti ja Nextcloud-asennus rikkoutuu. Funktion käyttäminen on erittäin suositeltavaa.",
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP-asennuksessasi ei ole FreeType-tukea, ja siitä aiheutuu profiilikuvien sekä asetuskäyttöliittymän rikkoutuminen.",
"Missing index \"{indexName}\" in table \"{tableName}\"." : "Puuttuva indeksi \"{indexName}\" taulussa \"{tableName}\".",
+ "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." : "Tietokannasta puuttuu indeksejä. Suuriin tauluihin indeksien lisääminen saattaa kestää kauan, ja sen vuoksi indeksejä ei lisätty automaattisesti. Suorita \"occ db:add-missing-indices\" lisätäksesi puuttuvat indeksit manuaalisesti samalla, kun instanssi pysyy käynnissä. Kun indeksit on lisätty, kyselyt kyseisiin tauluihin ovat yleensä huomattavasti aiempaa nopeampia.",
"Missing primary key on table \"{tableName}\"." : "Primary key puuttuu taulusta \"{tableName}\".",
+ "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." : "Tietokannasta puuttuu primääriavaimia. Suuriin tauluihin primääriavainten lisääminen saattaa kestää kauan, ja sen vuoksi primääriavaimia ei lisätty automaattisesti. Suorita \"occ db:add-missing-primary-keys\" lisätäksesi puuttuvat primääriavaimet manuaalisesti samalla, kun instanssi pysyy käynnissä.",
"Missing optional column \"{columnName}\" in table \"{tableName}\"." : "Valinnainen sarake \"{columnName}\" puuttuu taulusta \"{tableName}\".",
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Tästä instanssista puuttuu joitain suositeltuja PHP-moduuleja. Nykyistä paremman suorituskyvyn ja yhteensopivuuden vuoksi kyseisten moduulien asentaminen on erittäin suositeltavaa.",
"The PHP modules \"gmp\" and/or \"bcmath\" are not enabled. If you use WebAuthn passwordless authentication, these modules are required." : "PHP-moduulit \"gmp\" ja/tai \"bcmath\" eivät ole käytössä. Jos käytät WebAuthn-todennusta (ei salasanaa), nämä moduulit vaaditaan.",
diff --git a/core/l10n/fi.json b/core/l10n/fi.json
index 56738255ef3..d41a38e56f3 100644
--- a/core/l10n/fi.json
+++ b/core/l10n/fi.json
@@ -68,10 +68,13 @@
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tietokantaasi ei suoriteta \"READ COMMITTED\"-transaktioeristystasolla. Tämä saattaa aiheuttaa ongelmia, kun useita toimintoja suoritetaan rinnakkaisesti.",
"The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "PHP \"fileinfo\" moduuli puuttuu. Moduulin käyttöönottaminen on vahvasti suositeltua paremman MIME tyyppien tunnistuksen saavuttamiseksi.",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Cron-työtä ei voitu suorittaa komentorivin kautta. Seuraavat tekniset virheet havaittiin:",
+ "The PHP OPcache module is not properly configured. See the {linkstart}documentation ↗{linkend} for more information." : "PHP:n OPcache-moduulin asetukset eivät ole kunnossa. Lue {linkstart}dokumentaatio ↗{linkend} saadaksesi lisätietoja.",
"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." : "PHP-funktio \"set_time_limit\" ei ole käytettävissä. Tämä saattaa johtaa siihen, että skriptien suoritus päättyy ennenaikaisesti ja Nextcloud-asennus rikkoutuu. Funktion käyttäminen on erittäin suositeltavaa.",
"Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "PHP-asennuksessasi ei ole FreeType-tukea, ja siitä aiheutuu profiilikuvien sekä asetuskäyttöliittymän rikkoutuminen.",
"Missing index \"{indexName}\" in table \"{tableName}\"." : "Puuttuva indeksi \"{indexName}\" taulussa \"{tableName}\".",
+ "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." : "Tietokannasta puuttuu indeksejä. Suuriin tauluihin indeksien lisääminen saattaa kestää kauan, ja sen vuoksi indeksejä ei lisätty automaattisesti. Suorita \"occ db:add-missing-indices\" lisätäksesi puuttuvat indeksit manuaalisesti samalla, kun instanssi pysyy käynnissä. Kun indeksit on lisätty, kyselyt kyseisiin tauluihin ovat yleensä huomattavasti aiempaa nopeampia.",
"Missing primary key on table \"{tableName}\"." : "Primary key puuttuu taulusta \"{tableName}\".",
+ "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." : "Tietokannasta puuttuu primääriavaimia. Suuriin tauluihin primääriavainten lisääminen saattaa kestää kauan, ja sen vuoksi primääriavaimia ei lisätty automaattisesti. Suorita \"occ db:add-missing-primary-keys\" lisätäksesi puuttuvat primääriavaimet manuaalisesti samalla, kun instanssi pysyy käynnissä.",
"Missing optional column \"{columnName}\" in table \"{tableName}\"." : "Valinnainen sarake \"{columnName}\" puuttuu taulusta \"{tableName}\".",
"This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Tästä instanssista puuttuu joitain suositeltuja PHP-moduuleja. Nykyistä paremman suorituskyvyn ja yhteensopivuuden vuoksi kyseisten moduulien asentaminen on erittäin suositeltavaa.",
"The PHP modules \"gmp\" and/or \"bcmath\" are not enabled. If you use WebAuthn passwordless authentication, these modules are required." : "PHP-moduulit \"gmp\" ja/tai \"bcmath\" eivät ole käytössä. Jos käytät WebAuthn-todennusta (ei salasanaa), nämä moduulit vaaditaan.",
diff --git a/dist/settings-vue-settings-personal-info.js b/dist/settings-vue-settings-personal-info.js
index c84d854083d..eed2505feef 100644
--- a/dist/settings-vue-settings-personal-info.js
+++ b/dist/settings-vue-settings-personal-info.js
@@ -1,3 +1,3 @@
/*! For license information please see settings-vue-settings-personal-info.js.LICENSE.txt */
-!function(){var e,n={24185:function(e,n,r){"use strict";var a=r(20144),i=r(45994),o=r(79954),s=r(31352),l=(r(36144),r(4820)),c=r(79753),u=r(64024),p=r(78595),d=r(75925),f=r.n(d),A=r(10861),m=r.n(A),v=r(17652),b=(r(74063),r(75762)),g=r(34829),y=r(57612),h=r(61149),C=r(12945),x=r.n(C),w=r(45400),E={name:"FederationControlAction",components:{NcActionButton:r.n(w)()},props:{activeScope:{type:String,required:!0},displayName:{type:String,required:!0},handleScopeChange:{type:Function,default:function(){}},iconClass:{type:String,required:!0},isSupportedScope:{type:Boolean,required:!0},name:{type:String,required:!0},tooltipDisabled:{type:String,default:""},tooltip:{type:String,required:!0}},methods:{updateScope:function(){this.handleScopeChange(this.name)}}},P=r(93379),_=r.n(P),S=r(7795),O=r.n(S),j=r(90569),I=r.n(j),k=r(3565),L=r.n(k),D=r(19216),R=r.n(D),B=r(44589),T=r.n(B),N=r(28561),Z={};Z.styleTagTransform=T(),Z.setAttributes=L(),Z.insert=I().bind(null,"head"),Z.domAPI=O(),Z.insertStyleElement=R(),_()(N.Z,Z),N.Z&&N.Z.locals&&N.Z.locals;var M,U,F,z,V=r(51900),H=(0,V.Z)(E,(function(){var t=this;return(0,t._self._c)("NcActionButton",{staticClass:"federation-actions__btn",class:{"federation-actions__btn--active":t.activeScope===t.name},attrs:{"aria-label":t.isSupportedScope?t.tooltip:t.tooltipDisabled,"close-after-click":!0,disabled:!t.isSupportedScope,icon:t.iconClass,title:t.isSupportedScope?t.tooltip:t.tooltipDisabled},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.updateScope.apply(null,arguments)}}},[t._v("\n\t"+t._s(t.isSupportedScope?t.tooltip:t.tooltipDisabled)+"\n")])}),[],!1,null,"d426ed04",null),G=H.exports;function q(t){return q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},q(t)}function Y(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==q(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==q(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===q(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var $=Object.freeze({ADDRESS:"address",AVATAR:"avatar",BIOGRAPHY:"biography",DISPLAYNAME:"displayname",EMAIL_COLLECTION:"additional_mail",EMAIL:"email",HEADLINE:"headline",NOTIFICATION_EMAIL:"notify_email",FEDIVERSE:"fediverse",ORGANISATION:"organisation",PHONE:"phone",PROFILE_ENABLED:"profile_enabled",ROLE:"role",TWITTER:"twitter",WEBSITE:"website"}),W=Object.freeze({ADDRESS:(0,s.Iu)("settings","Location"),AVATAR:(0,s.Iu)("settings","Profile picture"),BIOGRAPHY:(0,s.Iu)("settings","About"),DISPLAYNAME:(0,s.Iu)("settings","Full name"),EMAIL_COLLECTION:(0,s.Iu)("settings","Additional email"),EMAIL:(0,s.Iu)("settings","Email"),HEADLINE:(0,s.Iu)("settings","Headline"),ORGANISATION:(0,s.Iu)("settings","Organisation"),PHONE:(0,s.Iu)("settings","Phone number"),PROFILE_ENABLED:(0,s.Iu)("settings","Profile"),ROLE:(0,s.Iu)("settings","Role"),TWITTER:(0,s.Iu)("settings","Twitter"),FEDIVERSE:(0,s.Iu)("settings","Fediverse (e.g. Mastodon)"),WEBSITE:(0,s.Iu)("settings","Website")}),K=Object.freeze((Y(M={},$.ADDRESS,W.ADDRESS),Y(M,$.AVATAR,W.AVATAR),Y(M,$.BIOGRAPHY,W.BIOGRAPHY),Y(M,$.DISPLAYNAME,W.DISPLAYNAME),Y(M,$.EMAIL_COLLECTION,W.EMAIL_COLLECTION),Y(M,$.EMAIL,W.EMAIL),Y(M,$.HEADLINE,W.HEADLINE),Y(M,$.ORGANISATION,W.ORGANISATION),Y(M,$.PHONE,W.PHONE),Y(M,$.PROFILE_ENABLED,W.PROFILE_ENABLED),Y(M,$.ROLE,W.ROLE),Y(M,$.TWITTER,W.TWITTER),Y(M,$.FEDIVERSE,W.FEDIVERSE),Y(M,$.WEBSITE,W.WEBSITE),M)),Q=Object.freeze({PROFILE_VISIBILITY:(0,s.Iu)("settings","Profile visibility")}),X=Object.freeze((Y(U={},W.ADDRESS,$.ADDRESS),Y(U,W.AVATAR,$.AVATAR),Y(U,W.BIOGRAPHY,$.BIOGRAPHY),Y(U,W.DISPLAYNAME,$.DISPLAYNAME),Y(U,W.EMAIL_COLLECTION,$.EMAIL_COLLECTION),Y(U,W.EMAIL,$.EMAIL),Y(U,W.HEADLINE,$.HEADLINE),Y(U,W.ORGANISATION,$.ORGANISATION),Y(U,W.PHONE,$.PHONE),Y(U,W.PROFILE_ENABLED,$.PROFILE_ENABLED),Y(U,W.ROLE,$.ROLE),Y(U,W.TWITTER,$.TWITTER),Y(U,W.FEDIVERSE,$.FEDIVERSE),Y(U,W.WEBSITE,$.WEBSITE),U)),J=Object.freeze({LANGUAGE:"language",LOCALE:"locale"}),tt=Object.freeze({LANGUAGE:(0,s.Iu)("settings","Language"),LOCALE:(0,s.Iu)("settings","Locale")}),et=Object.freeze({PRIVATE:"v2-private",LOCAL:"v2-local",FEDERATED:"v2-federated",PUBLISHED:"v2-published"}),nt=Object.freeze((Y(F={},W.ADDRESS,[et.LOCAL,et.PRIVATE]),Y(F,W.AVATAR,[et.LOCAL,et.PRIVATE]),Y(F,W.BIOGRAPHY,[et.LOCAL,et.PRIVATE]),Y(F,W.DISPLAYNAME,[et.LOCAL]),Y(F,W.EMAIL_COLLECTION,[et.LOCAL]),Y(F,W.EMAIL,[et.LOCAL]),Y(F,W.HEADLINE,[et.LOCAL,et.PRIVATE]),Y(F,W.ORGANISATION,[et.LOCAL,et.PRIVATE]),Y(F,W.PHONE,[et.LOCAL,et.PRIVATE]),Y(F,W.PROFILE_ENABLED,[et.LOCAL,et.PRIVATE]),Y(F,W.ROLE,[et.LOCAL,et.PRIVATE]),Y(F,W.TWITTER,[et.LOCAL,et.PRIVATE]),Y(F,W.FEDIVERSE,[et.LOCAL,et.PRIVATE]),Y(F,W.WEBSITE,[et.LOCAL,et.PRIVATE]),F)),rt=Object.freeze([W.BIOGRAPHY,W.HEADLINE,W.ORGANISATION,W.ROLE]),at="Scope",it=Object.freeze((Y(z={},et.PRIVATE,{name:et.PRIVATE,displayName:(0,s.Iu)("settings","Private"),tooltip:(0,s.Iu)("settings","Only visible to people matched via phone number integration through Talk on mobile"),tooltipDisabled:(0,s.Iu)("settings","Not available as this property is required for core functionality including file sharing and calendar invitations"),iconClass:"icon-phone"}),Y(z,et.LOCAL,{name:et.LOCAL,displayName:(0,s.Iu)("settings","Local"),tooltip:(0,s.Iu)("settings","Only visible to people on this instance and guests"),iconClass:"icon-password"}),Y(z,et.FEDERATED,{name:et.FEDERATED,displayName:(0,s.Iu)("settings","Federated"),tooltip:(0,s.Iu)("settings","Only synchronize to trusted servers"),tooltipDisabled:(0,s.Iu)("settings","Not available as federation has been disabled for your account, contact your system administrator if you have any questions"),iconClass:"icon-contacts-dark"}),Y(z,et.PUBLISHED,{name:et.PUBLISHED,displayName:(0,s.Iu)("settings","Published"),tooltip:(0,s.Iu)("settings","Synchronize to trusted servers and the global and public address book"),tooltipDisabled:(0,s.Iu)("settings","Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions"),iconClass:"icon-link"}),z)),ot=et.LOCAL,st=Object.freeze({NOT_VERIFIED:0,VERIFICATION_IN_PROGRESS:1,VERIFIED:2}),lt=/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/i,ct=r(10128);function ut(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function pt(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){ut(i,r,a,o,s,"next",t)}function s(t){ut(i,r,a,o,s,"throw",t)}o(void 0)}))}}r(65509);var dt=function(){var t=pt(regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return"boolean"==typeof n&&(n=n?"1":"0"),r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:r}),t.next=5,(0,ct.confirmPassword)();case 5:return t.next=7,l.default.put(a,{key:e,value:n});case 7:return o=t.sent,t.abrupt("return",o.data);case 9:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),ft=function(){var t=pt(regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:r}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(a,{key:"".concat(e).concat(at),value:n});case 6:return o=t.sent,t.abrupt("return",o.data);case 8:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),At=(0,r(17499).IY)().setApp("settings").detectUser().build();function mt(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function vt(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){mt(i,r,a,o,s,"next",t)}function s(t){mt(i,r,a,o,s,"throw",t)}o(void 0)}))}}var bt=(0,o.j)("settings","accountParameters",{}),gt=bt.federationEnabled,yt=bt.lookupServerUploadEnabled,ht={name:"FederationControl",components:{NcActions:x(),FederationControlAction:G},props:{readable:{type:String,required:!0,validator:function(t){return Object.values(W).includes(t)||Object.values(tt).includes(t)||t===Q.PROFILE_VISIBILITY}},additional:{type:Boolean,default:!1},additionalValue:{type:String,default:""},disabled:{type:Boolean,default:!1},handleAdditionalScopeChange:{type:Function,default:null},scope:{type:String,required:!0}},data:function(){return{readableLowerCase:this.readable.toLocaleLowerCase(),initialScope:this.scope}},computed:{ariaLabel:function(){return t("settings","Change scope level of {property}, current scope is {scope}",{property:this.readableLowerCase,scope:this.scopeDisplayNameLowerCase})},scopeDisplayNameLowerCase:function(){return it[this.scope].displayName.toLocaleLowerCase()},scopeIcon:function(){return it[this.scope].iconClass},federationScopes:function(){return Object.values(it)},supportedScopes:function(){var t=nt[this.readable];return rt.includes(this.readable)||(gt&&t.push(et.FEDERATED),yt&&t.push(et.PUBLISHED)),t}},methods:{changeScope:function(t){var e=this;return vt(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e.$emit("update:scope",t),e.additional){n.next=6;break}return n.next=4,e.updatePrimaryScope(t);case 4:n.next=8;break;case 6:return n.next=8,e.updateAdditionalScope(t);case 8:case"end":return n.stop()}}),n)})))()},updatePrimaryScope:function(e){var n=this;return vt(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,ft(X[n.readable],e);case 3:o=r.sent,n.handleResponse({scope:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update federation scope of the primary {property}",{property:n.readableLowerCase}),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},updateAdditionalScope:function(e){var n=this;return vt(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,n.handleAdditionalScopeChange(n.additionalValue,e);case 3:o=r.sent,n.handleResponse({scope:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update federation scope of additional {property}",{property:n.readableLowerCase}),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},handleResponse:function(t){var e=t.scope,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?this.initialScope=e:(this.$emit("update:scope",this.initialScope),(0,u.x2)(r),At.error(r,a))}}},Ct=r(58218),xt={};xt.styleTagTransform=T(),xt.setAttributes=L(),xt.insert=I().bind(null,"head"),xt.domAPI=O(),xt.insertStyleElement=R(),_()(Ct.Z,xt),Ct.Z&&Ct.Z.locals&&Ct.Z.locals;var wt=(0,V.Z)(ht,(function(){var t=this,e=t._self._c;return e("NcActions",{class:{"federation-actions":!t.additional,"federation-actions--additional":t.additional},attrs:{"aria-label":t.ariaLabel,"default-icon":t.scopeIcon,disabled:t.disabled}},t._l(t.federationScopes,(function(n){return e("FederationControlAction",{key:n.name,attrs:{"active-scope":t.scope,"display-name":n.displayName,"handle-scope-change":t.changeScope,"icon-class":n.iconClass,"is-supported-scope":t.supportedScopes.includes(n.name),name:n.name,"tooltip-disabled":n.tooltipDisabled,tooltip:n.tooltip,"aria-label":n.tooltip}})})),1)}),[],!1,null,"05031b91",null).exports,Et={name:"HeaderBar",components:{FederationControl:wt,NcButton:m(),Plus:h.Z},props:{scope:{type:String,default:null},readable:{type:String,required:!0},inputId:{type:String,default:null},isEditable:{type:Boolean,default:!0},isMultiValueSupported:{type:Boolean,default:!1},isValidSection:{type:Boolean,default:!0},isHeading:{type:Boolean,default:!1}},data:function(){return{localScope:this.scope}},computed:{isProfileProperty:function(){return this.readable===W.PROFILE_ENABLED},isSettingProperty:function(){return!Object.values(W).includes(this.readable)&&!Object.values(Q).includes(this.readable)}},methods:{onAddAdditional:function(){this.$emit("add-additional")},onScopeChange:function(t){this.$emit("update:scope",t)}}},Pt=r(90564),_t={};_t.styleTagTransform=T(),_t.setAttributes=L(),_t.insert=I().bind(null,"head"),_t.domAPI=O(),_t.insertStyleElement=R(),_()(Pt.Z,_t),Pt.Z&&Pt.Z.locals&&Pt.Z.locals;var St=(0,V.Z)(Et,(function(){var t=this,e=t._self._c;return e(t.isHeading?"h3":"div",{tag:"component",staticClass:"headerbar-label",class:{"setting-property":t.isSettingProperty,"profile-property":t.isProfileProperty}},[t.isHeading?e("span",[t._v("\n\t\t"+t._s(t.readable)+"\n\t")]):e("label",{attrs:{for:t.inputId}},[t._v("\n\t\t"+t._s(t.readable)+"\n\t")]),t._v(" "),t.scope?[e("FederationControl",{staticClass:"federation-control",attrs:{readable:t.readable,scope:t.localScope},on:{"update:scope":[function(e){t.localScope=e},t.onScopeChange]}})]:t._e(),t._v(" "),t.isEditable&&t.isMultiValueSupported?[e("NcButton",{attrs:{type:"tertiary",disabled:!t.isValidSection,"aria-label":t.t("settings","Add additional email")},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.onAddAdditional.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Plus",{attrs:{size:20}})]},proxy:!0}],null,!1,32235154)},[t._v("\n\t\t\t"+t._s(t.t("settings","Add"))+"\n\t\t")])]:t._e()],2)}),[],!1,null,"b43fcc0c",null),Ot=St.exports;function jt(t){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jt(t)}function It(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function kt(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){It(i,r,a,o,s,"next",t)}function s(t){It(i,r,a,o,s,"throw",t)}o(void 0)}))}}function Lt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Dt(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Lt(Object(n),!0).forEach((function(e){Rt(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Lt(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Rt(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==jt(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==jt(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===jt(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Bt=(0,o.j)("settings","personalInfoParameters",{}).avatar,Tt=(0,o.j)("settings","accountParameters",{}).avatarChangeSupported,Nt=["image/png","image/jpeg"],Zt=(0,u.fn)(t("settings","Choose your profile picture")).setMultiSelect(!1).setMimeTypeFilter(Nt).setModal(!0).setType(1).allowDirectories(!1).build(),Mt={name:"AvatarSection",components:{Delete:y.Z,Folder:g.default,HeaderBar:Ot,NcAvatar:f(),NcButton:m(),Upload:b.Z,VueCropper:v.Z},data:function(){return{avatar:Dt(Dt({},Bt),{},{readable:K[Bt.name]}),avatarChangeSupported:Tt,showCropper:!1,loading:!1,userId:(0,i.ts)().uid,displayName:(0,i.ts)().displayName,version:oc_userconfig.avatar.version,isGenerated:oc_userconfig.avatar.generated,validMimeTypes:Nt,cropperOptions:{aspectRatio:1,viewMode:1,guides:!1,center:!1,highlight:!1,autoCropArea:1,minContainerWidth:300,minContainerHeight:300}}},computed:{inputId:function(){return"account-property-".concat(this.avatar.name)}},created:function(){(0,p.Ld)("settings:display-name:updated",this.handleDisplayNameUpdate)},beforeDestroy:function(){(0,p.r1)("settings:display-name:updated",this.handleDisplayNameUpdate)},methods:{activateLocalFilePicker:function(){this.$refs.input.value=null,this.$refs.input.click()},onChange:function(e){var n=this;this.loading=!0;var r=e.target.files[0];if(!this.validMimeTypes.includes(r.type))return(0,u.x2)(t("settings","Please select a valid png or jpg file")),void this.cancel();var a=new FileReader;a.onload=function(t){n.$refs.cropper.replace(t.target.result),n.showCropper=!0},a.readAsDataURL(r)},openFilePicker:function(){var e=this;return kt(regeneratorRuntime.mark((function n(){var r,a,i,o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Zt.pick();case 2:return r=n.sent,e.loading=!0,n.prev=4,n.next=7,l.default.post((0,c.generateUrl)("/avatar"),{path:r});case 7:a=n.sent,"success"===(i=a.data).status?e.handleAvatarUpdate(!1):"notsquare"===i.data?(o=(0,c.generateUrl)("/avatar/tmp")+"?requesttoken="+encodeURIComponent(OC.requestToken)+"#"+Math.floor(1e3*Math.random()),e.$refs.cropper.replace(o),e.showCropper=!0):((0,u.x2)(i.data.message),e.cancel()),n.next=16;break;case 12:n.prev=12,n.t0=n.catch(4),(0,u.x2)(t("settings","Error setting profile picture")),e.cancel();case 16:case"end":return n.stop()}}),n,null,[[4,12]])})))()},saveAvatar:function(){var e=this;this.showCropper=!1,this.loading=!0,this.$refs.cropper.getCroppedCanvas().toBlob(function(){var n=kt(regeneratorRuntime.mark((function n(r){var a;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(null!==r){n.next=4;break}return(0,u.x2)(t("settings","Error cropping profile picture")),e.cancel(),n.abrupt("return");case 4:return(a=new FormData).append("files[]",r),n.prev=6,n.next=9,l.default.post((0,c.generateUrl)("/avatar"),a);case 9:e.handleAvatarUpdate(!1),n.next=16;break;case 12:n.prev=12,n.t0=n.catch(6),(0,u.x2)(t("settings","Error saving profile picture")),e.handleAvatarUpdate(e.isGenerated);case 16:case"end":return n.stop()}}),n,null,[[6,12]])})));return function(t){return n.apply(this,arguments)}}())},removeAvatar:function(){var e=this;return kt(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e.loading=!0,n.prev=1,n.next=4,l.default.delete((0,c.generateUrl)("/avatar"));case 4:e.handleAvatarUpdate(!0),n.next=11;break;case 7:n.prev=7,n.t0=n.catch(1),(0,u.x2)(t("settings","Error removing profile picture")),e.handleAvatarUpdate(e.isGenerated);case 11:case"end":return n.stop()}}),n,null,[[1,7]])})))()},cancel:function(){this.showCropper=!1,this.loading=!1},handleAvatarUpdate:function(t){this.version=oc_userconfig.avatar.version=Date.now(),this.isGenerated=oc_userconfig.avatar.generated=t,this.loading=!1,(0,p.j8)("settings:avatar:updated",oc_userconfig.avatar.version)},handleDisplayNameUpdate:function(){this.version=oc_userconfig.avatar.version}}},Ut=Mt,Ft=r(24025),zt={};zt.styleTagTransform=T(),zt.setAttributes=L(),zt.insert=I().bind(null,"head"),zt.domAPI=O(),zt.insertStyleElement=R(),_()(Ft.Z,zt),Ft.Z&&Ft.Z.locals&&Ft.Z.locals;var Vt=(0,V.Z)(Ut,(function(){var t=this,e=t._self._c;return e("section",{attrs:{id:"vue-avatar-section"}},[e("h3",{staticClass:"hidden-visually"},[t._v(" "+t._s(t.t("settings","Your profile information"))+" ")]),t._v(" "),e("HeaderBar",{attrs:{"input-id":t.avatarChangeSupported?t.inputId:null,readable:t.avatar.readable,scope:t.avatar.scope},on:{"update:scope":function(e){return t.$set(t.avatar,"scope",e)}}}),t._v(" "),t.showCropper?t._e():e("div",{staticClass:"avatar__container"},[e("div",{staticClass:"avatar__preview"},[t.loading?e("div",{staticClass:"icon-loading"}):e("NcAvatar",{key:t.version,attrs:{user:t.userId,"aria-label":t.t("settings","Your profile picture"),"disabled-menu":!0,"disabled-tooltip":!0,"show-user-status":!1,size:180}})],1),t._v(" "),t.avatarChangeSupported?[e("div",{staticClass:"avatar__buttons"},[e("NcButton",{attrs:{"aria-label":t.t("settings","Upload profile picture")},on:{click:t.activateLocalFilePicker},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Upload",{attrs:{size:20}})]},proxy:!0}],null,!1,1329850251)}),t._v(" "),e("NcButton",{attrs:{"aria-label":t.t("settings","Choose profile picture from Files")},on:{click:t.openFilePicker},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Folder",{attrs:{size:20}})]},proxy:!0}],null,!1,4270628382)}),t._v(" "),t.isGenerated?t._e():e("NcButton",{attrs:{"aria-label":t.t("settings","Remove profile picture")},on:{click:t.removeAvatar},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Delete",{attrs:{size:20}})]},proxy:!0}],null,!1,2705356561)})],1),t._v(" "),e("span",[t._v(t._s(t.t("settings","png or jpg, max. 20 MB")))]),t._v(" "),e("input",{ref:"input",attrs:{id:t.inputId,type:"file",accept:t.validMimeTypes.join(",")},on:{change:t.onChange}})]:e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Picture provided by original account"))+"\n\t\t")])],2),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.showCropper,expression:"showCropper"}],staticClass:"avatar__container"},[e("VueCropper",t._b({ref:"cropper",staticClass:"avatar__cropper"},"VueCropper",t.cropperOptions,!1)),t._v(" "),e("div",{staticClass:"avatar__cropper-buttons"},[e("NcButton",{on:{click:t.cancel}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Cancel"))+"\n\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"primary"},on:{click:t.saveAvatar}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Set as profile picture"))+"\n\t\t\t")])],1),t._v(" "),e("span",[t._v(t._s(t.t("settings","Please note that it can take up to 24 hours for your profile picture to be updated everywhere.")))])],1)],1)}),[],!1,null,"04cca3b6",null).exports,Ht=r(48959),Gt=r.n(Ht),qt=r(86158),Yt=r(34046),$t=(0,o.j)("settings","personalInfoParameters",{}),Wt=$t.groups,Kt=$t.quota,Qt=$t.totalSpace,Xt=$t.usage,Jt=$t.usageRelative,te={name:"DetailsSection",components:{Account:qt.Z,CircleSlice:Yt.Z,HeaderBar:Ot,NcProgressBar:Gt()},computed:{quotaText:function(){return-3===Kt?t("settings","You are using <strong>{usage}</strong>",{usage:Xt}):t("settings","You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",{usage:Xt,totalSpace:Qt,usageRelative:Jt})}},data:function(){return{groups:Wt,usageRelative:Jt}}},ee=r(18118),ne={};ne.styleTagTransform=T(),ne.setAttributes=L(),ne.insert=I().bind(null,"head"),ne.domAPI=O(),ne.insertStyleElement=R(),_()(ee.Z,ne),ee.Z&&ee.Z.locals&&ee.Z.locals;var re=(0,V.Z)(te,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{"is-heading":!0,readable:t.t("settings","Details")}}),t._v(" "),e("div",{staticClass:"details"},[e("div",{staticClass:"details__groups"},[e("Account",{attrs:{size:20}}),t._v(" "),e("div",{staticClass:"details__groups-info"},[e("p",[t._v(t._s(t.t("settings","You are a member of the following groups:")))]),t._v(" "),e("p",{staticClass:"details__groups-list"},[t._v(t._s(t.groups.join(", ")))])])],1),t._v(" "),e("div",{staticClass:"details__quota"},[e("CircleSlice",{attrs:{size:20}}),t._v(" "),e("div",{staticClass:"details__quota-info"},[e("p",{staticClass:"details__quota-text",domProps:{innerHTML:t._s(t.quotaText)}}),t._v(" "),e("NcProgressBar",{attrs:{size:"medium",value:t.usageRelative,error:t.usageRelative>80}})],1)],1)])],1)}),[],!1,null,"1ab46e68",null).exports,ae=r(20296),ie=r.n(ae),oe=r(94603),se=r(31974),le=r(80419);function ce(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function ue(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){ce(i,r,a,o,s,"next",t)}function s(t){ce(i,r,a,o,s,"throw",t)}o(void 0)}))}}var pe={name:"AccountPropertySection",components:{AlertCircle:oe.default,AlertOctagon:se.Z,Check:le.default,HeaderBar:Ot},props:{name:{type:String,required:!0},value:{type:String,required:!0},scope:{type:String,required:!0},readable:{type:String,required:!0},placeholder:{type:String,required:!0},type:{type:String,default:"text"},isEditable:{type:Boolean,default:!0},multiLine:{type:Boolean,default:!1},onValidate:{type:Function,default:null},onSave:{type:Function,default:null}},data:function(){return{initialValue:this.value,helperText:null,showCheckmarkIcon:!1,showErrorIcon:!1}},computed:{inputId:function(){return"account-property-".concat(this.name)}},methods:{onPropertyChange:function(t){this.$emit("update:value",t.target.value),this.debouncePropertyChange(t.target.value.trim())},debouncePropertyChange:ie()(function(){var t=ue(regeneratorRuntime.mark((function t(e){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.helperText=null,!this.$refs.input||!this.$refs.input.validationMessage){t.next=4;break}return this.helperText=this.$refs.input.validationMessage,t.abrupt("return");case 4:if(!this.onValidate||this.onValidate(e)){t.next=6;break}return t.abrupt("return");case 6:return t.next=8,this.updateProperty(e);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),500),updateProperty:function(e){var n=this;return ue(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,dt(n.name,e);case 3:o=r.sent,n.handleResponse({value:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update {property}",{property:n.readable.toLocaleLowerCase()}),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},handleResponse:function(t){var e=this,n=t.value,r=t.status,a=t.errorMessage,i=t.error;"ok"===r?(this.initialValue=n,this.onSave&&this.onSave(n),this.showCheckmarkIcon=!0,setTimeout((function(){e.showCheckmarkIcon=!1}),2e3)):(this.$emit("update:value",this.initialValue),(0,u.x2)(a),At.error(a,i),this.showErrorIcon=!0,setTimeout((function(){e.showErrorIcon=!1}),2e3))}}},de=pe,fe=r(6067),Ae={};Ae.styleTagTransform=T(),Ae.setAttributes=L(),Ae.insert=I().bind(null,"head"),Ae.domAPI=O(),Ae.insertStyleElement=R(),_()(fe.Z,Ae),fe.Z&&fe.Z.locals&&fe.Z.locals;var me=(0,V.Z)(de,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{scope:t.scope,readable:t.readable,"input-id":t.inputId,"is-editable":t.isEditable},on:{"update:scope":function(e){t.scope=e},"update:readable":function(e){t.readable=e}}}),t._v(" "),t.isEditable?e("div",{staticClass:"property"},[t.multiLine?e("textarea",{attrs:{id:t.inputId,placeholder:t.placeholder,rows:"8",autocapitalize:"none",autocomplete:"off",autocorrect:"off"},domProps:{value:t.value},on:{input:t.onPropertyChange}}):e("input",{ref:"input",attrs:{id:t.inputId,placeholder:t.placeholder,type:t.type,"aria-describedby":t.helperText?"".concat(t.name,"-helper-text"):"",autocapitalize:"none",autocomplete:"on",autocorrect:"off"},domProps:{value:t.value},on:{input:t.onPropertyChange}}),t._v(" "),e("div",{staticClass:"property__actions-container"},[e("transition",{attrs:{name:"fade"}},[t.showCheckmarkIcon?e("Check",{attrs:{size:20}}):t.showErrorIcon?e("AlertOctagon",{attrs:{size:20}}):t._e()],1)],1)]):e("span",[t._v("\n\t\t"+t._s(t.value||t.t("settings","No {property} set",{property:t.readable.toLocaleLowerCase()}))+"\n\t")]),t._v(" "),t.helperText?e("p",{staticClass:"property__helper-text-message property__helper-text-message--error",attrs:{id:"".concat(t.name,"-helper-text")}},[e("AlertCircle",{staticClass:"property__helper-text-message__icon",attrs:{size:18}}),t._v("\n\t\t"+t._s(t.helperText)+"\n\t")],1):t._e()],1)}),[],!1,null,"4ef6bbf8",null).exports;function ve(t){return ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ve(t)}function be(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ge(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?be(Object(n),!0).forEach((function(e){ye(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function ye(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==ve(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==ve(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===ve(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var he=(0,o.j)("settings","personalInfoParameters",{}).displayName,Ce=(0,o.j)("settings","accountParameters",{}).displayNameChangeSupported,xe={name:"DisplayNameSection",components:{AccountPropertySection:me},data:function(){return{displayName:ge(ge({},he),{},{readable:K[he.name]}),displayNameChangeSupported:Ce}},methods:{onValidate:function(t){return""!==t},onSave:function(t){oc_userconfig.avatar.generated&&(oc_userconfig.avatar.version=Date.now()),(0,p.j8)("settings:display-name:updated",t)}}},we=(0,V.Z)(xe,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your full name"),"is-editable":t.displayNameChangeSupported,"on-validate":t.onValidate,"on-save":t.onSave}},"AccountPropertySection",t.displayName,!1,!0))}),[],!1,null,null,null).exports,Ee=r(15961);function Pe(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function _e(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Pe(i,r,a,o,s,"next",t)}function s(t){Pe(i,r,a,o,s,"throw",t)}o(void 0)}))}}var Se=function(){var t=_e(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:n}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:$.EMAIL,value:e});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),Oe=function(){var t=_e(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:n}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:$.EMAIL_COLLECTION,value:e});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),je=function(){var t=_e(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:n}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:$.NOTIFICATION_EMAIL,value:e});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),Ie=function(){var t=_e(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}/{collection}",{userId:n,collection:$.EMAIL_COLLECTION}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:e,value:""});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),ke=function(){var t=_e(regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("cloud/users/{userId}/{collection}",{userId:r,collection:$.EMAIL_COLLECTION}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(a,{key:e,value:n});case 6:return o=t.sent,t.abrupt("return",o.data);case 8:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),Le=function(){var t=_e(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:n}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:"".concat($.EMAIL).concat(at),value:e});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),De=function(){var t=_e(regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("cloud/users/{userId}/{collectionScope}",{userId:r,collectionScope:"".concat($.EMAIL_COLLECTION).concat(at)}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(a,{key:e,value:n});case 6:return o=t.sent,t.abrupt("return",o.data);case 8:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}();function Re(t){return"string"==typeof t&&lt.test(t)&&"\n"!==t.slice(-1)&&t.length<=320&&encodeURIComponent(t).replace(/%../g,"x").length<=320}function Be(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Te(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Be(i,r,a,o,s,"next",t)}function s(t){Be(i,r,a,o,s,"throw",t)}o(void 0)}))}}var Ne={name:"Email",components:{NcActions:Ee.O3,NcActionButton:Ee.Js,AlertCircle:oe.default,AlertOctagon:se.Z,Check:le.default,FederationControl:wt},props:{email:{type:String,required:!0},index:{type:Number,default:0},primary:{type:Boolean,default:!1},scope:{type:String,required:!0},activeNotificationEmail:{type:String,default:""},localVerificationState:{type:Number,default:st.NOT_VERIFIED}},data:function(){return{propertyReadable:W.EMAIL,initialEmail:this.email,localScope:this.scope,saveAdditionalEmailScope:De,helperText:null,showCheckmarkIcon:!1,showErrorIcon:!1}},computed:{deleteDisabled:function(){return this.primary?""===this.email||this.initialEmail!==this.email:""!==this.initialEmail&&this.initialEmail!==this.email},deleteEmailLabel:function(){return this.primary?t("settings","Remove primary email"):t("settings","Delete email")},setNotificationMailDisabled:function(){return!this.primary&&this.localVerificationState!==st.VERIFIED},setNotificationMailLabel:function(){return this.isNotificationEmail?t("settings","Unset as primary email"):this.primary||this.localVerificationState===st.VERIFIED?t("settings","Set as primary email"):t("settings","This address is not confirmed")},federationDisabled:function(){return!this.initialEmail},inputId:function(){return this.primary?"email":"email-".concat(this.index)},inputPlaceholder:function(){return this.primary?t("settings","Your email address"):t("settings","Additional email address {index}",{index:this.index+1})},isNotificationEmail:function(){return this.email&&this.email===this.activeNotificationEmail||this.primary&&""===this.activeNotificationEmail}},mounted:function(){var t=this;this.primary||""!==this.initialEmail||this.$nextTick((function(){var e;return null===(e=t.$refs.email)||void 0===e?void 0:e.focus()}))},methods:{onEmailChange:function(t){this.$emit("update:email",t.target.value),this.debounceEmailChange(t.target.value.trim())},debounceEmailChange:ie()(function(){var t=Te(regeneratorRuntime.mark((function t(e){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.helperText=null,null===(n=this.$refs.email)||void 0===n||!n.validationMessage){t.next=4;break}return this.helperText=this.$refs.email.validationMessage,t.abrupt("return");case 4:if(!Re(e)&&""!==e){t.next=18;break}if(!this.primary){t.next=10;break}return t.next=8,this.updatePrimaryEmail(e);case 8:case 14:t.next=18;break;case 10:if(!e){t.next=18;break}if(""!==this.initialEmail){t.next=16;break}return t.next=14,this.addAdditionalEmail(e);case 16:return t.next=18,this.updateAdditionalEmail(e);case 18:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),500),deleteEmail:function(){var t=this;return Te(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.primary){e.next=6;break}return t.$emit("update:email",""),e.next=4,t.updatePrimaryEmail("");case 4:e.next=8;break;case 6:return e.next=8,t.deleteAdditionalEmail();case 8:case"end":return e.stop()}}),e)})))()},updatePrimaryEmail:function(e){var n=this;return Te(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,Se(e);case 3:o=r.sent,n.handleResponse({email:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),""===e?n.handleResponse({errorMessage:t("settings","Unable to delete primary email address"),error:r.t0}):n.handleResponse({errorMessage:t("settings","Unable to update primary email address"),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},addAdditionalEmail:function(e){var n=this;return Te(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,Oe(e);case 3:o=r.sent,n.handleResponse({email:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to add additional email address"),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},setNotificationMail:function(){var t=this;return Te(regeneratorRuntime.mark((function e(){var n,r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,a=t.primary||t.isNotificationEmail?"":t.initialEmail,e.next=4,je(a);case 4:i=e.sent,t.handleResponse({notificationEmail:a,status:null===(n=i.ocs)||void 0===n||null===(r=n.meta)||void 0===r?void 0:r.status}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),t.handleResponse({errorMessage:"Unable to choose this email for notifications",error:e.t0});case 11:case"end":return e.stop()}}),e,null,[[0,8]])})))()},updateAdditionalEmail:function(e){var n=this;return Te(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,ke(n.initialEmail,e);case 3:o=r.sent,n.handleResponse({email:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update additional email address"),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},deleteAdditionalEmail:function(){var e=this;return Te(regeneratorRuntime.mark((function n(){var r,a,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,Ie(e.initialEmail);case 3:i=n.sent,e.handleDeleteAdditionalEmail(null===(r=i.ocs)||void 0===r||null===(a=r.meta)||void 0===a?void 0:a.status),n.next=10;break;case 7:n.prev=7,n.t0=n.catch(0),e.handleResponse({errorMessage:t("settings","Unable to delete additional email address"),error:n.t0});case 10:case"end":return n.stop()}}),n,null,[[0,7]])})))()},handleDeleteAdditionalEmail:function(e){"ok"===e?this.$emit("delete-additional-email"):this.handleResponse({errorMessage:t("settings","Unable to delete additional email address")})},handleResponse:function(t){var e=this,n=t.email,r=t.notificationEmail,a=t.status,i=t.errorMessage,o=t.error;"ok"===a?(n?this.initialEmail=n:void 0!==r&&this.$emit("update:notification-email",r),this.showCheckmarkIcon=!0,setTimeout((function(){e.showCheckmarkIcon=!1}),2e3)):((0,u.x2)(i),At.error(i,o),this.showErrorIcon=!0,setTimeout((function(){e.showErrorIcon=!1}),2e3))},onScopeChange:function(t){this.$emit("update:scope",t)}}},Ze=Ne,Me=r(27314),Ue={};Ue.styleTagTransform=T(),Ue.setAttributes=L(),Ue.insert=I().bind(null,"head"),Ue.domAPI=O(),Ue.insertStyleElement=R(),_()(Me.Z,Ue),Me.Z&&Me.Z.locals&&Me.Z.locals;var Fe=(0,V.Z)(Ze,(function(){var t=this,e=t._self._c;return e("div",[e("div",{staticClass:"email"},[e("input",{ref:"email",attrs:{id:t.inputId,type:"email",placeholder:t.inputPlaceholder,"aria-describedby":t.helperText?"".concat(t.inputId,"-helper-text"):"",autocapitalize:"none",autocomplete:"on",autocorrect:"off"},domProps:{value:t.email},on:{input:t.onEmailChange}}),t._v(" "),e("div",{staticClass:"email__actions-container"},[e("transition",{attrs:{name:"fade"}},[t.showCheckmarkIcon?e("Check",{attrs:{size:20}}):t.showErrorIcon?e("AlertOctagon",{attrs:{size:20}}):t._e()],1),t._v(" "),t.primary?t._e():[e("FederationControl",{attrs:{readable:t.propertyReadable,additional:!0,"additional-value":t.email,disabled:t.federationDisabled,"handle-additional-scope-change":t.saveAdditionalEmailScope,scope:t.localScope},on:{"update:scope":[function(e){t.localScope=e},t.onScopeChange]}})],t._v(" "),e("NcActions",{staticClass:"email__actions",attrs:{"aria-label":t.t("settings","Email options"),"force-menu":!0}},[e("NcActionButton",{attrs:{"aria-label":t.deleteEmailLabel,"close-after-click":!0,disabled:t.deleteDisabled,icon:"icon-delete"},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.deleteEmail.apply(null,arguments)}}},[t._v("\n\t\t\t\t\t"+t._s(t.deleteEmailLabel)+"\n\t\t\t\t")]),t._v(" "),t.primary&&t.isNotificationEmail?t._e():e("NcActionButton",{attrs:{"aria-label":t.setNotificationMailLabel,"close-after-click":!0,disabled:t.setNotificationMailDisabled,icon:"icon-favorite"},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.setNotificationMail.apply(null,arguments)}}},[t._v("\n\t\t\t\t\t"+t._s(t.setNotificationMailLabel)+"\n\t\t\t\t")])],1)],2)]),t._v(" "),t.helperText?e("p",{staticClass:"email__helper-text-message email__helper-text-message--error",attrs:{id:"".concat(t.inputId,"-helper-text")}},[e("AlertCircle",{staticClass:"email__helper-text-message__icon",attrs:{size:18}}),t._v("\n\t\t"+t._s(t.helperText)+"\n\t")],1):t._e(),t._v(" "),t.isNotificationEmail?e("em",[t._v("\n\t\t"+t._s(t.t("settings","Primary email for password reset and notifications"))+"\n\t")]):t._e()])}),[],!1,null,"367c6830",null),ze=Fe.exports;function Ve(t){return Ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ve(t)}function He(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Ge(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){He(i,r,a,o,s,"next",t)}function s(t){He(i,r,a,o,s,"throw",t)}o(void 0)}))}}function qe(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Ye(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?qe(Object(n),!0).forEach((function(e){$e(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):qe(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function $e(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==Ve(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==Ve(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===Ve(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var We=(0,o.j)("settings","personalInfoParameters",{}).emailMap,Ke=We.additionalEmails,Qe=We.primaryEmail,Xe=We.notificationEmail,Je=(0,o.j)("settings","accountParameters",{}).displayNameChangeSupported,tn={name:"EmailSection",components:{HeaderBar:Ot,Email:ze},data:function(){var t=this;return{accountProperty:W.EMAIL,additionalEmails:Ke.map((function(e){return Ye(Ye({},e),{},{key:t.generateUniqueKey()})})),displayNameChangeSupported:Je,primaryEmail:Ye(Ye({},Qe),{},{readable:K[Qe.name]}),savePrimaryEmailScope:Le,notificationEmail:Xe}},computed:{firstAdditionalEmail:function(){return this.additionalEmails.length?this.additionalEmails[0].value:null},inputId:function(){return"account-property-".concat(this.primaryEmail.name)},isValidSection:function(){return Re(this.primaryEmail.value)&&this.additionalEmails.map((function(t){return t.value})).every(Re)},primaryEmailValue:{get:function(){return this.primaryEmail.value},set:function(t){this.primaryEmail.value=t}}},methods:{onAddAdditionalEmail:function(){this.isValidSection&&this.additionalEmails.push({value:"",scope:ot,key:this.generateUniqueKey()})},onDeleteAdditionalEmail:function(t){this.$delete(this.additionalEmails,t)},onUpdateEmail:function(){var t=this;return Ge(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(""!==t.primaryEmailValue||!t.firstAdditionalEmail){e.next=7;break}return n=t.firstAdditionalEmail,e.next=4,t.deleteFirstAdditionalEmail();case 4:return t.primaryEmailValue=n,e.next=7,t.updatePrimaryEmail();case 7:case"end":return e.stop()}}),e)})))()},onUpdateNotificationEmail:function(t){var e=this;return Ge(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:e.notificationEmail=t;case 1:case"end":return n.stop()}}),n)})))()},updatePrimaryEmail:function(){var e=this;return Ge(regeneratorRuntime.mark((function n(){var r,a,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,Se(e.primaryEmailValue);case 3:i=n.sent,e.handleResponse(null===(r=i.ocs)||void 0===r||null===(a=r.meta)||void 0===a?void 0:a.status),n.next=10;break;case 7:n.prev=7,n.t0=n.catch(0),e.handleResponse("error",t("settings","Unable to update primary email address"),n.t0);case 10:case"end":return n.stop()}}),n,null,[[0,7]])})))()},deleteFirstAdditionalEmail:function(){var e=this;return Ge(regeneratorRuntime.mark((function n(){var r,a,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,Ie(e.firstAdditionalEmail);case 3:i=n.sent,e.handleDeleteFirstAdditionalEmail(null===(r=i.ocs)||void 0===r||null===(a=r.meta)||void 0===a?void 0:a.status),n.next=10;break;case 7:n.prev=7,n.t0=n.catch(0),e.handleResponse("error",t("settings","Unable to delete additional email address"),n.t0);case 10:case"end":return n.stop()}}),n,null,[[0,7]])})))()},handleDeleteFirstAdditionalEmail:function(e){"ok"===e?this.$delete(this.additionalEmails,0):this.handleResponse("error",t("settings","Unable to delete additional email address"),{})},handleResponse:function(t,e,n){"ok"!==t&&((0,u.x2)(e),At.error(e,n))},generateUniqueKey:function(){return Math.random().toString(36).substring(2)}}},en=r(94337),nn={};nn.styleTagTransform=T(),nn.setAttributes=L(),nn.insert=I().bind(null,"head"),nn.domAPI=O(),nn.insertStyleElement=R(),_()(en.Z,nn),en.Z&&en.Z.locals&&en.Z.locals;var rn=(0,V.Z)(tn,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{"input-id":t.inputId,readable:t.primaryEmail.readable,"handle-scope-change":t.savePrimaryEmailScope,"is-editable":!0,"is-multi-value-supported":!0,"is-valid-section":t.isValidSection,scope:t.primaryEmail.scope},on:{"update:scope":function(e){return t.$set(t.primaryEmail,"scope",e)},"add-additional":t.onAddAdditionalEmail}}),t._v(" "),t.displayNameChangeSupported?[e("Email",{attrs:{primary:!0,scope:t.primaryEmail.scope,email:t.primaryEmail.value,"active-notification-email":t.notificationEmail},on:{"update:scope":function(e){return t.$set(t.primaryEmail,"scope",e)},"update:email":[function(e){return t.$set(t.primaryEmail,"value",e)},t.onUpdateEmail],"update:activeNotificationEmail":function(e){t.notificationEmail=e},"update:active-notification-email":function(e){t.notificationEmail=e},"update:notification-email":t.onUpdateNotificationEmail}})]:e("span",[t._v("\n\t\t"+t._s(t.primaryEmail.value||t.t("settings","No email address set"))+"\n\t")]),t._v(" "),t.additionalEmails.length?[e("em",{staticClass:"additional-emails-label"},[t._v(t._s(t.t("settings","Additional emails")))]),t._v(" "),t._l(t.additionalEmails,(function(n,r){return e("Email",{key:n.key,attrs:{index:r,scope:n.scope,email:n.value,"local-verification-state":parseInt(n.locallyVerified,10),"active-notification-email":t.notificationEmail},on:{"update:scope":function(e){return t.$set(n,"scope",e)},"update:email":[function(e){return t.$set(n,"value",e)},t.onUpdateEmail],"update:activeNotificationEmail":function(e){t.notificationEmail=e},"update:active-notification-email":function(e){t.notificationEmail=e},"update:notification-email":t.onUpdateNotificationEmail,"delete-additional-email":function(e){return t.onDeleteAdditionalEmail(r)}}})}))]:t._e()],2)}),[],!1,null,"3b8501a7",null).exports,an=r(45004);function on(t){return on="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},on(t)}function sn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ln(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?sn(Object(n),!0).forEach((function(e){cn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):sn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function cn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==on(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==on(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===on(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var un=(0,o.j)("settings","personalInfoParameters",{}),pn=un.defaultPhoneRegion,dn=un.phone,fn={name:"PhoneSection",components:{AccountPropertySection:me},data:function(){return{phone:ln(ln({},dn),{},{readable:K[dn.name]})}},methods:{onValidate:function(t){return pn?(0,an.y)(t,pn):(0,an.y)(t)}}},An=(0,V.Z)(fn,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your phone number"),type:"tel","on-validate":t.onValidate}},"AccountPropertySection",t.phone,!1,!0))}),[],!1,null,null,null).exports;function mn(t){return mn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mn(t)}function vn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function bn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?vn(Object(n),!0).forEach((function(e){gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):vn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function gn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==mn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==mn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===mn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var yn=(0,o.j)("settings","personalInfoParameters",{}).location,hn={name:"LocationSection",components:{AccountPropertySection:me},data:function(){return{location:bn(bn({},yn),{},{readable:K[yn.name]})}}},Cn=(0,V.Z)(hn,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your location")}},"AccountPropertySection",t.location,!1,!0))}),[],!1,null,null,null).exports;function xn(t){return xn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xn(t)}function wn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function En(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?wn(Object(n),!0).forEach((function(e){Pn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):wn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Pn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==xn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==xn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===xn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var _n=(0,o.j)("settings","personalInfoParameters",{}).website,Sn={name:"WebsiteSection",components:{AccountPropertySection:me},data:function(){return{website:En(En({},_n),{},{readable:K[_n.name]})}},methods:{onValidate:function(t){return function(t){try{return new URL(t),!0}catch(t){return!1}}(t)}}},On=(0,V.Z)(Sn,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your website"),type:"url","on-validate":t.onValidate}},"AccountPropertySection",t.website,!1,!0))}),[],!1,null,null,null).exports;function jn(t){return jn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jn(t)}function In(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function kn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?In(Object(n),!0).forEach((function(e){Ln(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):In(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Ln(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==jn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==jn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===jn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Dn=(0,o.j)("settings","personalInfoParameters",{}).twitter,Rn={name:"TwitterSection",components:{AccountPropertySection:me},data:function(){return{twitter:kn(kn({},Dn),{},{readable:K[Dn.name]})}}},Bn=(0,V.Z)(Rn,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your Twitter handle")}},"AccountPropertySection",t.twitter,!1,!0))}),[],!1,null,null,null).exports;function Tn(t){return Tn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Tn(t)}function Nn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Zn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Nn(Object(n),!0).forEach((function(e){Mn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Nn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Mn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==Tn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==Tn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===Tn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Un=(0,o.j)("settings","personalInfoParameters",{}).fediverse,Fn={name:"FediverseSection",components:{AccountPropertySection:me},data:function(){return{fediverse:Zn(Zn({},Un),{},{readable:K[Un.name]})}}},zn=(0,V.Z)(Fn,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your handle")}},"AccountPropertySection",t.fediverse,!1,!0))}),[],!1,null,null,null).exports;function Vn(t){return Vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vn(t)}function Hn(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Gn(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Hn(i,r,a,o,s,"next",t)}function s(t){Hn(i,r,a,o,s,"throw",t)}o(void 0)}))}}function qn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Yn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?qn(Object(n),!0).forEach((function(e){$n(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):qn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function $n(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==Vn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==Vn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===Vn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Wn(t){return function(t){if(Array.isArray(t))return Kn(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Kn(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Kn(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Qn={name:"Language",props:{inputId:{type:String,default:null},commonLanguages:{type:Array,required:!0},otherLanguages:{type:Array,required:!0},language:{type:Object,required:!0}},data:function(){return{initialLanguage:this.language}},computed:{allLanguages:function(){return Object.freeze([].concat(Wn(this.commonLanguages),Wn(this.otherLanguages)).reduce((function(t,e){var n=e.code,r=e.name;return Yn(Yn({},t),{},$n({},n,r))}),{}))}},methods:{onLanguageChange:function(t){var e=this;return Gn(regeneratorRuntime.mark((function n(){var r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=e.constructLanguage(t.target.value),e.$emit("update:language",r),""===(a=r).code||""===a.name||void 0===a.name){n.next=5;break}return n.next=5,e.updateLanguage(r);case 5:case"end":return n.stop()}var a}),n)})))()},updateLanguage:function(e){var n=this;return Gn(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,dt(J.LANGUAGE,e.code);case 3:o=r.sent,n.handleResponse({language:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),n.reloadPage(),r.next=11;break;case 8:r.prev=8,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update language"),error:r.t0});case 11:case"end":return r.stop()}}),r,null,[[0,8]])})))()},constructLanguage:function(t){return{code:t,name:this.allLanguages[t]}},handleResponse:function(t){var e=t.language,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?this.initialLanguage=e:((0,u.x2)(r),At.error(r,a))},reloadPage:function(){location.reload()}}},Xn=r(32880),Jn={};Jn.styleTagTransform=T(),Jn.setAttributes=L(),Jn.insert=I().bind(null,"head"),Jn.domAPI=O(),Jn.insertStyleElement=R(),_()(Xn.Z,Jn),Xn.Z&&Xn.Z.locals&&Xn.Z.locals;var tr=(0,V.Z)(Qn,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"language"},[e("select",{attrs:{id:t.inputId,placeholder:t.t("settings","Language")},on:{change:t.onLanguageChange}},[t._l(t.commonLanguages,(function(n){return e("option",{key:n.code,domProps:{selected:t.language.code===n.code,value:n.code}},[t._v("\n\t\t\t"+t._s(n.name)+"\n\t\t")])})),t._v(" "),e("option",{attrs:{disabled:""}},[t._v("\n\t\t\t──────────\n\t\t")]),t._v(" "),t._l(t.otherLanguages,(function(n){return e("option",{key:n.code,domProps:{selected:t.language.code===n.code,value:n.code}},[t._v("\n\t\t\t"+t._s(n.name)+"\n\t\t")])}))],2),t._v(" "),e("a",{attrs:{href:"https://www.transifex.com/nextcloud/nextcloud/",target:"_blank",rel:"noreferrer noopener"}},[e("em",[t._v(t._s(t.t("settings","Help translate")))])])])}),[],!1,null,"6e196b5c",null).exports,er=(0,o.j)("settings","personalInfoParameters",{}).languageMap,nr=er.activeLanguage,rr=er.commonLanguages,ar=er.otherLanguages,ir={name:"LanguageSection",components:{Language:tr,HeaderBar:Ot},data:function(){return{propertyReadable:tt.LANGUAGE,commonLanguages:rr,otherLanguages:ar,language:nr}},computed:{inputId:function(){return"account-setting-".concat(J.LANGUAGE)},isEditable:function(){return Boolean(this.language)}}},or=r(12531),sr={};sr.styleTagTransform=T(),sr.setAttributes=L(),sr.insert=I().bind(null,"head"),sr.domAPI=O(),sr.insertStyleElement=R(),_()(or.Z,sr),or.Z&&or.Z.locals&&or.Z.locals;var lr=(0,V.Z)(ir,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{"input-id":t.inputId,readable:t.propertyReadable}}),t._v(" "),t.isEditable?[e("Language",{attrs:{"input-id":t.inputId,"common-languages":t.commonLanguages,"other-languages":t.otherLanguages,language:t.language},on:{"update:language":function(e){t.language=e}}})]:e("span",[t._v("\n\t\t"+t._s(t.t("settings","No language set"))+"\n\t")])],2)}),[],!1,null,"92685b76",null).exports,cr=r(80351),ur=r.n(cr);function pr(t){return pr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pr(t)}function dr(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function fr(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){dr(i,r,a,o,s,"next",t)}function s(t){dr(i,r,a,o,s,"throw",t)}o(void 0)}))}}function Ar(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function mr(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Ar(Object(n),!0).forEach((function(e){vr(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ar(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function vr(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==pr(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==pr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===pr(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function br(t){return function(t){if(Array.isArray(t))return gr(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return gr(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?gr(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function gr(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var yr={name:"Locale",components:{Web:r(97859).default},props:{inputId:{type:String,default:null},locale:{type:Object,required:!0},localesForLanguage:{type:Array,required:!0},otherLocales:{type:Array,required:!0}},data:function(){return{initialLocale:this.locale,example:{date:ur()().format("L"),time:ur()().format("LTS"),firstDayOfWeek:window.dayNames[window.firstDay]}}},computed:{allLocales:function(){return Object.freeze([].concat(br(this.localesForLanguage),br(this.otherLocales)).reduce((function(t,e){var n=e.code,r=e.name;return mr(mr({},t),{},vr({},n,r))}),{}))}},created:function(){setInterval(this.refreshExample,1e3)},methods:{onLocaleChange:function(t){var e=this;return fr(regeneratorRuntime.mark((function n(){var r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=e.constructLocale(t.target.value),e.$emit("update:locale",r),""===(a=r).code||""===a.name||void 0===a.name){n.next=5;break}return n.next=5,e.updateLocale(r);case 5:case"end":return n.stop()}var a}),n)})))()},updateLocale:function(e){var n=this;return fr(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,dt(J.LOCALE,e.code);case 3:o=r.sent,n.handleResponse({locale:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),n.reloadPage(),r.next=11;break;case 8:r.prev=8,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update locale"),error:r.t0});case 11:case"end":return r.stop()}}),r,null,[[0,8]])})))()},constructLocale:function(t){return{code:t,name:this.allLocales[t]}},handleResponse:function(t){var e=t.locale,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?this.initialLocale=e:(this.$emit("update:locale",this.initialLocale),(0,u.x2)(r),At.error(r,a))},refreshExample:function(){this.example={date:ur()().format("L"),time:ur()().format("LTS"),firstDayOfWeek:window.dayNames[window.firstDay]}},reloadPage:function(){location.reload()}}},hr=r(47726),Cr={};Cr.styleTagTransform=T(),Cr.setAttributes=L(),Cr.insert=I().bind(null,"head"),Cr.domAPI=O(),Cr.insertStyleElement=R(),_()(hr.Z,Cr),hr.Z&&hr.Z.locals&&hr.Z.locals;var xr=(0,V.Z)(yr,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"locale"},[e("select",{attrs:{id:t.inputId,placeholder:t.t("settings","Locale")},on:{change:t.onLocaleChange}},[t._l(t.localesForLanguage,(function(n){return e("option",{key:n.code,domProps:{selected:t.locale.code===n.code,value:n.code}},[t._v("\n\t\t\t"+t._s(n.name)+"\n\t\t")])})),t._v(" "),e("option",{attrs:{disabled:""}},[t._v("\n\t\t\t──────────\n\t\t")]),t._v(" "),t._l(t.otherLocales,(function(n){return e("option",{key:n.code,domProps:{selected:t.locale.code===n.code,value:n.code}},[t._v("\n\t\t\t"+t._s(n.name)+"\n\t\t")])}))],2),t._v(" "),e("div",{staticClass:"example"},[e("Web",{attrs:{size:20}}),t._v(" "),e("div",{staticClass:"example__text"},[e("p",[e("span",[t._v(t._s(t.example.date))]),t._v(" "),e("span",[t._v(t._s(t.example.time))])]),t._v(" "),e("p",[t._v("\n\t\t\t\t"+t._s(t.t("settings","Week starts on {firstDayOfWeek}",{firstDayOfWeek:this.example.firstDayOfWeek}))+"\n\t\t\t")])])],1)])}),[],!1,null,"ea9ccb08",null).exports,wr=(0,o.j)("settings","personalInfoParameters",{}).localeMap,Er=wr.activeLocale,Pr=wr.localesForLanguage,_r=wr.otherLocales,Sr={name:"LocaleSection",components:{Locale:xr,HeaderBar:Ot},data:function(){return{propertyReadable:tt.LOCALE,localesForLanguage:Pr,otherLocales:_r,locale:Er}},computed:{inputId:function(){return"account-setting-".concat(J.LOCALE)},isEditable:function(){return Boolean(this.locale)}}},Or=r(682),jr={};jr.styleTagTransform=T(),jr.setAttributes=L(),jr.insert=I().bind(null,"head"),jr.domAPI=O(),jr.insertStyleElement=R(),_()(Or.Z,jr),Or.Z&&Or.Z.locals&&Or.Z.locals;var Ir=(0,V.Z)(Sr,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{"input-id":t.inputId,readable:t.propertyReadable}}),t._v(" "),t.isEditable?[e("Locale",{attrs:{"input-id":t.inputId,"locales-for-language":t.localesForLanguage,"other-locales":t.otherLocales,locale:t.locale},on:{"update:locale":function(e){t.locale=e}}})]:e("span",[t._v("\n\t\t"+t._s(t.t("settings","No locale set"))+"\n\t")])],2)}),[],!1,null,"84fca724",null).exports,kr={name:"EditProfileAnchorLink",components:{ChevronDownIcon:r(41622).default},props:{profileEnabled:{type:Boolean,required:!0}},computed:{disabled:function(){return!this.profileEnabled}}},Lr=r(64534),Dr={};Dr.styleTagTransform=T(),Dr.setAttributes=L(),Dr.insert=I().bind(null,"head"),Dr.domAPI=O(),Dr.insertStyleElement=R(),_()(Lr.Z,Dr),Lr.Z&&Lr.Z.locals&&Lr.Z.locals;var Rr=r(40001),Br={};Br.styleTagTransform=T(),Br.setAttributes=L(),Br.insert=I().bind(null,"head"),Br.domAPI=O(),Br.insertStyleElement=R(),_()(Rr.Z,Br),Rr.Z&&Rr.Z.locals&&Rr.Z.locals;var Tr=(0,V.Z)(kr,(function(){var t=this,e=t._self._c;return e("a",t._g({class:{disabled:t.disabled},attrs:{href:"#profile-visibility"}},t.$listeners),[e("ChevronDownIcon",{staticClass:"anchor-icon",attrs:{size:22}}),t._v("\n\t"+t._s(t.t("settings","Edit your Profile visibility"))+"\n")],1)}),[],!1,null,"1caba458",null).exports,Nr=r(20571);function Zr(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}var Mr={name:"ProfileCheckbox",components:{NcCheckboxRadioSwitch:r.n(Nr)()},props:{profileEnabled:{type:Boolean,required:!0}},data:function(){return{isProfileEnabled:this.profileEnabled,loading:!1}},methods:{saveEnableProfile:function(){var e,n=this;return(e=regeneratorRuntime.mark((function e(){var r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.loading=!0,e.prev=1,e.next=4,dt($.PROFILE_ENABLED,n.isProfileEnabled);case 4:i=e.sent,n.handleResponse({isProfileEnabled:n.isProfileEnabled,status:null===(r=i.ocs)||void 0===r||null===(a=r.meta)||void 0===a?void 0:a.status}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),n.handleResponse({errorMessage:t("settings","Unable to update profile enabled state"),error:e.t0});case 11:case"end":return e.stop()}}),e,null,[[1,8]])})),function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(t){Zr(i,r,a,o,s,"next",t)}function s(t){Zr(i,r,a,o,s,"throw",t)}o(void 0)}))})()},handleResponse:function(t){var e=t.isProfileEnabled,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?(0,p.j8)("settings:profile-enabled:updated",e):((0,u.x2)(r),At.error(r,a)),this.loading=!1}}},Ur=Mr,Fr=(0,V.Z)(Ur,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"checkbox-container"},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:t.isProfileEnabled,loading:t.loading},on:{"update:checked":[function(e){t.isProfileEnabled=e},t.saveEnableProfile]}},[t._v("\n\t\t"+t._s(t.t("settings","Enable Profile"))+"\n\t")])],1)}),[],!1,null,null,null).exports,zr={name:"ProfilePreviewCard",components:{NcAvatar:f()},props:{displayName:{type:String,required:!0},organisation:{type:String,required:!0},profileEnabled:{type:Boolean,required:!0},userId:{type:String,required:!0}},computed:{disabled:function(){return!this.profileEnabled},profilePageLink:function(){return this.profileEnabled?(0,c.generateUrl)("/u/{userId}",{userId:(0,i.ts)().uid}):null}}},Vr=r(80507),Hr={};Hr.styleTagTransform=T(),Hr.setAttributes=L(),Hr.insert=I().bind(null,"head"),Hr.domAPI=O(),Hr.insertStyleElement=R(),_()(Vr.Z,Hr),Vr.Z&&Vr.Z.locals&&Vr.Z.locals;var Gr=(0,V.Z)(zr,(function(){var t=this,e=t._self._c;return e("a",{staticClass:"preview-card",class:{disabled:t.disabled},attrs:{href:t.profilePageLink}},[e("NcAvatar",{staticClass:"preview-card__avatar",attrs:{user:t.userId,size:48,"show-user-status":!0,"show-user-status-compact":!1,"disable-menu":!0,"disable-tooltip":!0}}),t._v(" "),e("div",{staticClass:"preview-card__header"},[e("span",[t._v(t._s(t.displayName))])]),t._v(" "),e("div",{staticClass:"preview-card__footer"},[e("span",[t._v(t._s(t.organisation))])])],1)}),[],!1,null,"61586aa5",null).exports,qr=(0,o.j)("settings","personalInfoParameters",{}),Yr=qr.organisation.value,$r=qr.displayName.value,Wr=qr.profileEnabled,Kr=qr.userId,Qr={name:"ProfileSection",components:{EditProfileAnchorLink:Tr,HeaderBar:Ot,ProfileCheckbox:Fr,ProfilePreviewCard:Gr},data:function(){return{propertyReadable:W.PROFILE_ENABLED,organisation:Yr,displayName:$r,profileEnabled:Wr,userId:Kr}},mounted:function(){(0,p.Ld)("settings:display-name:updated",this.handleDisplayNameUpdate),(0,p.Ld)("settings:organisation:updated",this.handleOrganisationUpdate)},beforeDestroy:function(){(0,p.r1)("settings:display-name:updated",this.handleDisplayNameUpdate),(0,p.r1)("settings:organisation:updated",this.handleOrganisationUpdate)},methods:{handleDisplayNameUpdate:function(t){this.displayName=t},handleOrganisationUpdate:function(t){this.organisation=t}}},Xr=Qr,Jr=r(90552),ta={};ta.styleTagTransform=T(),ta.setAttributes=L(),ta.insert=I().bind(null,"head"),ta.domAPI=O(),ta.insertStyleElement=R(),_()(Jr.Z,ta),Jr.Z&&Jr.Z.locals&&Jr.Z.locals;var ea=(0,V.Z)(Xr,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{readable:t.propertyReadable}}),t._v(" "),e("ProfileCheckbox",{attrs:{"profile-enabled":t.profileEnabled},on:{"update:profileEnabled":function(e){t.profileEnabled=e},"update:profile-enabled":function(e){t.profileEnabled=e}}}),t._v(" "),e("ProfilePreviewCard",{attrs:{organisation:t.organisation,"display-name":t.displayName,"profile-enabled":t.profileEnabled,"user-id":t.userId}}),t._v(" "),e("EditProfileAnchorLink",{attrs:{"profile-enabled":t.profileEnabled}})],1)}),[],!1,null,"cf64d964",null).exports;function na(t){return na="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},na(t)}function ra(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function aa(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ra(Object(n),!0).forEach((function(e){ia(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ra(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function ia(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==na(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==na(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===na(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var oa=(0,o.j)("settings","personalInfoParameters",{}).organisation,sa={name:"OrganisationSection",components:{AccountPropertySection:me},data:function(){return{organisation:aa(aa({},oa),{},{readable:K[oa.name]})}}},la=(0,V.Z)(sa,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your organisation")}},"AccountPropertySection",t.organisation,!1,!0))}),[],!1,null,null,null).exports;function ca(t){return ca="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ca(t)}function ua(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function pa(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ua(Object(n),!0).forEach((function(e){da(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ua(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function da(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==ca(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==ca(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===ca(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var fa=(0,o.j)("settings","personalInfoParameters",{}).role,Aa={name:"RoleSection",components:{AccountPropertySection:me},data:function(){return{role:pa(pa({},fa),{},{readable:K[fa.name]})}}},ma=(0,V.Z)(Aa,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your role")}},"AccountPropertySection",t.role,!1,!0))}),[],!1,null,null,null).exports;function va(t){return va="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},va(t)}function ba(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ga(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ba(Object(n),!0).forEach((function(e){ya(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ba(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function ya(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==va(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==va(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===va(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var ha=(0,o.j)("settings","personalInfoParameters",{}).headline,Ca={name:"HeadlineSection",components:{AccountPropertySection:me},data:function(){return{headline:ga(ga({},ha),{},{readable:K[ha.name]})}}},xa=(0,V.Z)(Ca,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your headline")}},"AccountPropertySection",t.headline,!1,!0))}),[],!1,null,null,null).exports;function wa(t){return wa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wa(t)}function Ea(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Pa(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Ea(Object(n),!0).forEach((function(e){_a(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ea(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function _a(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==wa(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==wa(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===wa(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Sa=(0,o.j)("settings","personalInfoParameters",{}).biography,Oa={name:"BiographySection",components:{AccountPropertySection:me},data:function(){return{biography:Pa(Pa({},Sa),{},{readable:K[Sa.name]})}}},ja=(0,V.Z)(Oa,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your biography"),"multi-line":!0}},"AccountPropertySection",t.biography,!1,!0))}),[],!1,null,null,null).exports,Ia=r(36456),ka=r.n(Ia);function La(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}var Da,Ra=function(){var t,e=(t=regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("/profile/{userId}",{userId:r}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(a,{paramId:e,visibility:n});case 6:return o=t.sent,t.abrupt("return",o.data);case 8:case"end":return t.stop()}}),t)})),function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){La(i,r,a,o,s,"next",t)}function s(t){La(i,r,a,o,s,"throw",t)}o(void 0)}))});return function(t,n){return e.apply(this,arguments)}}();function Ba(t){return Ba="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ba(t)}function Ta(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==Ba(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==Ba(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===Ba(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Na=Object.freeze({SHOW:"show",SHOW_USERS_ONLY:"show_users_only",HIDE:"hide"}),Za=Object.freeze((Ta(Da={},Na.SHOW,{name:Na.SHOW,label:t("settings","Show to everyone")}),Ta(Da,Na.SHOW_USERS_ONLY,{name:Na.SHOW_USERS_ONLY,label:t("settings","Show to logged in users only")}),Ta(Da,Na.HIDE,{name:Na.HIDE,label:t("settings","Hide")}),Da));function Ma(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Ua(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Ma(i,r,a,o,s,"next",t)}function s(t){Ma(i,r,a,o,s,"throw",t)}o(void 0)}))}}var Fa=(0,o.j)("settings","personalInfoParameters",!1).profileEnabled,za={name:"VisibilityDropdown",components:{NcSelect:ka()},props:{paramId:{type:String,required:!0},displayId:{type:String,required:!0},visibility:{type:String,required:!0}},data:function(){return{initialVisibility:this.visibility,profileEnabled:Fa}},computed:{disabled:function(){return!this.profileEnabled},inputId:function(){return"profile-visibility-".concat(this.paramId)},visibilityObject:function(){return Za[this.visibility]},visibilityOptions:function(){return Object.values(Za)}},mounted:function(){(0,p.Ld)("settings:profile-enabled:updated",this.handleProfileEnabledUpdate)},beforeDestroy:function(){(0,p.r1)("settings:profile-enabled:updated",this.handleProfileEnabledUpdate)},methods:{onVisibilityChange:function(t){var e=this;return Ua(regeneratorRuntime.mark((function n(){var r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(null===t){n.next=6;break}if(r=t.name,e.$emit("update:visibility",r),""===r){n.next=6;break}return n.next=6,e.updateVisibility(r);case 6:case"end":return n.stop()}}),n)})))()},updateVisibility:function(e){var n=this;return Ua(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,Ra(n.paramId,e);case 3:o=r.sent,n.handleResponse({visibility:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update visibility of {displayId}",{displayId:n.displayId}),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},handleResponse:function(t){var e=t.visibility,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?this.initialVisibility=e:((0,u.x2)(r),At.error(r,a))},handleProfileEnabledUpdate:function(t){this.profileEnabled=t}}},Va=za,Ha=r(18315),Ga={};Ga.styleTagTransform=T(),Ga.setAttributes=L(),Ga.insert=I().bind(null,"head"),Ga.domAPI=O(),Ga.insertStyleElement=R(),_()(Ha.Z,Ga),Ha.Z&&Ha.Z.locals&&Ha.Z.locals;var qa=(0,V.Z)(Va,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"visibility-container",class:{disabled:t.disabled}},[e("label",{attrs:{for:t.inputId}},[t._v("\n\t\t"+t._s(t.displayId)+"\n\t")]),t._v(" "),e("NcSelect",{staticClass:"visibility-container__select",attrs:{"input-id":t.inputId,clearable:!1,options:t.visibilityOptions,value:t.visibilityObject},on:{"option:selected":t.onVisibilityChange}})],1)}),[],!1,null,"c4a4afde",null).exports;function Ya(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var $a=(0,o.j)("settings","profileParameters",{}).profileConfig,Wa=(0,o.j)("settings","personalInfoParameters",!1).profileEnabled,Ka=function(t,e){return t.appId===e.appId||"core"!==t.appId&&"core"!==e.appId?t.displayId.localeCompare(e.displayId):"core"===t.appId?1:-1},Qa={name:"ProfileVisibilitySection",components:{HeaderBar:Ot,VisibilityDropdown:qa},data:function(){return{heading:Q.PROFILE_VISIBILITY,profileEnabled:Wa,visibilityParams:Object.entries($a).map((function(t){var e,n,r=(n=2,function(t){if(Array.isArray(t))return t}(e=t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,a,i,o,s=[],l=!0,c=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(t){c=!0,a=t}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return s}}(e,n)||function(t,e){if(t){if("string"==typeof t)return Ya(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ya(t,e):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=r[0],i=r[1];return{id:a,appId:i.appId,displayId:i.displayId,visibility:i.visibility}})).sort(Ka),marginLeft:window.matchMedia("(min-width: 1600px)").matches?window.getComputedStyle(document.getElementById("vue-avatar-section")).getPropertyValue("width").trim():"0px"}},computed:{disabled:function(){return!this.profileEnabled},rows:function(){return Math.ceil(this.visibilityParams.length/2)}},mounted:function(){var t=this;(0,p.Ld)("settings:profile-enabled:updated",this.handleProfileEnabledUpdate),window.onresize=function(){t.marginLeft=window.matchMedia("(min-width: 1600px)").matches?window.getComputedStyle(document.getElementById("vue-avatar-section")).getPropertyValue("width").trim():"0px"}},beforeDestroy:function(){(0,p.r1)("settings:profile-enabled:updated",this.handleProfileEnabledUpdate)},methods:{handleProfileEnabledUpdate:function(t){this.profileEnabled=t}}},Xa=Qa,Ja=r(45386),ti={};ti.styleTagTransform=T(),ti.setAttributes=L(),ti.insert=I().bind(null,"head"),ti.domAPI=O(),ti.insertStyleElement=R(),_()(Ja.Z,ti),Ja.Z&&Ja.Z.locals&&Ja.Z.locals;var ei=(0,V.Z)(Xa,(function(){var t=this,e=t._self._c;return e("section",{style:{marginLeft:t.marginLeft},attrs:{id:"profile-visibility"}},[e("HeaderBar",{attrs:{"is-heading":!0,readable:t.heading}}),t._v(" "),e("em",{class:{disabled:t.disabled}},[t._v("\n\t\t"+t._s(t.t("settings",'The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to "Show to everyone" and scope is set to "Private", "Private" is respected.'))+"\n\t")]),t._v(" "),e("div",{staticClass:"visibility-dropdowns",style:{gridTemplateRows:"repeat(".concat(t.rows,", 44px)")}},t._l(t.visibilityParams,(function(n){return e("VisibilityDropdown",{key:n.id,attrs:{"param-id":n.id,"display-id":n.displayId,visibility:n.visibility},on:{"update:visibility":function(e){return t.$set(n,"visibility",e)}}})})),1)],1)}),[],!1,null,"a07dbf96",null).exports;r.nc=btoa((0,i.IH)());var ni=(0,o.j)("settings","profileEnabledGlobally",!0);a.ZP.mixin({methods:{t:s.Iu}});var ri=a.ZP.extend(Vt),ai=a.ZP.extend(re),ii=a.ZP.extend(we),oi=a.ZP.extend(rn),si=a.ZP.extend(An),li=a.ZP.extend(Cn),ci=a.ZP.extend(On),ui=a.ZP.extend(Bn),pi=a.ZP.extend(zn),di=a.ZP.extend(lr),fi=a.ZP.extend(Ir);if((new ri).$mount("#vue-avatar-section"),(new ai).$mount("#vue-details-section"),(new ii).$mount("#vue-displayname-section"),(new oi).$mount("#vue-email-section"),(new si).$mount("#vue-phone-section"),(new li).$mount("#vue-location-section"),(new ci).$mount("#vue-website-section"),(new ui).$mount("#vue-twitter-section"),(new pi).$mount("#vue-fediverse-section"),(new di).$mount("#vue-language-section"),(new fi).$mount("#vue-locale-section"),ni){var Ai=a.ZP.extend(ea),mi=a.ZP.extend(la),vi=a.ZP.extend(ma),bi=a.ZP.extend(xa),gi=a.ZP.extend(ja),yi=a.ZP.extend(ei);(new Ai).$mount("#vue-profile-section"),(new mi).$mount("#vue-organisation-section"),(new vi).$mount("#vue-role-section"),(new bi).$mount("#vue-headline-section"),(new gi).$mount("#vue-biography-section"),(new yi).$mount("#vue-profile-visibility-section")}},24025:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-04cca3b6]{grid-row:1/3}.avatar__container[data-v-04cca3b6]{margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px 0;width:300px}.avatar__container span[data-v-04cca3b6]{color:var(--color-text-lighter)}.avatar__preview[data-v-04cca3b6]{display:flex;justify-content:center;align-items:center;width:180px;height:180px}.avatar__buttons[data-v-04cca3b6]{display:flex;gap:0 10px}.avatar__cropper[data-v-04cca3b6]{width:300px;height:300px;overflow:hidden}.avatar__cropper-buttons[data-v-04cca3b6]{width:100%;display:flex;justify-content:space-between}.avatar__cropper[data-v-04cca3b6] .cropper-view-box{border-radius:50%}input[type=file][data-v-04cca3b6]{display:none}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/AvatarSection.vue"],names:[],mappings:"AACA,yBACC,YAAA,CAGA,oCACC,aAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CAEA,yCACC,+BAAA,CAIF,kCACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,YAAA,CAGD,kCACC,YAAA,CACA,UAAA,CAGD,kCACC,WAAA,CACA,YAAA,CACA,eAAA,CAEA,0CACC,UAAA,CACA,YAAA,CACA,6BAAA,CAGD,oDACC,iBAAA,CAKH,kCACC,YAAA",sourcesContent:['\nsection {\n\tgrid-row: 1/3;\n}\n.avatar {\n\t&__container {\n\t\tmargin: 0 auto;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tgap: 16px 0;\n\t\twidth: 300px;\n\n\t\tspan {\n\t\t\tcolor: var(--color-text-lighter);\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 180px;\n\t\theight: 180px;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\t}\n\n\t&__cropper {\n\t\twidth: 300px;\n\t\theight: 300px;\n\t\toverflow: hidden;\n\n\t\t&-buttons {\n\t\t\twidth: 100%;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\n\t\t&::v-deep .cropper-view-box {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n}\n\ninput[type="file"] {\n\tdisplay: none;\n}\n'],sourceRoot:""}]),e.Z=o},18118:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".details[data-v-1ab46e68]{display:flex;flex-direction:column;margin:10px 32px 10px 0;gap:16px 0;color:var(--color-text-lighter)}.details__groups[data-v-1ab46e68],.details__quota[data-v-1ab46e68]{display:flex;gap:0 10px}.details__groups-info[data-v-1ab46e68],.details__quota-info[data-v-1ab46e68]{display:flex;flex-direction:column;width:100%;gap:4px 0}.details__groups-list[data-v-1ab46e68],.details__quota-list[data-v-1ab46e68]{font-weight:bold}.details__groups[data-v-1ab46e68] .material-design-icon,.details__quota[data-v-1ab46e68] .material-design-icon{align-self:flex-start;margin-top:2px}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/DetailsSection.vue"],names:[],mappings:"AACA,0BACC,YAAA,CACA,qBAAA,CACA,uBAAA,CACA,UAAA,CACA,+BAAA,CAEA,mEAEC,YAAA,CACA,UAAA,CAEA,6EACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6EACC,gBAAA,CAGD,+GACC,qBAAA,CACA,cAAA",sourcesContent:["\n.details {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 10px 32px 10px 0;\n\tgap: 16px 0;\n\tcolor: var(--color-text-lighter);\n\n\t&__groups,\n\t&__quota {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\n\t\t&-info {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tgap: 4px 0;\n\t\t}\n\n\t\t&-list {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t&::v-deep .material-design-icon {\n\t\t\talign-self: flex-start;\n\t\t\tmargin-top: 2px;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},27314:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".email[data-v-367c6830]{display:grid;align-items:center}.email input[data-v-367c6830]{grid-area:1/1;width:100%}.email .email__actions-container[data-v-367c6830]{grid-area:1/1;justify-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px}.email .email__actions-container .email__actions[data-v-367c6830]{opacity:.4 !important}.email .email__actions-container .email__actions[data-v-367c6830]:hover,.email .email__actions-container .email__actions[data-v-367c6830]:focus,.email .email__actions-container .email__actions[data-v-367c6830]:active{opacity:.8 !important}.email .email__actions-container .email__actions[data-v-367c6830] button{height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}.email__helper-text-message[data-v-367c6830]{padding:4px 0;display:flex;align-items:center}.email__helper-text-message__icon[data-v-367c6830]{margin-right:8px;align-self:start;margin-top:4px}.email__helper-text-message--error[data-v-367c6830]{color:var(--color-error)}.fade-enter[data-v-367c6830],.fade-leave-to[data-v-367c6830]{opacity:0}.fade-enter-active[data-v-367c6830]{transition:opacity 200ms ease-out}.fade-leave-active[data-v-367c6830]{transition:opacity 300ms ease-out}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue"],names:[],mappings:"AACA,wBACC,YAAA,CACA,kBAAA,CAEA,8BACC,aAAA,CACA,UAAA,CAGD,kDACC,aAAA,CACA,qBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CAEA,kEACC,qBAAA,CAEA,yNAGC,qBAAA,CAGD,yEACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAKH,6CACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,mDACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,oDACC,wBAAA,CAKH,6DAEC,SAAA,CAGD,oCACC,iCAAA,CAGD,oCACC,iCAAA",sourcesContent:["\n.email {\n\tdisplay: grid;\n\talign-items: center;\n\n\tinput {\n\t\tgrid-area: 1 / 1;\n\t\twidth: 100%;\n\t}\n\n\t.email__actions-container {\n\t\tgrid-area: 1 / 1;\n\t\tjustify-self: flex-end;\n\t\theight: 30px;\n\n\t\tdisplay: flex;\n\t\tgap: 0 2px;\n\t\tmargin-right: 5px;\n\n\t\t.email__actions {\n\t\t\topacity: 0.4 !important;\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 0.8 !important;\n\t\t\t}\n\n\t\t\t&::v-deep button {\n\t\t\t\theight: 30px !important;\n\t\t\t\tmin-height: 30px !important;\n\t\t\t\twidth: 30px !important;\n\t\t\t\tmin-width: 30px !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-enter-active {\n\ttransition: opacity 200ms ease-out;\n}\n\n.fade-leave-active {\n\ttransition: opacity 300ms ease-out;\n}\n"],sourceRoot:""}]),e.Z=o},94337:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-3b8501a7]{padding:10px 10px}section[data-v-3b8501a7] button:disabled{cursor:default}section .additional-emails-label[data-v-3b8501a7]{display:block;margin-top:16px}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,kDACC,aAAA,CACA,eAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.additional-emails-label {\n\t\tdisplay: block;\n\t\tmargin-top: 16px;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},32880:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".language[data-v-6e196b5c]{display:grid}.language select[data-v-6e196b5c]{width:100%}.language a[data-v-6e196b5c]{color:var(--color-main-text);text-decoration:none;width:max-content}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue"],names:[],mappings:"AACA,2BACC,YAAA,CAEA,kCACC,UAAA,CAGD,6BACC,4BAAA,CACA,oBAAA,CACA,iBAAA",sourcesContent:["\n.language {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n\n\ta {\n\t\tcolor: var(--color-main-text);\n\t\ttext-decoration: none;\n\t\twidth: max-content;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},12531:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-92685b76]{padding:10px 10px}section[data-v-92685b76] button:disabled{cursor:default}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},47726:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".locale[data-v-ea9ccb08]{display:grid}.locale select[data-v-ea9ccb08]{width:100%}.example[data-v-ea9ccb08]{margin:10px 0;display:flex;gap:0 10px;color:var(--color-text-lighter)}.example[data-v-ea9ccb08] .material-design-icon{align-self:flex-start;margin-top:2px}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue"],names:[],mappings:"AACA,yBACC,YAAA,CAEA,gCACC,UAAA,CAIF,0BACC,aAAA,CACA,YAAA,CACA,UAAA,CACA,+BAAA,CAEA,gDACC,qBAAA,CACA,cAAA",sourcesContent:["\n.locale {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n}\n\n.example {\n\tmargin: 10px 0;\n\tdisplay: flex;\n\tgap: 0 10px;\n\tcolor: var(--color-text-lighter);\n\n\t&::v-deep .material-design-icon {\n\t\talign-self: flex-start;\n\t\tmargin-top: 2px;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},682:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-84fca724]{padding:10px 10px}section[data-v-84fca724] button:disabled{cursor:default}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},64534:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"html{scroll-behavior:smooth}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue"],names:[],mappings:"AACA,KACC,sBAAA,CAEA,mDAHD,KAIE,oBAAA,CAAA",sourcesContent:["\nhtml {\n\tscroll-behavior: smooth;\n\n\t@media screen and (prefers-reduced-motion: reduce) {\n\t\tscroll-behavior: auto;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},40001:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"a[data-v-1caba458]{display:block;height:44px;width:290px;line-height:44px;padding:0 16px;margin:14px auto;border-radius:var(--border-radius-pill);opacity:.4;background-color:rgba(0,0,0,0)}a .anchor-icon[data-v-1caba458]{display:inline-block;vertical-align:middle;margin-top:6px;margin-right:8px}a[data-v-1caba458]:hover,a[data-v-1caba458]:focus,a[data-v-1caba458]:active{opacity:.8;background-color:rgba(127,127,127,.25)}a.disabled[data-v-1caba458]{pointer-events:none}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue"],names:[],mappings:"AACA,mBACC,aAAA,CACA,WAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,uCAAA,CACA,UAAA,CACA,8BAAA,CAEA,gCACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,gBAAA,CAGD,4EAGC,UAAA,CACA,sCAAA,CAGD,4BACC,mBAAA",sourcesContent:["\na {\n\tdisplay: block;\n\theight: 44px;\n\twidth: 290px;\n\tline-height: 44px;\n\tpadding: 0 16px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-pill);\n\topacity: 0.4;\n\tbackground-color: transparent;\n\n\t.anchor-icon {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tmargin-top: 6px;\n\t\tmargin-right: 8px;\n\t}\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\topacity: 0.8;\n\t\tbackground-color: rgba(127, 127, 127, .25);\n\t}\n\n\t&.disabled {\n\t\tpointer-events: none;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},80507:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".preview-card[data-v-61586aa5]{display:flex;flex-direction:column;position:relative;width:290px;height:116px;margin:14px auto;border-radius:var(--border-radius-large);background-color:var(--color-main-background);font-weight:bold;box-shadow:0 2px 9px var(--color-box-shadow)}.preview-card[data-v-61586aa5]:hover,.preview-card[data-v-61586aa5]:focus,.preview-card[data-v-61586aa5]:active{box-shadow:0 2px 12px var(--color-box-shadow)}.preview-card[data-v-61586aa5]:focus-visible{outline:var(--color-main-text) solid 1px;outline-offset:3px}.preview-card.disabled[data-v-61586aa5]{filter:grayscale(1);opacity:.5;cursor:default;box-shadow:0 0 3px var(--color-box-shadow)}.preview-card.disabled *[data-v-61586aa5],.preview-card.disabled[data-v-61586aa5] *{cursor:default}.preview-card__avatar[data-v-61586aa5]{position:absolute !important;top:40px;left:18px;z-index:1}.preview-card__avatar[data-v-61586aa5]:not(.avatardiv--unknown){box-shadow:0 0 0 3px var(--color-main-background) !important}.preview-card__header[data-v-61586aa5],.preview-card__footer[data-v-61586aa5]{position:relative;width:auto}.preview-card__header span[data-v-61586aa5],.preview-card__footer span[data-v-61586aa5]{position:absolute;left:78px;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}@supports(-webkit-line-clamp: 2){.preview-card__header span[data-v-61586aa5],.preview-card__footer span[data-v-61586aa5]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.preview-card__header[data-v-61586aa5]{height:70px;border-radius:var(--border-radius-large) var(--border-radius-large) 0 0;background-color:var(--color-primary);background-image:var(--gradient-primary-background)}.preview-card__header span[data-v-61586aa5]{bottom:0;color:var(--color-primary-text);font-size:18px;font-weight:bold;margin:0 4px 8px 0}.preview-card__footer[data-v-61586aa5]{height:46px}.preview-card__footer span[data-v-61586aa5]{top:0;color:var(--color-text-maxcontrast);font-size:14px;font-weight:normal;margin:4px 4px 0 0;line-height:1.3}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue"],names:[],mappings:"AACA,+BACC,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,WAAA,CACA,YAAA,CACA,gBAAA,CACA,wCAAA,CACA,6CAAA,CACA,gBAAA,CACA,4CAAA,CAEA,gHAGC,6CAAA,CAGD,6CACC,wCAAA,CACA,kBAAA,CAGD,wCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,0CAAA,CAEA,oFAEC,cAAA,CAIF,uCAEC,4BAAA,CACA,QAAA,CACA,SAAA,CACA,SAAA,CAEA,gEACC,4DAAA,CAIF,8EAEC,iBAAA,CACA,UAAA,CAEA,wFACC,iBAAA,CACA,SAAA,CACA,eAAA,CACA,sBAAA,CACA,sBAAA,CAEA,iCAPD,wFAQE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,uCACC,WAAA,CACA,uEAAA,CACA,qCAAA,CACA,mDAAA,CAEA,4CACC,QAAA,CACA,+BAAA,CACA,cAAA,CACA,gBAAA,CACA,kBAAA,CAIF,uCACC,WAAA,CAEA,4CACC,KAAA,CACA,mCAAA,CACA,cAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA",sourcesContent:["\n.preview-card {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: relative;\n\twidth: 290px;\n\theight: 116px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: var(--color-main-background);\n\tfont-weight: bold;\n\tbox-shadow: 0 2px 9px var(--color-box-shadow);\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbox-shadow: 0 2px 12px var(--color-box-shadow);\n\t}\n\n\t&:focus-visible {\n\t\toutline: var(--color-main-text) solid 1px;\n\t\toutline-offset: 3px;\n\t}\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tbox-shadow: 0 0 3px var(--color-box-shadow);\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\t// Override Avatar component position to fix positioning on rerender\n\t\tposition: absolute !important;\n\t\ttop: 40px;\n\t\tleft: 18px;\n\t\tz-index: 1;\n\n\t\t&:not(.avatardiv--unknown) {\n\t\t\tbox-shadow: 0 0 0 3px var(--color-main-background) !important;\n\t\t}\n\t}\n\n\t&__header,\n\t&__footer {\n\t\tposition: relative;\n\t\twidth: auto;\n\n\t\tspan {\n\t\t\tposition: absolute;\n\t\t\tleft: 78px;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow-wrap: anywhere;\n\n\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__header {\n\t\theight: 70px;\n\t\tborder-radius: var(--border-radius-large) var(--border-radius-large) 0 0;\n\t\tbackground-color: var(--color-primary);\n\t\tbackground-image: var(--gradient-primary-background);\n\n\t\tspan {\n\t\t\tbottom: 0;\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tfont-size: 18px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: 0 4px 8px 0;\n\t\t}\n\t}\n\n\t&__footer {\n\t\theight: 46px;\n\n\t\tspan {\n\t\t\ttop: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: normal;\n\t\t\tmargin: 4px 4px 0 0;\n\t\t\tline-height: 1.3;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},90552:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-cf64d964]{padding:10px 10px}section[data-v-cf64d964] button:disabled{cursor:default}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},45386:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-a07dbf96]{padding:30px;max-width:900px;width:100%}section em[data-v-a07dbf96]{display:block;margin:16px 0}section em.disabled[data-v-a07dbf96]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}section em.disabled *[data-v-a07dbf96],section em.disabled[data-v-a07dbf96] *{cursor:default;pointer-events:none}section .visibility-dropdowns[data-v-a07dbf96]{display:grid;gap:10px 40px}@media(min-width: 1200px){section[data-v-a07dbf96]{width:940px}section .visibility-dropdowns[data-v-a07dbf96]{grid-auto-flow:column}}@media(max-width: 1200px){section[data-v-a07dbf96]{width:470px}}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue"],names:[],mappings:"AACA,yBACC,YAAA,CACA,eAAA,CACA,UAAA,CAEA,4BACC,aAAA,CACA,aAAA,CAEA,qCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,8EAEC,cAAA,CACA,mBAAA,CAKH,+CACC,YAAA,CACA,aAAA,CAGD,0BA5BD,yBA6BE,WAAA,CAEA,+CACC,qBAAA,CAAA,CAIF,0BApCD,yBAqCE,WAAA,CAAA",sourcesContent:["\nsection {\n\tpadding: 30px;\n\tmax-width: 900px;\n\twidth: 100%;\n\n\tem {\n\t\tdisplay: block;\n\t\tmargin: 16px 0;\n\n\t\t&.disabled {\n\t\t\tfilter: grayscale(1);\n\t\t\topacity: 0.5;\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\n\t\t\t& *,\n\t\t\t&::v-deep * {\n\t\t\t\tcursor: default;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t.visibility-dropdowns {\n\t\tdisplay: grid;\n\t\tgap: 10px 40px;\n\t}\n\n\t@media (min-width: 1200px) {\n\t\twidth: 940px;\n\n\t\t.visibility-dropdowns {\n\t\t\tgrid-auto-flow: column;\n\t\t}\n\t}\n\n\t@media (max-width: 1200px) {\n\t\twidth: 470px;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},18315:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".visibility-container[data-v-c4a4afde]{display:flex;width:max-content}.visibility-container.disabled[data-v-c4a4afde]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}.visibility-container.disabled *[data-v-c4a4afde],.visibility-container.disabled[data-v-c4a4afde] *{cursor:default;pointer-events:none}.visibility-container label[data-v-c4a4afde]{color:var(--color-text-lighter);width:150px;line-height:50px}.visibility-container__select[data-v-c4a4afde]{width:270px;max-width:40vw}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue"],names:[],mappings:"AACA,uCACC,YAAA,CACA,iBAAA,CAEA,gDACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,oGAEC,cAAA,CACA,mBAAA,CAIF,6CACC,+BAAA,CACA,WAAA,CACA,gBAAA,CAGD,+CACC,WAAA,CACA,cAAA",sourcesContent:["\n.visibility-container {\n\tdisplay: flex;\n\twidth: max-content;\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tpointer-events: none;\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n\n\tlabel {\n\t\tcolor: var(--color-text-lighter);\n\t\twidth: 150px;\n\t\tline-height: 50px;\n\t}\n\n\t&__select {\n\t\twidth: 270px;\n\t\tmax-width: 40vw;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},6067:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-4ef6bbf8]{padding:10px 10px}section[data-v-4ef6bbf8] button:disabled{cursor:default}section .property[data-v-4ef6bbf8]{display:grid;align-items:center}section .property textarea[data-v-4ef6bbf8]{resize:vertical;grid-area:1/1;width:100%}section .property input[data-v-4ef6bbf8]{grid-area:1/1;width:100%}section .property .property__actions-container[data-v-4ef6bbf8]{grid-area:1/1;justify-self:flex-end;align-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px;margin-bottom:5px}section .property__helper-text-message[data-v-4ef6bbf8]{padding:4px 0;display:flex;align-items:center}section .property__helper-text-message__icon[data-v-4ef6bbf8]{margin-right:8px;align-self:start;margin-top:4px}section .property__helper-text-message--error[data-v-4ef6bbf8]{color:var(--color-error)}section .fade-enter[data-v-4ef6bbf8],section .fade-leave-to[data-v-4ef6bbf8]{opacity:0}section .fade-enter-active[data-v-4ef6bbf8]{transition:opacity 200ms ease-out}section .fade-leave-active[data-v-4ef6bbf8]{transition:opacity 300ms ease-out}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,mCACC,YAAA,CACA,kBAAA,CAEA,4CACC,eAAA,CACA,aAAA,CACA,UAAA,CAGD,yCACC,aAAA,CACA,UAAA,CAGD,gEACC,aAAA,CACA,qBAAA,CACA,mBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CACA,iBAAA,CAIF,wDACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,8DACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,+DACC,wBAAA,CAIF,6EAEC,SAAA,CAGD,4CACC,iCAAA,CAGD,4CACC,iCAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.property {\n\t\tdisplay: grid;\n\t\talign-items: center;\n\n\t\ttextarea {\n\t\t\tresize: vertical;\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\tinput {\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.property__actions-container {\n\t\t\tgrid-area: 1 / 1;\n\t\t\tjustify-self: flex-end;\n\t\t\talign-self: flex-end;\n\t\t\theight: 30px;\n\n\t\t\tdisplay: flex;\n\t\t\tgap: 0 2px;\n\t\t\tmargin-right: 5px;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n\n\t.property__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n\n\t.fade-enter,\n\t.fade-leave-to {\n\t\topacity: 0;\n\t}\n\n\t.fade-enter-active {\n\t\ttransition: opacity 200ms ease-out;\n\t}\n\n\t.fade-leave-active {\n\t\ttransition: opacity 300ms ease-out;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},58218:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".federation-actions[data-v-05031b91],.federation-actions--additional[data-v-05031b91]{opacity:.4 !important}.federation-actions[data-v-05031b91]:hover,.federation-actions[data-v-05031b91]:focus,.federation-actions[data-v-05031b91]:active,.federation-actions--additional[data-v-05031b91]:hover,.federation-actions--additional[data-v-05031b91]:focus,.federation-actions--additional[data-v-05031b91]:active{opacity:.8 !important}.federation-actions--additional[data-v-05031b91] button{padding-bottom:7px;height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue"],names:[],mappings:"AACA,sFAEC,qBAAA,CAEA,wSAGC,qBAAA,CAKD,wDAEC,kBAAA,CACA,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA",sourcesContent:["\n.federation-actions,\n.federation-actions--additional {\n\topacity: 0.4 !important;\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\topacity: 0.8 !important;\n\t}\n}\n\n.federation-actions--additional {\n\t&::v-deep button {\n\t\t// TODO remove this hack\n\t\tpadding-bottom: 7px;\n\t\theight: 30px !important;\n\t\tmin-height: 30px !important;\n\t\twidth: 30px !important;\n\t\tmin-width: 30px !important;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},28561:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".federation-actions__btn[data-v-d426ed04] p{width:150px !important;padding:8px 0 !important;color:var(--color-main-text) !important;font-size:12.8px !important;line-height:1.5em !important}.federation-actions__btn--active[data-v-d426ed04]{background-color:var(--color-primary-light) !important;box-shadow:inset 2px 0 var(--color-primary) !important}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue"],names:[],mappings:"AAEC,4CACC,sBAAA,CACA,wBAAA,CACA,uCAAA,CACA,2BAAA,CACA,4BAAA,CAIF,kDACC,sDAAA,CACA,sDAAA",sourcesContent:["\n.federation-actions__btn {\n\t&::v-deep p {\n\t\twidth: 150px !important;\n\t\tpadding: 8px 0 !important;\n\t\tcolor: var(--color-main-text) !important;\n\t\tfont-size: 12.8px !important;\n\t\tline-height: 1.5em !important;\n\t}\n}\n\n.federation-actions__btn--active {\n\tbackground-color: var(--color-primary-light) !important;\n\tbox-shadow: inset 2px 0 var(--color-primary) !important;\n}\n"],sourceRoot:""}]),e.Z=o},90564:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".headerbar-label[data-v-b43fcc0c]{font-weight:normal;display:inline-flex;width:100%;margin:12px 0 0 0;gap:8px;align-items:center;font-size:16px;color:var(--color-text-light)}.headerbar-label.profile-property[data-v-b43fcc0c]{height:38px}.headerbar-label.setting-property[data-v-b43fcc0c]{height:44px}.headerbar-label label[data-v-b43fcc0c]{cursor:pointer}.federation-control[data-v-b43fcc0c]{margin:0}.button-vue[data-v-b43fcc0c]{margin:0 0 0 auto !important}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue"],names:[],mappings:"AACA,kCACC,kBAAA,CACA,mBAAA,CACA,UAAA,CACA,iBAAA,CACA,OAAA,CACA,kBAAA,CACA,cAAA,CACA,6BAAA,CAEA,mDACC,WAAA,CAGD,mDACC,WAAA,CAGD,wCACC,cAAA,CAIF,qCACC,QAAA,CAGD,6BACC,4BAAA",sourcesContent:["\n.headerbar-label {\n\tfont-weight: normal;\n\tdisplay: inline-flex;\n\twidth: 100%;\n\tmargin: 12px 0 0 0;\n\tgap: 8px;\n\talign-items: center;\n\tfont-size: 16px;\n\tcolor: var(--color-text-light);\n\n\t&.profile-property {\n\t\theight: 38px;\n\t}\n\n\t&.setting-property {\n\t\theight: 44px;\n\t}\n\n\tlabel {\n\t\tcursor: pointer;\n\t}\n}\n\n.federation-control {\n\tmargin: 0;\n}\n\n.button-vue {\n\tmargin: 0 0 0 auto !important;\n}\n"],sourceRoot:""}]),e.Z=o},46700:function(t,e,n){var r={"./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 a(t){var e=i(t);return n(e)}function i(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}a.keys=function(){return Object.keys(r)},a.resolve=i,t.exports=a,a.id=46700},8738:function(t){"use strict";t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC"},81490:function(t){"use strict";t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo="},90888:function(t){"use strict";t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo="}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}a.m=n,e=[],a.O=function(t,n,r,i){if(!n){var o=1/0;for(u=0;u<e.length;u++){n=e[u][0],r=e[u][1],i=e[u][2];for(var s=!0,l=0;l<n.length;l++)(!1&i||o>=i)&&Object.keys(a.O).every((function(t){return a.O[t](n[l])}))?n.splice(l--,1):(s=!1,i<o&&(o=i));if(s){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}i=i||0;for(var u=e.length;u>0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,r,i]},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,{a:e}),e},a.d=function(t,e){for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},a.j=4418,function(){a.b=document.baseURI||self.location.href;var t={4418:0};a.O.j=function(e){return 0===t[e]};var e=function(e,n){var r,i,o=n[0],s=n[1],l=n[2],c=0;if(o.some((function(e){return 0!==t[e]}))){for(r in s)a.o(s,r)&&(a.m[r]=s[r]);if(l)var u=l(a)}for(e&&e(n);c<o.length;c++)i=o[c],a.o(t,i)&&t[i]&&t[i][0](),t[i]=0;return a.O(u)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))}(),a.nc=void 0;var i=a.O(void 0,[7874],(function(){return a(24185)}));i=a.O(i)}();
-//# sourceMappingURL=settings-vue-settings-personal-info.js.map?v=6518bf4f93cb5f9e8289 \ No newline at end of file
+!function(){var e,n={30485:function(e,n,r){"use strict";var a=r(20144),i=r(45994),o=r(79954),s=r(31352),l=(r(36144),r(4820)),c=r(79753),u=r(64024),p=r(78595),d=r(75925),f=r.n(d),A=r(10861),m=r.n(A),v=r(17652),b=(r(74063),r(75762)),g=r(34829),y=r(57612),h=r(61149),C=r(12945),x=r.n(C),w=r(45400),E={name:"FederationControlAction",components:{NcActionButton:r.n(w)()},props:{activeScope:{type:String,required:!0},displayName:{type:String,required:!0},handleScopeChange:{type:Function,default:function(){}},iconClass:{type:String,required:!0},isSupportedScope:{type:Boolean,required:!0},name:{type:String,required:!0},tooltipDisabled:{type:String,default:""},tooltip:{type:String,required:!0}},methods:{updateScope:function(){this.handleScopeChange(this.name)}}},P=r(93379),_=r.n(P),S=r(7795),O=r.n(S),j=r(90569),I=r.n(j),k=r(3565),L=r.n(k),D=r(19216),R=r.n(D),B=r(44589),T=r.n(B),N=r(28561),Z={};Z.styleTagTransform=T(),Z.setAttributes=L(),Z.insert=I().bind(null,"head"),Z.domAPI=O(),Z.insertStyleElement=R(),_()(N.Z,Z),N.Z&&N.Z.locals&&N.Z.locals;var M,U,F,z,V=r(51900),H=(0,V.Z)(E,(function(){var t=this;return(0,t._self._c)("NcActionButton",{staticClass:"federation-actions__btn",class:{"federation-actions__btn--active":t.activeScope===t.name},attrs:{"aria-label":t.isSupportedScope?t.tooltip:t.tooltipDisabled,"close-after-click":!0,disabled:!t.isSupportedScope,icon:t.iconClass,title:t.isSupportedScope?t.tooltip:t.tooltipDisabled},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.updateScope.apply(null,arguments)}}},[t._v("\n\t"+t._s(t.isSupportedScope?t.tooltip:t.tooltipDisabled)+"\n")])}),[],!1,null,"d426ed04",null),G=H.exports;function q(t){return q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},q(t)}function Y(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==q(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==q(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===q(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var $=Object.freeze({ADDRESS:"address",AVATAR:"avatar",BIOGRAPHY:"biography",DISPLAYNAME:"displayname",EMAIL_COLLECTION:"additional_mail",EMAIL:"email",HEADLINE:"headline",NOTIFICATION_EMAIL:"notify_email",FEDIVERSE:"fediverse",ORGANISATION:"organisation",PHONE:"phone",PROFILE_ENABLED:"profile_enabled",ROLE:"role",TWITTER:"twitter",WEBSITE:"website"}),W=Object.freeze({ADDRESS:(0,s.Iu)("settings","Location"),AVATAR:(0,s.Iu)("settings","Profile picture"),BIOGRAPHY:(0,s.Iu)("settings","About"),DISPLAYNAME:(0,s.Iu)("settings","Full name"),EMAIL_COLLECTION:(0,s.Iu)("settings","Additional email"),EMAIL:(0,s.Iu)("settings","Email"),HEADLINE:(0,s.Iu)("settings","Headline"),ORGANISATION:(0,s.Iu)("settings","Organisation"),PHONE:(0,s.Iu)("settings","Phone number"),PROFILE_ENABLED:(0,s.Iu)("settings","Profile"),ROLE:(0,s.Iu)("settings","Role"),TWITTER:(0,s.Iu)("settings","Twitter"),FEDIVERSE:(0,s.Iu)("settings","Fediverse (e.g. Mastodon)"),WEBSITE:(0,s.Iu)("settings","Website")}),K=Object.freeze((Y(M={},$.ADDRESS,W.ADDRESS),Y(M,$.AVATAR,W.AVATAR),Y(M,$.BIOGRAPHY,W.BIOGRAPHY),Y(M,$.DISPLAYNAME,W.DISPLAYNAME),Y(M,$.EMAIL_COLLECTION,W.EMAIL_COLLECTION),Y(M,$.EMAIL,W.EMAIL),Y(M,$.HEADLINE,W.HEADLINE),Y(M,$.ORGANISATION,W.ORGANISATION),Y(M,$.PHONE,W.PHONE),Y(M,$.PROFILE_ENABLED,W.PROFILE_ENABLED),Y(M,$.ROLE,W.ROLE),Y(M,$.TWITTER,W.TWITTER),Y(M,$.FEDIVERSE,W.FEDIVERSE),Y(M,$.WEBSITE,W.WEBSITE),M)),Q=Object.freeze({PROFILE_VISIBILITY:(0,s.Iu)("settings","Profile visibility")}),X=Object.freeze((Y(U={},W.ADDRESS,$.ADDRESS),Y(U,W.AVATAR,$.AVATAR),Y(U,W.BIOGRAPHY,$.BIOGRAPHY),Y(U,W.DISPLAYNAME,$.DISPLAYNAME),Y(U,W.EMAIL_COLLECTION,$.EMAIL_COLLECTION),Y(U,W.EMAIL,$.EMAIL),Y(U,W.HEADLINE,$.HEADLINE),Y(U,W.ORGANISATION,$.ORGANISATION),Y(U,W.PHONE,$.PHONE),Y(U,W.PROFILE_ENABLED,$.PROFILE_ENABLED),Y(U,W.ROLE,$.ROLE),Y(U,W.TWITTER,$.TWITTER),Y(U,W.FEDIVERSE,$.FEDIVERSE),Y(U,W.WEBSITE,$.WEBSITE),U)),J=Object.freeze({LANGUAGE:"language",LOCALE:"locale"}),tt=Object.freeze({LANGUAGE:(0,s.Iu)("settings","Language"),LOCALE:(0,s.Iu)("settings","Locale")}),et=Object.freeze({PRIVATE:"v2-private",LOCAL:"v2-local",FEDERATED:"v2-federated",PUBLISHED:"v2-published"}),nt=Object.freeze((Y(F={},W.ADDRESS,[et.LOCAL,et.PRIVATE]),Y(F,W.AVATAR,[et.LOCAL,et.PRIVATE]),Y(F,W.BIOGRAPHY,[et.LOCAL,et.PRIVATE]),Y(F,W.DISPLAYNAME,[et.LOCAL]),Y(F,W.EMAIL_COLLECTION,[et.LOCAL]),Y(F,W.EMAIL,[et.LOCAL]),Y(F,W.HEADLINE,[et.LOCAL,et.PRIVATE]),Y(F,W.ORGANISATION,[et.LOCAL,et.PRIVATE]),Y(F,W.PHONE,[et.LOCAL,et.PRIVATE]),Y(F,W.PROFILE_ENABLED,[et.LOCAL,et.PRIVATE]),Y(F,W.ROLE,[et.LOCAL,et.PRIVATE]),Y(F,W.TWITTER,[et.LOCAL,et.PRIVATE]),Y(F,W.FEDIVERSE,[et.LOCAL,et.PRIVATE]),Y(F,W.WEBSITE,[et.LOCAL,et.PRIVATE]),F)),rt=Object.freeze([W.BIOGRAPHY,W.HEADLINE,W.ORGANISATION,W.ROLE]),at="Scope",it=Object.freeze((Y(z={},et.PRIVATE,{name:et.PRIVATE,displayName:(0,s.Iu)("settings","Private"),tooltip:(0,s.Iu)("settings","Only visible to people matched via phone number integration through Talk on mobile"),tooltipDisabled:(0,s.Iu)("settings","Not available as this property is required for core functionality including file sharing and calendar invitations"),iconClass:"icon-phone"}),Y(z,et.LOCAL,{name:et.LOCAL,displayName:(0,s.Iu)("settings","Local"),tooltip:(0,s.Iu)("settings","Only visible to people on this instance and guests"),iconClass:"icon-password"}),Y(z,et.FEDERATED,{name:et.FEDERATED,displayName:(0,s.Iu)("settings","Federated"),tooltip:(0,s.Iu)("settings","Only synchronize to trusted servers"),tooltipDisabled:(0,s.Iu)("settings","Not available as federation has been disabled for your account, contact your system administrator if you have any questions"),iconClass:"icon-contacts-dark"}),Y(z,et.PUBLISHED,{name:et.PUBLISHED,displayName:(0,s.Iu)("settings","Published"),tooltip:(0,s.Iu)("settings","Synchronize to trusted servers and the global and public address book"),tooltipDisabled:(0,s.Iu)("settings","Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions"),iconClass:"icon-link"}),z)),ot=et.LOCAL,st=Object.freeze({NOT_VERIFIED:0,VERIFICATION_IN_PROGRESS:1,VERIFIED:2}),lt=/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/i,ct=r(10128);function ut(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function pt(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){ut(i,r,a,o,s,"next",t)}function s(t){ut(i,r,a,o,s,"throw",t)}o(void 0)}))}}r(65509);var dt=function(){var t=pt(regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return"boolean"==typeof n&&(n=n?"1":"0"),r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:r}),t.next=5,(0,ct.confirmPassword)();case 5:return t.next=7,l.default.put(a,{key:e,value:n});case 7:return o=t.sent,t.abrupt("return",o.data);case 9:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),ft=function(){var t=pt(regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:r}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(a,{key:"".concat(e).concat(at),value:n});case 6:return o=t.sent,t.abrupt("return",o.data);case 8:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),At=(0,r(17499).IY)().setApp("settings").detectUser().build(),mt=function(t,e){var n,r="";e&&(r+=e),429===(null===(n=t.response)||void 0===n?void 0:n.status)&&(r&&(r+="\n"),r+=(0,s.Iu)("settings","There were too many requests from your network. Retry later or contact your administrator if this is an error.")),(0,u.x2)(r),At.error(r||(0,s.Iu)("Error"),t)};function vt(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function bt(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){vt(i,r,a,o,s,"next",t)}function s(t){vt(i,r,a,o,s,"throw",t)}o(void 0)}))}}var gt=(0,o.j)("settings","accountParameters",{}),yt=gt.federationEnabled,ht=gt.lookupServerUploadEnabled,Ct={name:"FederationControl",components:{NcActions:x(),FederationControlAction:G},props:{readable:{type:String,required:!0,validator:function(t){return Object.values(W).includes(t)||Object.values(tt).includes(t)||t===Q.PROFILE_VISIBILITY}},additional:{type:Boolean,default:!1},additionalValue:{type:String,default:""},disabled:{type:Boolean,default:!1},handleAdditionalScopeChange:{type:Function,default:null},scope:{type:String,required:!0}},data:function(){return{readableLowerCase:this.readable.toLocaleLowerCase(),initialScope:this.scope}},computed:{ariaLabel:function(){return t("settings","Change scope level of {property}, current scope is {scope}",{property:this.readableLowerCase,scope:this.scopeDisplayNameLowerCase})},scopeDisplayNameLowerCase:function(){return it[this.scope].displayName.toLocaleLowerCase()},scopeIcon:function(){return it[this.scope].iconClass},federationScopes:function(){return Object.values(it)},supportedScopes:function(){var t=nt[this.readable];return rt.includes(this.readable)||(yt&&t.push(et.FEDERATED),ht&&t.push(et.PUBLISHED)),t}},methods:{changeScope:function(t){var e=this;return bt(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(e.$emit("update:scope",t),e.additional){n.next=6;break}return n.next=4,e.updatePrimaryScope(t);case 4:n.next=8;break;case 6:return n.next=8,e.updateAdditionalScope(t);case 8:case"end":return n.stop()}}),n)})))()},updatePrimaryScope:function(e){var n=this;return bt(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,ft(X[n.readable],e);case 3:o=r.sent,n.handleResponse({scope:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update federation scope of the primary {property}",{property:n.readableLowerCase}),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},updateAdditionalScope:function(e){var n=this;return bt(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,n.handleAdditionalScopeChange(n.additionalValue,e);case 3:o=r.sent,n.handleResponse({scope:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update federation scope of additional {property}",{property:n.readableLowerCase}),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},handleResponse:function(t){var e=t.scope,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?this.initialScope=e:(this.$emit("update:scope",this.initialScope),mt(a,r))}}},xt=r(14036),wt={};wt.styleTagTransform=T(),wt.setAttributes=L(),wt.insert=I().bind(null,"head"),wt.domAPI=O(),wt.insertStyleElement=R(),_()(xt.Z,wt),xt.Z&&xt.Z.locals&&xt.Z.locals;var Et=(0,V.Z)(Ct,(function(){var t=this,e=t._self._c;return e("NcActions",{class:{"federation-actions":!t.additional,"federation-actions--additional":t.additional},attrs:{"aria-label":t.ariaLabel,"default-icon":t.scopeIcon,disabled:t.disabled}},t._l(t.federationScopes,(function(n){return e("FederationControlAction",{key:n.name,attrs:{"active-scope":t.scope,"display-name":n.displayName,"handle-scope-change":t.changeScope,"icon-class":n.iconClass,"is-supported-scope":t.supportedScopes.includes(n.name),name:n.name,"tooltip-disabled":n.tooltipDisabled,tooltip:n.tooltip,"aria-label":n.tooltip}})})),1)}),[],!1,null,"4ea07669",null).exports,Pt={name:"HeaderBar",components:{FederationControl:Et,NcButton:m(),Plus:h.Z},props:{scope:{type:String,default:null},readable:{type:String,required:!0},inputId:{type:String,default:null},isEditable:{type:Boolean,default:!0},isMultiValueSupported:{type:Boolean,default:!1},isValidSection:{type:Boolean,default:!0},isHeading:{type:Boolean,default:!1}},data:function(){return{localScope:this.scope}},computed:{isProfileProperty:function(){return this.readable===W.PROFILE_ENABLED},isSettingProperty:function(){return!Object.values(W).includes(this.readable)&&!Object.values(Q).includes(this.readable)}},methods:{onAddAdditional:function(){this.$emit("add-additional")},onScopeChange:function(t){this.$emit("update:scope",t)}}},_t=r(90564),St={};St.styleTagTransform=T(),St.setAttributes=L(),St.insert=I().bind(null,"head"),St.domAPI=O(),St.insertStyleElement=R(),_()(_t.Z,St),_t.Z&&_t.Z.locals&&_t.Z.locals;var Ot=(0,V.Z)(Pt,(function(){var t=this,e=t._self._c;return e(t.isHeading?"h3":"div",{tag:"component",staticClass:"headerbar-label",class:{"setting-property":t.isSettingProperty,"profile-property":t.isProfileProperty}},[t.isHeading?e("span",[t._v("\n\t\t"+t._s(t.readable)+"\n\t")]):e("label",{attrs:{for:t.inputId}},[t._v("\n\t\t"+t._s(t.readable)+"\n\t")]),t._v(" "),t.scope?[e("FederationControl",{staticClass:"federation-control",attrs:{readable:t.readable,scope:t.localScope},on:{"update:scope":[function(e){t.localScope=e},t.onScopeChange]}})]:t._e(),t._v(" "),t.isEditable&&t.isMultiValueSupported?[e("NcButton",{attrs:{type:"tertiary",disabled:!t.isValidSection,"aria-label":t.t("settings","Add additional email")},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.onAddAdditional.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Plus",{attrs:{size:20}})]},proxy:!0}],null,!1,32235154)},[t._v("\n\t\t\t"+t._s(t.t("settings","Add"))+"\n\t\t")])]:t._e()],2)}),[],!1,null,"b43fcc0c",null),jt=Ot.exports;function It(t){return It="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},It(t)}function kt(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Lt(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){kt(i,r,a,o,s,"next",t)}function s(t){kt(i,r,a,o,s,"throw",t)}o(void 0)}))}}function Dt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Rt(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Dt(Object(n),!0).forEach((function(e){Bt(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Dt(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Bt(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==It(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==It(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===It(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Tt=(0,o.j)("settings","personalInfoParameters",{}).avatar,Nt=(0,o.j)("settings","accountParameters",{}).avatarChangeSupported,Zt=["image/png","image/jpeg"],Mt=(0,u.fn)(t("settings","Choose your profile picture")).setMultiSelect(!1).setMimeTypeFilter(Zt).setModal(!0).setType(1).allowDirectories(!1).build(),Ut={name:"AvatarSection",components:{Delete:y.Z,Folder:g.default,HeaderBar:jt,NcAvatar:f(),NcButton:m(),Upload:b.Z,VueCropper:v.Z},data:function(){return{avatar:Rt(Rt({},Tt),{},{readable:K[Tt.name]}),avatarChangeSupported:Nt,showCropper:!1,loading:!1,userId:(0,i.ts)().uid,displayName:(0,i.ts)().displayName,version:oc_userconfig.avatar.version,isGenerated:oc_userconfig.avatar.generated,validMimeTypes:Zt,cropperOptions:{aspectRatio:1,viewMode:1,guides:!1,center:!1,highlight:!1,autoCropArea:1,minContainerWidth:300,minContainerHeight:300}}},computed:{inputId:function(){return"account-property-".concat(this.avatar.name)}},created:function(){(0,p.Ld)("settings:display-name:updated",this.handleDisplayNameUpdate)},beforeDestroy:function(){(0,p.r1)("settings:display-name:updated",this.handleDisplayNameUpdate)},methods:{activateLocalFilePicker:function(){this.$refs.input.value=null,this.$refs.input.click()},onChange:function(e){var n=this;this.loading=!0;var r=e.target.files[0];if(!this.validMimeTypes.includes(r.type))return(0,u.x2)(t("settings","Please select a valid png or jpg file")),void this.cancel();var a=new FileReader;a.onload=function(t){n.$refs.cropper.replace(t.target.result),n.showCropper=!0},a.readAsDataURL(r)},openFilePicker:function(){var e=this;return Lt(regeneratorRuntime.mark((function n(){var r,a,i,o;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Mt.pick();case 2:return r=n.sent,e.loading=!0,n.prev=4,n.next=7,l.default.post((0,c.generateUrl)("/avatar"),{path:r});case 7:a=n.sent,"success"===(i=a.data).status?e.handleAvatarUpdate(!1):"notsquare"===i.data?(o=(0,c.generateUrl)("/avatar/tmp")+"?requesttoken="+encodeURIComponent(OC.requestToken)+"#"+Math.floor(1e3*Math.random()),e.$refs.cropper.replace(o),e.showCropper=!0):((0,u.x2)(i.data.message),e.cancel()),n.next=16;break;case 12:n.prev=12,n.t0=n.catch(4),(0,u.x2)(t("settings","Error setting profile picture")),e.cancel();case 16:case"end":return n.stop()}}),n,null,[[4,12]])})))()},saveAvatar:function(){var e=this;this.showCropper=!1,this.loading=!0,this.$refs.cropper.getCroppedCanvas().toBlob(function(){var n=Lt(regeneratorRuntime.mark((function n(r){var a;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(null!==r){n.next=4;break}return(0,u.x2)(t("settings","Error cropping profile picture")),e.cancel(),n.abrupt("return");case 4:return(a=new FormData).append("files[]",r),n.prev=6,n.next=9,l.default.post((0,c.generateUrl)("/avatar"),a);case 9:e.handleAvatarUpdate(!1),n.next=16;break;case 12:n.prev=12,n.t0=n.catch(6),(0,u.x2)(t("settings","Error saving profile picture")),e.handleAvatarUpdate(e.isGenerated);case 16:case"end":return n.stop()}}),n,null,[[6,12]])})));return function(t){return n.apply(this,arguments)}}())},removeAvatar:function(){var e=this;return Lt(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e.loading=!0,n.prev=1,n.next=4,l.default.delete((0,c.generateUrl)("/avatar"));case 4:e.handleAvatarUpdate(!0),n.next=11;break;case 7:n.prev=7,n.t0=n.catch(1),(0,u.x2)(t("settings","Error removing profile picture")),e.handleAvatarUpdate(e.isGenerated);case 11:case"end":return n.stop()}}),n,null,[[1,7]])})))()},cancel:function(){this.showCropper=!1,this.loading=!1},handleAvatarUpdate:function(t){this.version=oc_userconfig.avatar.version=Date.now(),this.isGenerated=oc_userconfig.avatar.generated=t,this.loading=!1,(0,p.j8)("settings:avatar:updated",oc_userconfig.avatar.version)},handleDisplayNameUpdate:function(){this.version=oc_userconfig.avatar.version}}},Ft=Ut,zt=r(24025),Vt={};Vt.styleTagTransform=T(),Vt.setAttributes=L(),Vt.insert=I().bind(null,"head"),Vt.domAPI=O(),Vt.insertStyleElement=R(),_()(zt.Z,Vt),zt.Z&&zt.Z.locals&&zt.Z.locals;var Ht=(0,V.Z)(Ft,(function(){var t=this,e=t._self._c;return e("section",{attrs:{id:"vue-avatar-section"}},[e("h3",{staticClass:"hidden-visually"},[t._v(" "+t._s(t.t("settings","Your profile information"))+" ")]),t._v(" "),e("HeaderBar",{attrs:{"input-id":t.avatarChangeSupported?t.inputId:null,readable:t.avatar.readable,scope:t.avatar.scope},on:{"update:scope":function(e){return t.$set(t.avatar,"scope",e)}}}),t._v(" "),t.showCropper?t._e():e("div",{staticClass:"avatar__container"},[e("div",{staticClass:"avatar__preview"},[t.loading?e("div",{staticClass:"icon-loading"}):e("NcAvatar",{key:t.version,attrs:{user:t.userId,"aria-label":t.t("settings","Your profile picture"),"disabled-menu":!0,"disabled-tooltip":!0,"show-user-status":!1,size:180}})],1),t._v(" "),t.avatarChangeSupported?[e("div",{staticClass:"avatar__buttons"},[e("NcButton",{attrs:{"aria-label":t.t("settings","Upload profile picture")},on:{click:t.activateLocalFilePicker},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Upload",{attrs:{size:20}})]},proxy:!0}],null,!1,1329850251)}),t._v(" "),e("NcButton",{attrs:{"aria-label":t.t("settings","Choose profile picture from Files")},on:{click:t.openFilePicker},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Folder",{attrs:{size:20}})]},proxy:!0}],null,!1,4270628382)}),t._v(" "),t.isGenerated?t._e():e("NcButton",{attrs:{"aria-label":t.t("settings","Remove profile picture")},on:{click:t.removeAvatar},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Delete",{attrs:{size:20}})]},proxy:!0}],null,!1,2705356561)})],1),t._v(" "),e("span",[t._v(t._s(t.t("settings","png or jpg, max. 20 MB")))]),t._v(" "),e("input",{ref:"input",attrs:{id:t.inputId,type:"file",accept:t.validMimeTypes.join(",")},on:{change:t.onChange}})]:e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Picture provided by original account"))+"\n\t\t")])],2),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:t.showCropper,expression:"showCropper"}],staticClass:"avatar__container"},[e("VueCropper",t._b({ref:"cropper",staticClass:"avatar__cropper"},"VueCropper",t.cropperOptions,!1)),t._v(" "),e("div",{staticClass:"avatar__cropper-buttons"},[e("NcButton",{on:{click:t.cancel}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Cancel"))+"\n\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"primary"},on:{click:t.saveAvatar}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Set as profile picture"))+"\n\t\t\t")])],1),t._v(" "),e("span",[t._v(t._s(t.t("settings","Please note that it can take up to 24 hours for your profile picture to be updated everywhere.")))])],1)],1)}),[],!1,null,"04cca3b6",null).exports,Gt=r(48959),qt=r.n(Gt),Yt=r(86158),$t=r(34046),Wt=(0,o.j)("settings","personalInfoParameters",{}),Kt=Wt.groups,Qt=Wt.quota,Xt=Wt.totalSpace,Jt=Wt.usage,te=Wt.usageRelative,ee={name:"DetailsSection",components:{Account:Yt.Z,CircleSlice:$t.Z,HeaderBar:jt,NcProgressBar:qt()},computed:{quotaText:function(){return-3===Qt?t("settings","You are using <strong>{usage}</strong>",{usage:Jt}):t("settings","You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)",{usage:Jt,totalSpace:Xt,usageRelative:te})}},data:function(){return{groups:Kt,usageRelative:te}}},ne=r(18118),re={};re.styleTagTransform=T(),re.setAttributes=L(),re.insert=I().bind(null,"head"),re.domAPI=O(),re.insertStyleElement=R(),_()(ne.Z,re),ne.Z&&ne.Z.locals&&ne.Z.locals;var ae=(0,V.Z)(ee,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{"is-heading":!0,readable:t.t("settings","Details")}}),t._v(" "),e("div",{staticClass:"details"},[e("div",{staticClass:"details__groups"},[e("Account",{attrs:{size:20}}),t._v(" "),e("div",{staticClass:"details__groups-info"},[e("p",[t._v(t._s(t.t("settings","You are a member of the following groups:")))]),t._v(" "),e("p",{staticClass:"details__groups-list"},[t._v(t._s(t.groups.join(", ")))])])],1),t._v(" "),e("div",{staticClass:"details__quota"},[e("CircleSlice",{attrs:{size:20}}),t._v(" "),e("div",{staticClass:"details__quota-info"},[e("p",{staticClass:"details__quota-text",domProps:{innerHTML:t._s(t.quotaText)}}),t._v(" "),e("NcProgressBar",{attrs:{size:"medium",value:t.usageRelative,error:t.usageRelative>80}})],1)],1)])],1)}),[],!1,null,"1ab46e68",null).exports,ie=r(20296),oe=r.n(ie),se=r(94603),le=r(31974),ce=r(80419);function ue(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function pe(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){ue(i,r,a,o,s,"next",t)}function s(t){ue(i,r,a,o,s,"throw",t)}o(void 0)}))}}var de={name:"AccountPropertySection",components:{AlertCircle:se.default,AlertOctagon:le.Z,Check:ce.default,HeaderBar:jt},props:{name:{type:String,required:!0},value:{type:String,required:!0},scope:{type:String,required:!0},readable:{type:String,required:!0},placeholder:{type:String,required:!0},type:{type:String,default:"text"},isEditable:{type:Boolean,default:!0},multiLine:{type:Boolean,default:!1},onValidate:{type:Function,default:null},onSave:{type:Function,default:null}},data:function(){return{initialValue:this.value,helperText:null,showCheckmarkIcon:!1,showErrorIcon:!1}},computed:{inputId:function(){return"account-property-".concat(this.name)}},methods:{onPropertyChange:function(t){this.$emit("update:value",t.target.value),this.debouncePropertyChange(t.target.value.trim())},debouncePropertyChange:oe()(function(){var t=pe(regeneratorRuntime.mark((function t(e){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.helperText=null,!this.$refs.input||!this.$refs.input.validationMessage){t.next=4;break}return this.helperText=this.$refs.input.validationMessage,t.abrupt("return");case 4:if(!this.onValidate||this.onValidate(e)){t.next=6;break}return t.abrupt("return");case 6:return t.next=8,this.updateProperty(e);case 8:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),500),updateProperty:function(e){var n=this;return pe(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,dt(n.name,e);case 3:o=r.sent,n.handleResponse({value:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update {property}",{property:n.readable.toLocaleLowerCase()}),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},handleResponse:function(t){var e=this,n=t.value,r=t.status,a=t.errorMessage,i=t.error;"ok"===r?(this.initialValue=n,this.onSave&&this.onSave(n),this.showCheckmarkIcon=!0,setTimeout((function(){e.showCheckmarkIcon=!1}),2e3)):(this.$emit("update:value",this.initialValue),mt(i,a),this.showErrorIcon=!0,setTimeout((function(){e.showErrorIcon=!1}),2e3))}}},fe=de,Ae=r(78784),me={};me.styleTagTransform=T(),me.setAttributes=L(),me.insert=I().bind(null,"head"),me.domAPI=O(),me.insertStyleElement=R(),_()(Ae.Z,me),Ae.Z&&Ae.Z.locals&&Ae.Z.locals;var ve=(0,V.Z)(fe,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{scope:t.scope,readable:t.readable,"input-id":t.inputId,"is-editable":t.isEditable},on:{"update:scope":function(e){t.scope=e},"update:readable":function(e){t.readable=e}}}),t._v(" "),t.isEditable?e("div",{staticClass:"property"},[t.multiLine?e("textarea",{attrs:{id:t.inputId,placeholder:t.placeholder,rows:"8",autocapitalize:"none",autocomplete:"off",autocorrect:"off"},domProps:{value:t.value},on:{input:t.onPropertyChange}}):e("input",{ref:"input",attrs:{id:t.inputId,placeholder:t.placeholder,type:t.type,"aria-describedby":t.helperText?"".concat(t.name,"-helper-text"):"",autocapitalize:"none",autocomplete:"on",autocorrect:"off"},domProps:{value:t.value},on:{input:t.onPropertyChange}}),t._v(" "),e("div",{staticClass:"property__actions-container"},[e("transition",{attrs:{name:"fade"}},[t.showCheckmarkIcon?e("Check",{attrs:{size:20}}):t.showErrorIcon?e("AlertOctagon",{attrs:{size:20}}):t._e()],1)],1)]):e("span",[t._v("\n\t\t"+t._s(t.value||t.t("settings","No {property} set",{property:t.readable.toLocaleLowerCase()}))+"\n\t")]),t._v(" "),t.helperText?e("p",{staticClass:"property__helper-text-message property__helper-text-message--error",attrs:{id:"".concat(t.name,"-helper-text")}},[e("AlertCircle",{staticClass:"property__helper-text-message__icon",attrs:{size:18}}),t._v("\n\t\t"+t._s(t.helperText)+"\n\t")],1):t._e()],1)}),[],!1,null,"6eb7d8e0",null).exports;function be(t){return be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},be(t)}function ge(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ye(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ge(Object(n),!0).forEach((function(e){he(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ge(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function he(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==be(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==be(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===be(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Ce=(0,o.j)("settings","personalInfoParameters",{}).displayName,xe=(0,o.j)("settings","accountParameters",{}).displayNameChangeSupported,we={name:"DisplayNameSection",components:{AccountPropertySection:ve},data:function(){return{displayName:ye(ye({},Ce),{},{readable:K[Ce.name]}),displayNameChangeSupported:xe}},methods:{onValidate:function(t){return""!==t},onSave:function(t){oc_userconfig.avatar.generated&&(oc_userconfig.avatar.version=Date.now()),(0,p.j8)("settings:display-name:updated",t)}}},Ee=(0,V.Z)(we,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your full name"),"is-editable":t.displayNameChangeSupported,"on-validate":t.onValidate,"on-save":t.onSave}},"AccountPropertySection",t.displayName,!1,!0))}),[],!1,null,null,null).exports,Pe=r(15961);function _e(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Se(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){_e(i,r,a,o,s,"next",t)}function s(t){_e(i,r,a,o,s,"throw",t)}o(void 0)}))}}var Oe=function(){var t=Se(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:n}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:$.EMAIL,value:e});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),je=function(){var t=Se(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:n}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:$.EMAIL_COLLECTION,value:e});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),Ie=function(){var t=Se(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:n}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:$.NOTIFICATION_EMAIL,value:e});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),ke=function(){var t=Se(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}/{collection}",{userId:n,collection:$.EMAIL_COLLECTION}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:e,value:""});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),Le=function(){var t=Se(regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("cloud/users/{userId}/{collection}",{userId:r,collection:$.EMAIL_COLLECTION}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(a,{key:e,value:n});case 6:return o=t.sent,t.abrupt("return",o.data);case 8:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),De=function(){var t=Se(regeneratorRuntime.mark((function t(e){var n,r,a;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,i.ts)().uid,r=(0,c.generateOcsUrl)("cloud/users/{userId}",{userId:n}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(r,{key:"".concat($.EMAIL).concat(at),value:e});case 6:return a=t.sent,t.abrupt("return",a.data);case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),Re=function(){var t=Se(regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("cloud/users/{userId}/{collectionScope}",{userId:r,collectionScope:"".concat($.EMAIL_COLLECTION).concat(at)}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(a,{key:e,value:n});case 6:return o=t.sent,t.abrupt("return",o.data);case 8:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}();function Be(t){return"string"==typeof t&&lt.test(t)&&"\n"!==t.slice(-1)&&t.length<=320&&encodeURIComponent(t).replace(/%../g,"x").length<=320}function Te(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Ne(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Te(i,r,a,o,s,"next",t)}function s(t){Te(i,r,a,o,s,"throw",t)}o(void 0)}))}}var Ze={name:"Email",components:{NcActions:Pe.O3,NcActionButton:Pe.Js,AlertCircle:se.default,AlertOctagon:le.Z,Check:ce.default,FederationControl:Et},props:{email:{type:String,required:!0},index:{type:Number,default:0},primary:{type:Boolean,default:!1},scope:{type:String,required:!0},activeNotificationEmail:{type:String,default:""},localVerificationState:{type:Number,default:st.NOT_VERIFIED}},data:function(){return{propertyReadable:W.EMAIL,initialEmail:this.email,localScope:this.scope,saveAdditionalEmailScope:Re,helperText:null,showCheckmarkIcon:!1,showErrorIcon:!1}},computed:{deleteDisabled:function(){return this.primary?""===this.email||this.initialEmail!==this.email:""!==this.initialEmail&&this.initialEmail!==this.email},deleteEmailLabel:function(){return this.primary?t("settings","Remove primary email"):t("settings","Delete email")},setNotificationMailDisabled:function(){return!this.primary&&this.localVerificationState!==st.VERIFIED},setNotificationMailLabel:function(){return this.isNotificationEmail?t("settings","Unset as primary email"):this.primary||this.localVerificationState===st.VERIFIED?t("settings","Set as primary email"):t("settings","This address is not confirmed")},federationDisabled:function(){return!this.initialEmail},inputId:function(){return this.primary?"email":"email-".concat(this.index)},inputPlaceholder:function(){return this.primary?t("settings","Your email address"):t("settings","Additional email address {index}",{index:this.index+1})},isNotificationEmail:function(){return this.email&&this.email===this.activeNotificationEmail||this.primary&&""===this.activeNotificationEmail}},mounted:function(){var t=this;this.primary||""!==this.initialEmail||this.$nextTick((function(){var e;return null===(e=t.$refs.email)||void 0===e?void 0:e.focus()}))},methods:{onEmailChange:function(t){this.$emit("update:email",t.target.value),this.debounceEmailChange(t.target.value.trim())},debounceEmailChange:oe()(function(){var t=Ne(regeneratorRuntime.mark((function t(e){var n;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.helperText=null,null===(n=this.$refs.email)||void 0===n||!n.validationMessage){t.next=4;break}return this.helperText=this.$refs.email.validationMessage,t.abrupt("return");case 4:if(!Be(e)&&""!==e){t.next=18;break}if(!this.primary){t.next=10;break}return t.next=8,this.updatePrimaryEmail(e);case 8:case 14:t.next=18;break;case 10:if(!e){t.next=18;break}if(""!==this.initialEmail){t.next=16;break}return t.next=14,this.addAdditionalEmail(e);case 16:return t.next=18,this.updateAdditionalEmail(e);case 18:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),500),deleteEmail:function(){var t=this;return Ne(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.primary){e.next=6;break}return t.$emit("update:email",""),e.next=4,t.updatePrimaryEmail("");case 4:e.next=8;break;case 6:return e.next=8,t.deleteAdditionalEmail();case 8:case"end":return e.stop()}}),e)})))()},updatePrimaryEmail:function(e){var n=this;return Ne(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,Oe(e);case 3:o=r.sent,n.handleResponse({email:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),""===e?n.handleResponse({errorMessage:t("settings","Unable to delete primary email address"),error:r.t0}):n.handleResponse({errorMessage:t("settings","Unable to update primary email address"),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},addAdditionalEmail:function(e){var n=this;return Ne(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,je(e);case 3:o=r.sent,n.handleResponse({email:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to add additional email address"),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},setNotificationMail:function(){var t=this;return Ne(regeneratorRuntime.mark((function e(){var n,r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,a=t.primary||t.isNotificationEmail?"":t.initialEmail,e.next=4,Ie(a);case 4:i=e.sent,t.handleResponse({notificationEmail:a,status:null===(n=i.ocs)||void 0===n||null===(r=n.meta)||void 0===r?void 0:r.status}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),t.handleResponse({errorMessage:"Unable to choose this email for notifications",error:e.t0});case 11:case"end":return e.stop()}}),e,null,[[0,8]])})))()},updateAdditionalEmail:function(e){var n=this;return Ne(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,Le(n.initialEmail,e);case 3:o=r.sent,n.handleResponse({email:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update additional email address"),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},deleteAdditionalEmail:function(){var e=this;return Ne(regeneratorRuntime.mark((function n(){var r,a,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,ke(e.initialEmail);case 3:i=n.sent,e.handleDeleteAdditionalEmail(null===(r=i.ocs)||void 0===r||null===(a=r.meta)||void 0===a?void 0:a.status),n.next=10;break;case 7:n.prev=7,n.t0=n.catch(0),e.handleResponse({errorMessage:t("settings","Unable to delete additional email address"),error:n.t0});case 10:case"end":return n.stop()}}),n,null,[[0,7]])})))()},handleDeleteAdditionalEmail:function(e){"ok"===e?this.$emit("delete-additional-email"):this.handleResponse({errorMessage:t("settings","Unable to delete additional email address")})},handleResponse:function(t){var e=this,n=t.email,r=t.notificationEmail,a=t.status,i=t.errorMessage,o=t.error;"ok"===a?(n?this.initialEmail=n:void 0!==r&&this.$emit("update:notification-email",r),this.showCheckmarkIcon=!0,setTimeout((function(){e.showCheckmarkIcon=!1}),2e3)):(mt(o,i),this.showErrorIcon=!0,setTimeout((function(){e.showErrorIcon=!1}),2e3))},onScopeChange:function(t){this.$emit("update:scope",t)}}},Me=Ze,Ue=r(11121),Fe={};Fe.styleTagTransform=T(),Fe.setAttributes=L(),Fe.insert=I().bind(null,"head"),Fe.domAPI=O(),Fe.insertStyleElement=R(),_()(Ue.Z,Fe),Ue.Z&&Ue.Z.locals&&Ue.Z.locals;var ze=(0,V.Z)(Me,(function(){var t=this,e=t._self._c;return e("div",[e("div",{staticClass:"email"},[e("input",{ref:"email",attrs:{id:t.inputId,type:"email",placeholder:t.inputPlaceholder,"aria-describedby":t.helperText?"".concat(t.inputId,"-helper-text"):"",autocapitalize:"none",autocomplete:"on",autocorrect:"off"},domProps:{value:t.email},on:{input:t.onEmailChange}}),t._v(" "),e("div",{staticClass:"email__actions-container"},[e("transition",{attrs:{name:"fade"}},[t.showCheckmarkIcon?e("Check",{attrs:{size:20}}):t.showErrorIcon?e("AlertOctagon",{attrs:{size:20}}):t._e()],1),t._v(" "),t.primary?t._e():[e("FederationControl",{attrs:{readable:t.propertyReadable,additional:!0,"additional-value":t.email,disabled:t.federationDisabled,"handle-additional-scope-change":t.saveAdditionalEmailScope,scope:t.localScope},on:{"update:scope":[function(e){t.localScope=e},t.onScopeChange]}})],t._v(" "),e("NcActions",{staticClass:"email__actions",attrs:{"aria-label":t.t("settings","Email options"),"force-menu":!0}},[e("NcActionButton",{attrs:{"aria-label":t.deleteEmailLabel,"close-after-click":!0,disabled:t.deleteDisabled,icon:"icon-delete"},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.deleteEmail.apply(null,arguments)}}},[t._v("\n\t\t\t\t\t"+t._s(t.deleteEmailLabel)+"\n\t\t\t\t")]),t._v(" "),t.primary&&t.isNotificationEmail?t._e():e("NcActionButton",{attrs:{"aria-label":t.setNotificationMailLabel,"close-after-click":!0,disabled:t.setNotificationMailDisabled,icon:"icon-favorite"},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.setNotificationMail.apply(null,arguments)}}},[t._v("\n\t\t\t\t\t"+t._s(t.setNotificationMailLabel)+"\n\t\t\t\t")])],1)],2)]),t._v(" "),t.helperText?e("p",{staticClass:"email__helper-text-message email__helper-text-message--error",attrs:{id:"".concat(t.inputId,"-helper-text")}},[e("AlertCircle",{staticClass:"email__helper-text-message__icon",attrs:{size:18}}),t._v("\n\t\t"+t._s(t.helperText)+"\n\t")],1):t._e(),t._v(" "),t.isNotificationEmail?e("em",[t._v("\n\t\t"+t._s(t.t("settings","Primary email for password reset and notifications"))+"\n\t")]):t._e()])}),[],!1,null,"5ff85d38",null),Ve=ze.exports;function He(t){return He="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},He(t)}function Ge(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function qe(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Ge(i,r,a,o,s,"next",t)}function s(t){Ge(i,r,a,o,s,"throw",t)}o(void 0)}))}}function Ye(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $e(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Ye(Object(n),!0).forEach((function(e){We(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ye(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function We(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==He(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==He(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===He(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Ke=(0,o.j)("settings","personalInfoParameters",{}).emailMap,Qe=Ke.additionalEmails,Xe=Ke.primaryEmail,Je=Ke.notificationEmail,tn=(0,o.j)("settings","accountParameters",{}).displayNameChangeSupported,en={name:"EmailSection",components:{HeaderBar:jt,Email:Ve},data:function(){var t=this;return{accountProperty:W.EMAIL,additionalEmails:Qe.map((function(e){return $e($e({},e),{},{key:t.generateUniqueKey()})})),displayNameChangeSupported:tn,primaryEmail:$e($e({},Xe),{},{readable:K[Xe.name]}),savePrimaryEmailScope:De,notificationEmail:Je}},computed:{firstAdditionalEmail:function(){return this.additionalEmails.length?this.additionalEmails[0].value:null},inputId:function(){return"account-property-".concat(this.primaryEmail.name)},isValidSection:function(){return Be(this.primaryEmail.value)&&this.additionalEmails.map((function(t){return t.value})).every(Be)},primaryEmailValue:{get:function(){return this.primaryEmail.value},set:function(t){this.primaryEmail.value=t}}},methods:{onAddAdditionalEmail:function(){this.isValidSection&&this.additionalEmails.push({value:"",scope:ot,key:this.generateUniqueKey()})},onDeleteAdditionalEmail:function(t){this.$delete(this.additionalEmails,t)},onUpdateEmail:function(){var t=this;return qe(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(""!==t.primaryEmailValue||!t.firstAdditionalEmail){e.next=7;break}return n=t.firstAdditionalEmail,e.next=4,t.deleteFirstAdditionalEmail();case 4:return t.primaryEmailValue=n,e.next=7,t.updatePrimaryEmail();case 7:case"end":return e.stop()}}),e)})))()},onUpdateNotificationEmail:function(t){var e=this;return qe(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:e.notificationEmail=t;case 1:case"end":return n.stop()}}),n)})))()},updatePrimaryEmail:function(){var e=this;return qe(regeneratorRuntime.mark((function n(){var r,a,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,Oe(e.primaryEmailValue);case 3:i=n.sent,e.handleResponse(null===(r=i.ocs)||void 0===r||null===(a=r.meta)||void 0===a?void 0:a.status),n.next=10;break;case 7:n.prev=7,n.t0=n.catch(0),e.handleResponse("error",t("settings","Unable to update primary email address"),n.t0);case 10:case"end":return n.stop()}}),n,null,[[0,7]])})))()},deleteFirstAdditionalEmail:function(){var e=this;return qe(regeneratorRuntime.mark((function n(){var r,a,i;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.prev=0,n.next=3,ke(e.firstAdditionalEmail);case 3:i=n.sent,e.handleDeleteFirstAdditionalEmail(null===(r=i.ocs)||void 0===r||null===(a=r.meta)||void 0===a?void 0:a.status),n.next=10;break;case 7:n.prev=7,n.t0=n.catch(0),e.handleResponse("error",t("settings","Unable to delete additional email address"),n.t0);case 10:case"end":return n.stop()}}),n,null,[[0,7]])})))()},handleDeleteFirstAdditionalEmail:function(e){"ok"===e?this.$delete(this.additionalEmails,0):this.handleResponse("error",t("settings","Unable to delete additional email address"),{})},handleResponse:function(t,e,n){"ok"!==t&&mt(n,e)},generateUniqueKey:function(){return Math.random().toString(36).substring(2)}}},nn=r(73070),rn={};rn.styleTagTransform=T(),rn.setAttributes=L(),rn.insert=I().bind(null,"head"),rn.domAPI=O(),rn.insertStyleElement=R(),_()(nn.Z,rn),nn.Z&&nn.Z.locals&&nn.Z.locals;var an=(0,V.Z)(en,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{"input-id":t.inputId,readable:t.primaryEmail.readable,"handle-scope-change":t.savePrimaryEmailScope,"is-editable":!0,"is-multi-value-supported":!0,"is-valid-section":t.isValidSection,scope:t.primaryEmail.scope},on:{"update:scope":function(e){return t.$set(t.primaryEmail,"scope",e)},"add-additional":t.onAddAdditionalEmail}}),t._v(" "),t.displayNameChangeSupported?[e("Email",{attrs:{primary:!0,scope:t.primaryEmail.scope,email:t.primaryEmail.value,"active-notification-email":t.notificationEmail},on:{"update:scope":function(e){return t.$set(t.primaryEmail,"scope",e)},"update:email":[function(e){return t.$set(t.primaryEmail,"value",e)},t.onUpdateEmail],"update:activeNotificationEmail":function(e){t.notificationEmail=e},"update:active-notification-email":function(e){t.notificationEmail=e},"update:notification-email":t.onUpdateNotificationEmail}})]:e("span",[t._v("\n\t\t"+t._s(t.primaryEmail.value||t.t("settings","No email address set"))+"\n\t")]),t._v(" "),t.additionalEmails.length?[e("em",{staticClass:"additional-emails-label"},[t._v(t._s(t.t("settings","Additional emails")))]),t._v(" "),t._l(t.additionalEmails,(function(n,r){return e("Email",{key:n.key,attrs:{index:r,scope:n.scope,email:n.value,"local-verification-state":parseInt(n.locallyVerified,10),"active-notification-email":t.notificationEmail},on:{"update:scope":function(e){return t.$set(n,"scope",e)},"update:email":[function(e){return t.$set(n,"value",e)},t.onUpdateEmail],"update:activeNotificationEmail":function(e){t.notificationEmail=e},"update:active-notification-email":function(e){t.notificationEmail=e},"update:notification-email":t.onUpdateNotificationEmail,"delete-additional-email":function(e){return t.onDeleteAdditionalEmail(r)}}})}))]:t._e()],2)}),[],!1,null,"46c7eb7e",null).exports,on=r(45004);function sn(t){return sn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sn(t)}function ln(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function cn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ln(Object(n),!0).forEach((function(e){un(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ln(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function un(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==sn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==sn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===sn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var pn=(0,o.j)("settings","personalInfoParameters",{}),dn=pn.defaultPhoneRegion,fn=pn.phone,An={name:"PhoneSection",components:{AccountPropertySection:ve},data:function(){return{phone:cn(cn({},fn),{},{readable:K[fn.name]})}},methods:{onValidate:function(t){return dn?(0,on.y)(t,dn):(0,on.y)(t)}}},mn=(0,V.Z)(An,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your phone number"),type:"tel","on-validate":t.onValidate}},"AccountPropertySection",t.phone,!1,!0))}),[],!1,null,null,null).exports;function vn(t){return vn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vn(t)}function bn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function gn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?bn(Object(n),!0).forEach((function(e){yn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):bn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function yn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==vn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==vn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===vn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var hn=(0,o.j)("settings","personalInfoParameters",{}).location,Cn={name:"LocationSection",components:{AccountPropertySection:ve},data:function(){return{location:gn(gn({},hn),{},{readable:K[hn.name]})}}},xn=(0,V.Z)(Cn,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your location")}},"AccountPropertySection",t.location,!1,!0))}),[],!1,null,null,null).exports;function wn(t){return wn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wn(t)}function En(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Pn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?En(Object(n),!0).forEach((function(e){_n(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):En(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function _n(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==wn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==wn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===wn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Sn=(0,o.j)("settings","personalInfoParameters",{}).website,On={name:"WebsiteSection",components:{AccountPropertySection:ve},data:function(){return{website:Pn(Pn({},Sn),{},{readable:K[Sn.name]})}},methods:{onValidate:function(t){return function(t){try{return new URL(t),!0}catch(t){return!1}}(t)}}},jn=(0,V.Z)(On,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your website"),type:"url","on-validate":t.onValidate}},"AccountPropertySection",t.website,!1,!0))}),[],!1,null,null,null).exports;function In(t){return In="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},In(t)}function kn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Ln(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?kn(Object(n),!0).forEach((function(e){Dn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):kn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Dn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==In(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==In(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===In(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Rn=(0,o.j)("settings","personalInfoParameters",{}).twitter,Bn={name:"TwitterSection",components:{AccountPropertySection:ve},data:function(){return{twitter:Ln(Ln({},Rn),{},{readable:K[Rn.name]})}}},Tn=(0,V.Z)(Bn,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your Twitter handle")}},"AccountPropertySection",t.twitter,!1,!0))}),[],!1,null,null,null).exports;function Nn(t){return Nn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Nn(t)}function Zn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Mn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Zn(Object(n),!0).forEach((function(e){Un(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Zn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Un(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==Nn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==Nn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===Nn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Fn=(0,o.j)("settings","personalInfoParameters",{}).fediverse,zn={name:"FediverseSection",components:{AccountPropertySection:ve},data:function(){return{fediverse:Mn(Mn({},Fn),{},{readable:K[Fn.name]})}}},Vn=(0,V.Z)(zn,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your handle")}},"AccountPropertySection",t.fediverse,!1,!0))}),[],!1,null,null,null).exports;function Hn(t){return Hn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hn(t)}function Gn(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function qn(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Gn(i,r,a,o,s,"next",t)}function s(t){Gn(i,r,a,o,s,"throw",t)}o(void 0)}))}}function Yn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $n(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Yn(Object(n),!0).forEach((function(e){Wn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Yn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Wn(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==Hn(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==Hn(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===Hn(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Kn(t){return function(t){if(Array.isArray(t))return Qn(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Qn(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qn(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qn(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Xn={name:"Language",props:{inputId:{type:String,default:null},commonLanguages:{type:Array,required:!0},otherLanguages:{type:Array,required:!0},language:{type:Object,required:!0}},data:function(){return{initialLanguage:this.language}},computed:{allLanguages:function(){return Object.freeze([].concat(Kn(this.commonLanguages),Kn(this.otherLanguages)).reduce((function(t,e){var n=e.code,r=e.name;return $n($n({},t),{},Wn({},n,r))}),{}))}},methods:{onLanguageChange:function(t){var e=this;return qn(regeneratorRuntime.mark((function n(){var r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=e.constructLanguage(t.target.value),e.$emit("update:language",r),""===(a=r).code||""===a.name||void 0===a.name){n.next=5;break}return n.next=5,e.updateLanguage(r);case 5:case"end":return n.stop()}var a}),n)})))()},updateLanguage:function(e){var n=this;return qn(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,dt(J.LANGUAGE,e.code);case 3:o=r.sent,n.handleResponse({language:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),n.reloadPage(),r.next=11;break;case 8:r.prev=8,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update language"),error:r.t0});case 11:case"end":return r.stop()}}),r,null,[[0,8]])})))()},constructLanguage:function(t){return{code:t,name:this.allLanguages[t]}},handleResponse:function(t){var e=t.language,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?this.initialLanguage=e:mt(a,r)},reloadPage:function(){location.reload()}}},Jn=r(42569),tr={};tr.styleTagTransform=T(),tr.setAttributes=L(),tr.insert=I().bind(null,"head"),tr.domAPI=O(),tr.insertStyleElement=R(),_()(Jn.Z,tr),Jn.Z&&Jn.Z.locals&&Jn.Z.locals;var er=(0,V.Z)(Xn,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"language"},[e("select",{attrs:{id:t.inputId,placeholder:t.t("settings","Language")},on:{change:t.onLanguageChange}},[t._l(t.commonLanguages,(function(n){return e("option",{key:n.code,domProps:{selected:t.language.code===n.code,value:n.code}},[t._v("\n\t\t\t"+t._s(n.name)+"\n\t\t")])})),t._v(" "),e("option",{attrs:{disabled:""}},[t._v("\n\t\t\t──────────\n\t\t")]),t._v(" "),t._l(t.otherLanguages,(function(n){return e("option",{key:n.code,domProps:{selected:t.language.code===n.code,value:n.code}},[t._v("\n\t\t\t"+t._s(n.name)+"\n\t\t")])}))],2),t._v(" "),e("a",{attrs:{href:"https://www.transifex.com/nextcloud/nextcloud/",target:"_blank",rel:"noreferrer noopener"}},[e("em",[t._v(t._s(t.t("settings","Help translate")))])])])}),[],!1,null,"5c847b3a",null).exports,nr=(0,o.j)("settings","personalInfoParameters",{}).languageMap,rr=nr.activeLanguage,ar=nr.commonLanguages,ir=nr.otherLanguages,or={name:"LanguageSection",components:{Language:er,HeaderBar:jt},data:function(){return{propertyReadable:tt.LANGUAGE,commonLanguages:ar,otherLanguages:ir,language:rr}},computed:{inputId:function(){return"account-setting-".concat(J.LANGUAGE)},isEditable:function(){return Boolean(this.language)}}},sr=r(12531),lr={};lr.styleTagTransform=T(),lr.setAttributes=L(),lr.insert=I().bind(null,"head"),lr.domAPI=O(),lr.insertStyleElement=R(),_()(sr.Z,lr),sr.Z&&sr.Z.locals&&sr.Z.locals;var cr=(0,V.Z)(or,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{"input-id":t.inputId,readable:t.propertyReadable}}),t._v(" "),t.isEditable?[e("Language",{attrs:{"input-id":t.inputId,"common-languages":t.commonLanguages,"other-languages":t.otherLanguages,language:t.language},on:{"update:language":function(e){t.language=e}}})]:e("span",[t._v("\n\t\t"+t._s(t.t("settings","No language set"))+"\n\t")])],2)}),[],!1,null,"92685b76",null).exports,ur=r(80351),pr=r.n(ur);function dr(t){return dr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dr(t)}function fr(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Ar(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){fr(i,r,a,o,s,"next",t)}function s(t){fr(i,r,a,o,s,"throw",t)}o(void 0)}))}}function mr(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function vr(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?mr(Object(n),!0).forEach((function(e){br(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):mr(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function br(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==dr(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==dr(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===dr(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function gr(t){return function(t){if(Array.isArray(t))return yr(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return yr(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yr(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function yr(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var hr={name:"Locale",components:{Web:r(97859).default},props:{inputId:{type:String,default:null},locale:{type:Object,required:!0},localesForLanguage:{type:Array,required:!0},otherLocales:{type:Array,required:!0}},data:function(){return{initialLocale:this.locale,example:{date:pr()().format("L"),time:pr()().format("LTS"),firstDayOfWeek:window.dayNames[window.firstDay]}}},computed:{allLocales:function(){return Object.freeze([].concat(gr(this.localesForLanguage),gr(this.otherLocales)).reduce((function(t,e){var n=e.code,r=e.name;return vr(vr({},t),{},br({},n,r))}),{}))}},created:function(){setInterval(this.refreshExample,1e3)},methods:{onLocaleChange:function(t){var e=this;return Ar(regeneratorRuntime.mark((function n(){var r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=e.constructLocale(t.target.value),e.$emit("update:locale",r),""===(a=r).code||""===a.name||void 0===a.name){n.next=5;break}return n.next=5,e.updateLocale(r);case 5:case"end":return n.stop()}var a}),n)})))()},updateLocale:function(e){var n=this;return Ar(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,dt(J.LOCALE,e.code);case 3:o=r.sent,n.handleResponse({locale:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),n.reloadPage(),r.next=11;break;case 8:r.prev=8,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update locale"),error:r.t0});case 11:case"end":return r.stop()}}),r,null,[[0,8]])})))()},constructLocale:function(t){return{code:t,name:this.allLocales[t]}},handleResponse:function(t){var e=t.locale,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?this.initialLocale=e:(this.$emit("update:locale",this.initialLocale),mt(a,r))},refreshExample:function(){this.example={date:pr()().format("L"),time:pr()().format("LTS"),firstDayOfWeek:window.dayNames[window.firstDay]}},reloadPage:function(){location.reload()}}},Cr=r(87229),xr={};xr.styleTagTransform=T(),xr.setAttributes=L(),xr.insert=I().bind(null,"head"),xr.domAPI=O(),xr.insertStyleElement=R(),_()(Cr.Z,xr),Cr.Z&&Cr.Z.locals&&Cr.Z.locals;var wr=(0,V.Z)(hr,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"locale"},[e("select",{attrs:{id:t.inputId,placeholder:t.t("settings","Locale")},on:{change:t.onLocaleChange}},[t._l(t.localesForLanguage,(function(n){return e("option",{key:n.code,domProps:{selected:t.locale.code===n.code,value:n.code}},[t._v("\n\t\t\t"+t._s(n.name)+"\n\t\t")])})),t._v(" "),e("option",{attrs:{disabled:""}},[t._v("\n\t\t\t──────────\n\t\t")]),t._v(" "),t._l(t.otherLocales,(function(n){return e("option",{key:n.code,domProps:{selected:t.locale.code===n.code,value:n.code}},[t._v("\n\t\t\t"+t._s(n.name)+"\n\t\t")])}))],2),t._v(" "),e("div",{staticClass:"example"},[e("Web",{attrs:{size:20}}),t._v(" "),e("div",{staticClass:"example__text"},[e("p",[e("span",[t._v(t._s(t.example.date))]),t._v(" "),e("span",[t._v(t._s(t.example.time))])]),t._v(" "),e("p",[t._v("\n\t\t\t\t"+t._s(t.t("settings","Week starts on {firstDayOfWeek}",{firstDayOfWeek:this.example.firstDayOfWeek}))+"\n\t\t\t")])])],1)])}),[],!1,null,"1ac456dc",null).exports,Er=(0,o.j)("settings","personalInfoParameters",{}).localeMap,Pr=Er.activeLocale,_r=Er.localesForLanguage,Sr=Er.otherLocales,Or={name:"LocaleSection",components:{Locale:wr,HeaderBar:jt},data:function(){return{propertyReadable:tt.LOCALE,localesForLanguage:_r,otherLocales:Sr,locale:Pr}},computed:{inputId:function(){return"account-setting-".concat(J.LOCALE)},isEditable:function(){return Boolean(this.locale)}}},jr=r(682),Ir={};Ir.styleTagTransform=T(),Ir.setAttributes=L(),Ir.insert=I().bind(null,"head"),Ir.domAPI=O(),Ir.insertStyleElement=R(),_()(jr.Z,Ir),jr.Z&&jr.Z.locals&&jr.Z.locals;var kr=(0,V.Z)(Or,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{"input-id":t.inputId,readable:t.propertyReadable}}),t._v(" "),t.isEditable?[e("Locale",{attrs:{"input-id":t.inputId,"locales-for-language":t.localesForLanguage,"other-locales":t.otherLocales,locale:t.locale},on:{"update:locale":function(e){t.locale=e}}})]:e("span",[t._v("\n\t\t"+t._s(t.t("settings","No locale set"))+"\n\t")])],2)}),[],!1,null,"84fca724",null).exports,Lr={name:"EditProfileAnchorLink",components:{ChevronDownIcon:r(41622).default},props:{profileEnabled:{type:Boolean,required:!0}},computed:{disabled:function(){return!this.profileEnabled}}},Dr=r(64534),Rr={};Rr.styleTagTransform=T(),Rr.setAttributes=L(),Rr.insert=I().bind(null,"head"),Rr.domAPI=O(),Rr.insertStyleElement=R(),_()(Dr.Z,Rr),Dr.Z&&Dr.Z.locals&&Dr.Z.locals;var Br=r(40001),Tr={};Tr.styleTagTransform=T(),Tr.setAttributes=L(),Tr.insert=I().bind(null,"head"),Tr.domAPI=O(),Tr.insertStyleElement=R(),_()(Br.Z,Tr),Br.Z&&Br.Z.locals&&Br.Z.locals;var Nr=(0,V.Z)(Lr,(function(){var t=this,e=t._self._c;return e("a",t._g({class:{disabled:t.disabled},attrs:{href:"#profile-visibility"}},t.$listeners),[e("ChevronDownIcon",{staticClass:"anchor-icon",attrs:{size:22}}),t._v("\n\t"+t._s(t.t("settings","Edit your Profile visibility"))+"\n")],1)}),[],!1,null,"1caba458",null).exports,Zr=r(20571);function Mr(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}var Ur={name:"ProfileCheckbox",components:{NcCheckboxRadioSwitch:r.n(Zr)()},props:{profileEnabled:{type:Boolean,required:!0}},data:function(){return{isProfileEnabled:this.profileEnabled,loading:!1}},methods:{saveEnableProfile:function(){var e,n=this;return(e=regeneratorRuntime.mark((function e(){var r,a,i;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.loading=!0,e.prev=1,e.next=4,dt($.PROFILE_ENABLED,n.isProfileEnabled);case 4:i=e.sent,n.handleResponse({isProfileEnabled:n.isProfileEnabled,status:null===(r=i.ocs)||void 0===r||null===(a=r.meta)||void 0===a?void 0:a.status}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),n.handleResponse({errorMessage:t("settings","Unable to update profile enabled state"),error:e.t0});case 11:case"end":return e.stop()}}),e,null,[[1,8]])})),function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(t){Mr(i,r,a,o,s,"next",t)}function s(t){Mr(i,r,a,o,s,"throw",t)}o(void 0)}))})()},handleResponse:function(t){var e=t.isProfileEnabled,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?(0,p.j8)("settings:profile-enabled:updated",e):mt(a,r),this.loading=!1}}},Fr=Ur,zr=(0,V.Z)(Fr,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"checkbox-container"},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:t.isProfileEnabled,loading:t.loading},on:{"update:checked":[function(e){t.isProfileEnabled=e},t.saveEnableProfile]}},[t._v("\n\t\t"+t._s(t.t("settings","Enable Profile"))+"\n\t")])],1)}),[],!1,null,null,null).exports,Vr={name:"ProfilePreviewCard",components:{NcAvatar:f()},props:{displayName:{type:String,required:!0},organisation:{type:String,required:!0},profileEnabled:{type:Boolean,required:!0},userId:{type:String,required:!0}},computed:{disabled:function(){return!this.profileEnabled},profilePageLink:function(){return this.profileEnabled?(0,c.generateUrl)("/u/{userId}",{userId:(0,i.ts)().uid}):null}}},Hr=r(80507),Gr={};Gr.styleTagTransform=T(),Gr.setAttributes=L(),Gr.insert=I().bind(null,"head"),Gr.domAPI=O(),Gr.insertStyleElement=R(),_()(Hr.Z,Gr),Hr.Z&&Hr.Z.locals&&Hr.Z.locals;var qr=(0,V.Z)(Vr,(function(){var t=this,e=t._self._c;return e("a",{staticClass:"preview-card",class:{disabled:t.disabled},attrs:{href:t.profilePageLink}},[e("NcAvatar",{staticClass:"preview-card__avatar",attrs:{user:t.userId,size:48,"show-user-status":!0,"show-user-status-compact":!1,"disable-menu":!0,"disable-tooltip":!0}}),t._v(" "),e("div",{staticClass:"preview-card__header"},[e("span",[t._v(t._s(t.displayName))])]),t._v(" "),e("div",{staticClass:"preview-card__footer"},[e("span",[t._v(t._s(t.organisation))])])],1)}),[],!1,null,"61586aa5",null).exports,Yr=(0,o.j)("settings","personalInfoParameters",{}),$r=Yr.organisation.value,Wr=Yr.displayName.value,Kr=Yr.profileEnabled,Qr=Yr.userId,Xr={name:"ProfileSection",components:{EditProfileAnchorLink:Nr,HeaderBar:jt,ProfileCheckbox:zr,ProfilePreviewCard:qr},data:function(){return{propertyReadable:W.PROFILE_ENABLED,organisation:$r,displayName:Wr,profileEnabled:Kr,userId:Qr}},mounted:function(){(0,p.Ld)("settings:display-name:updated",this.handleDisplayNameUpdate),(0,p.Ld)("settings:organisation:updated",this.handleOrganisationUpdate)},beforeDestroy:function(){(0,p.r1)("settings:display-name:updated",this.handleDisplayNameUpdate),(0,p.r1)("settings:organisation:updated",this.handleOrganisationUpdate)},methods:{handleDisplayNameUpdate:function(t){this.displayName=t},handleOrganisationUpdate:function(t){this.organisation=t}}},Jr=Xr,ta=r(90552),ea={};ea.styleTagTransform=T(),ea.setAttributes=L(),ea.insert=I().bind(null,"head"),ea.domAPI=O(),ea.insertStyleElement=R(),_()(ta.Z,ea),ta.Z&&ta.Z.locals&&ta.Z.locals;var na=(0,V.Z)(Jr,(function(){var t=this,e=t._self._c;return e("section",[e("HeaderBar",{attrs:{readable:t.propertyReadable}}),t._v(" "),e("ProfileCheckbox",{attrs:{"profile-enabled":t.profileEnabled},on:{"update:profileEnabled":function(e){t.profileEnabled=e},"update:profile-enabled":function(e){t.profileEnabled=e}}}),t._v(" "),e("ProfilePreviewCard",{attrs:{organisation:t.organisation,"display-name":t.displayName,"profile-enabled":t.profileEnabled,"user-id":t.userId}}),t._v(" "),e("EditProfileAnchorLink",{attrs:{"profile-enabled":t.profileEnabled}})],1)}),[],!1,null,"cf64d964",null).exports;function ra(t){return ra="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ra(t)}function aa(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ia(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?aa(Object(n),!0).forEach((function(e){oa(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):aa(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function oa(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==ra(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==ra(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===ra(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var sa=(0,o.j)("settings","personalInfoParameters",{}).organisation,la={name:"OrganisationSection",components:{AccountPropertySection:ve},data:function(){return{organisation:ia(ia({},sa),{},{readable:K[sa.name]})}}},ca=(0,V.Z)(la,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your organisation")}},"AccountPropertySection",t.organisation,!1,!0))}),[],!1,null,null,null).exports;function ua(t){return ua="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ua(t)}function pa(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function da(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?pa(Object(n),!0).forEach((function(e){fa(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):pa(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function fa(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==ua(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==ua(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===ua(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Aa=(0,o.j)("settings","personalInfoParameters",{}).role,ma={name:"RoleSection",components:{AccountPropertySection:ve},data:function(){return{role:da(da({},Aa),{},{readable:K[Aa.name]})}}},va=(0,V.Z)(ma,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your role")}},"AccountPropertySection",t.role,!1,!0))}),[],!1,null,null,null).exports;function ba(t){return ba="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ba(t)}function ga(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ya(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ga(Object(n),!0).forEach((function(e){ha(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ga(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function ha(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==ba(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==ba(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===ba(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Ca=(0,o.j)("settings","personalInfoParameters",{}).headline,xa={name:"HeadlineSection",components:{AccountPropertySection:ve},data:function(){return{headline:ya(ya({},Ca),{},{readable:K[Ca.name]})}}},wa=(0,V.Z)(xa,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your headline")}},"AccountPropertySection",t.headline,!1,!0))}),[],!1,null,null,null).exports;function Ea(t){return Ea="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ea(t)}function Pa(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function _a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Pa(Object(n),!0).forEach((function(e){Sa(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Pa(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function Sa(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==Ea(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==Ea(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===Ea(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Oa=(0,o.j)("settings","personalInfoParameters",{}).biography,ja={name:"BiographySection",components:{AccountPropertySection:ve},data:function(){return{biography:_a(_a({},Oa),{},{readable:K[Oa.name]})}}},Ia=(0,V.Z)(ja,(function(){var t=this;return(0,t._self._c)("AccountPropertySection",t._b({attrs:{placeholder:t.t("settings","Your biography"),"multi-line":!0}},"AccountPropertySection",t.biography,!1,!0))}),[],!1,null,null,null).exports,ka=r(36456),La=r.n(ka);function Da(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}var Ra,Ba=function(){var t,e=(t=regeneratorRuntime.mark((function t(e,n){var r,a,o;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(0,i.ts)().uid,a=(0,c.generateOcsUrl)("/profile/{userId}",{userId:r}),t.next=4,(0,ct.confirmPassword)();case 4:return t.next=6,l.default.put(a,{paramId:e,visibility:n});case 6:return o=t.sent,t.abrupt("return",o.data);case 8:case"end":return t.stop()}}),t)})),function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Da(i,r,a,o,s,"next",t)}function s(t){Da(i,r,a,o,s,"throw",t)}o(void 0)}))});return function(t,n){return e.apply(this,arguments)}}();function Ta(t){return Ta="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ta(t)}function Na(t,e,n){return(e=function(t){var e=function(t,e){if("object"!==Ta(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e);if("object"!==Ta(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"===Ta(e)?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Za=Object.freeze({SHOW:"show",SHOW_USERS_ONLY:"show_users_only",HIDE:"hide"}),Ma=Object.freeze((Na(Ra={},Za.SHOW,{name:Za.SHOW,label:t("settings","Show to everyone")}),Na(Ra,Za.SHOW_USERS_ONLY,{name:Za.SHOW_USERS_ONLY,label:t("settings","Show to logged in users only")}),Na(Ra,Za.HIDE,{name:Za.HIDE,label:t("settings","Hide")}),Ra));function Ua(t,e,n,r,a,i,o){try{var s=t[i](o),l=s.value}catch(t){return void n(t)}s.done?e(l):Promise.resolve(l).then(r,a)}function Fa(t){return function(){var e=this,n=arguments;return new Promise((function(r,a){var i=t.apply(e,n);function o(t){Ua(i,r,a,o,s,"next",t)}function s(t){Ua(i,r,a,o,s,"throw",t)}o(void 0)}))}}var za=(0,o.j)("settings","personalInfoParameters",!1).profileEnabled,Va={name:"VisibilityDropdown",components:{NcSelect:La()},props:{paramId:{type:String,required:!0},displayId:{type:String,required:!0},visibility:{type:String,required:!0}},data:function(){return{initialVisibility:this.visibility,profileEnabled:za}},computed:{disabled:function(){return!this.profileEnabled},inputId:function(){return"profile-visibility-".concat(this.paramId)},visibilityObject:function(){return Ma[this.visibility]},visibilityOptions:function(){return Object.values(Ma)}},mounted:function(){(0,p.Ld)("settings:profile-enabled:updated",this.handleProfileEnabledUpdate)},beforeDestroy:function(){(0,p.r1)("settings:profile-enabled:updated",this.handleProfileEnabledUpdate)},methods:{onVisibilityChange:function(t){var e=this;return Fa(regeneratorRuntime.mark((function n(){var r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(null===t){n.next=6;break}if(r=t.name,e.$emit("update:visibility",r),""===r){n.next=6;break}return n.next=6,e.updateVisibility(r);case 6:case"end":return n.stop()}}),n)})))()},updateVisibility:function(e){var n=this;return Fa(regeneratorRuntime.mark((function r(){var a,i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,Ba(n.paramId,e);case 3:o=r.sent,n.handleResponse({visibility:e,status:null===(a=o.ocs)||void 0===a||null===(i=a.meta)||void 0===i?void 0:i.status}),r.next=10;break;case 7:r.prev=7,r.t0=r.catch(0),n.handleResponse({errorMessage:t("settings","Unable to update visibility of {displayId}",{displayId:n.displayId}),error:r.t0});case 10:case"end":return r.stop()}}),r,null,[[0,7]])})))()},handleResponse:function(t){var e=t.visibility,n=t.status,r=t.errorMessage,a=t.error;"ok"===n?this.initialVisibility=e:mt(a,r)},handleProfileEnabledUpdate:function(t){this.profileEnabled=t}}},Ha=Va,Ga=r(63019),qa={};qa.styleTagTransform=T(),qa.setAttributes=L(),qa.insert=I().bind(null,"head"),qa.domAPI=O(),qa.insertStyleElement=R(),_()(Ga.Z,qa),Ga.Z&&Ga.Z.locals&&Ga.Z.locals;var Ya=(0,V.Z)(Ha,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"visibility-container",class:{disabled:t.disabled}},[e("label",{attrs:{for:t.inputId}},[t._v("\n\t\t"+t._s(t.displayId)+"\n\t")]),t._v(" "),e("NcSelect",{staticClass:"visibility-container__select",attrs:{"input-id":t.inputId,clearable:!1,options:t.visibilityOptions,value:t.visibilityObject},on:{"option:selected":t.onVisibilityChange}})],1)}),[],!1,null,"b13d20da",null).exports;function $a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Wa=(0,o.j)("settings","profileParameters",{}).profileConfig,Ka=(0,o.j)("settings","personalInfoParameters",!1).profileEnabled,Qa=function(t,e){return t.appId===e.appId||"core"!==t.appId&&"core"!==e.appId?t.displayId.localeCompare(e.displayId):"core"===t.appId?1:-1},Xa={name:"ProfileVisibilitySection",components:{HeaderBar:jt,VisibilityDropdown:Ya},data:function(){return{heading:Q.PROFILE_VISIBILITY,profileEnabled:Ka,visibilityParams:Object.entries(Wa).map((function(t){var e,n,r=(n=2,function(t){if(Array.isArray(t))return t}(e=t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,a,i,o,s=[],l=!0,c=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(s.push(r.value),s.length!==e);l=!0);}catch(t){c=!0,a=t}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return s}}(e,n)||function(t,e){if(t){if("string"==typeof t)return $a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$a(t,e):void 0}}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=r[0],i=r[1];return{id:a,appId:i.appId,displayId:i.displayId,visibility:i.visibility}})).sort(Qa),marginLeft:window.matchMedia("(min-width: 1600px)").matches?window.getComputedStyle(document.getElementById("vue-avatar-section")).getPropertyValue("width").trim():"0px"}},computed:{disabled:function(){return!this.profileEnabled},rows:function(){return Math.ceil(this.visibilityParams.length/2)}},mounted:function(){var t=this;(0,p.Ld)("settings:profile-enabled:updated",this.handleProfileEnabledUpdate),window.onresize=function(){t.marginLeft=window.matchMedia("(min-width: 1600px)").matches?window.getComputedStyle(document.getElementById("vue-avatar-section")).getPropertyValue("width").trim():"0px"}},beforeDestroy:function(){(0,p.r1)("settings:profile-enabled:updated",this.handleProfileEnabledUpdate)},methods:{handleProfileEnabledUpdate:function(t){this.profileEnabled=t}}},Ja=Xa,ti=r(45386),ei={};ei.styleTagTransform=T(),ei.setAttributes=L(),ei.insert=I().bind(null,"head"),ei.domAPI=O(),ei.insertStyleElement=R(),_()(ti.Z,ei),ti.Z&&ti.Z.locals&&ti.Z.locals;var ni=(0,V.Z)(Ja,(function(){var t=this,e=t._self._c;return e("section",{style:{marginLeft:t.marginLeft},attrs:{id:"profile-visibility"}},[e("HeaderBar",{attrs:{"is-heading":!0,readable:t.heading}}),t._v(" "),e("em",{class:{disabled:t.disabled}},[t._v("\n\t\t"+t._s(t.t("settings",'The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to "Show to everyone" and scope is set to "Private", "Private" is respected.'))+"\n\t")]),t._v(" "),e("div",{staticClass:"visibility-dropdowns",style:{gridTemplateRows:"repeat(".concat(t.rows,", 44px)")}},t._l(t.visibilityParams,(function(n){return e("VisibilityDropdown",{key:n.id,attrs:{"param-id":n.id,"display-id":n.displayId,visibility:n.visibility},on:{"update:visibility":function(e){return t.$set(n,"visibility",e)}}})})),1)],1)}),[],!1,null,"a07dbf96",null).exports;r.nc=btoa((0,i.IH)());var ri=(0,o.j)("settings","profileEnabledGlobally",!0);a.ZP.mixin({methods:{t:s.Iu}});var ai=a.ZP.extend(Ht),ii=a.ZP.extend(ae),oi=a.ZP.extend(Ee),si=a.ZP.extend(an),li=a.ZP.extend(mn),ci=a.ZP.extend(xn),ui=a.ZP.extend(jn),pi=a.ZP.extend(Tn),di=a.ZP.extend(Vn),fi=a.ZP.extend(cr),Ai=a.ZP.extend(kr);if((new ai).$mount("#vue-avatar-section"),(new ii).$mount("#vue-details-section"),(new oi).$mount("#vue-displayname-section"),(new si).$mount("#vue-email-section"),(new li).$mount("#vue-phone-section"),(new ci).$mount("#vue-location-section"),(new ui).$mount("#vue-website-section"),(new pi).$mount("#vue-twitter-section"),(new di).$mount("#vue-fediverse-section"),(new fi).$mount("#vue-language-section"),(new Ai).$mount("#vue-locale-section"),ri){var mi=a.ZP.extend(na),vi=a.ZP.extend(ca),bi=a.ZP.extend(va),gi=a.ZP.extend(wa),yi=a.ZP.extend(Ia),hi=a.ZP.extend(ni);(new mi).$mount("#vue-profile-section"),(new vi).$mount("#vue-organisation-section"),(new bi).$mount("#vue-role-section"),(new gi).$mount("#vue-headline-section"),(new yi).$mount("#vue-biography-section"),(new hi).$mount("#vue-profile-visibility-section")}},24025:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-04cca3b6]{grid-row:1/3}.avatar__container[data-v-04cca3b6]{margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px 0;width:300px}.avatar__container span[data-v-04cca3b6]{color:var(--color-text-lighter)}.avatar__preview[data-v-04cca3b6]{display:flex;justify-content:center;align-items:center;width:180px;height:180px}.avatar__buttons[data-v-04cca3b6]{display:flex;gap:0 10px}.avatar__cropper[data-v-04cca3b6]{width:300px;height:300px;overflow:hidden}.avatar__cropper-buttons[data-v-04cca3b6]{width:100%;display:flex;justify-content:space-between}.avatar__cropper[data-v-04cca3b6] .cropper-view-box{border-radius:50%}input[type=file][data-v-04cca3b6]{display:none}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/AvatarSection.vue"],names:[],mappings:"AACA,yBACC,YAAA,CAGA,oCACC,aAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CAEA,yCACC,+BAAA,CAIF,kCACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,YAAA,CAGD,kCACC,YAAA,CACA,UAAA,CAGD,kCACC,WAAA,CACA,YAAA,CACA,eAAA,CAEA,0CACC,UAAA,CACA,YAAA,CACA,6BAAA,CAGD,oDACC,iBAAA,CAKH,kCACC,YAAA",sourcesContent:['\nsection {\n\tgrid-row: 1/3;\n}\n.avatar {\n\t&__container {\n\t\tmargin: 0 auto;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tgap: 16px 0;\n\t\twidth: 300px;\n\n\t\tspan {\n\t\t\tcolor: var(--color-text-lighter);\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 180px;\n\t\theight: 180px;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\t}\n\n\t&__cropper {\n\t\twidth: 300px;\n\t\theight: 300px;\n\t\toverflow: hidden;\n\n\t\t&-buttons {\n\t\t\twidth: 100%;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\n\t\t&::v-deep .cropper-view-box {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n}\n\ninput[type="file"] {\n\tdisplay: none;\n}\n'],sourceRoot:""}]),e.Z=o},18118:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".details[data-v-1ab46e68]{display:flex;flex-direction:column;margin:10px 32px 10px 0;gap:16px 0;color:var(--color-text-lighter)}.details__groups[data-v-1ab46e68],.details__quota[data-v-1ab46e68]{display:flex;gap:0 10px}.details__groups-info[data-v-1ab46e68],.details__quota-info[data-v-1ab46e68]{display:flex;flex-direction:column;width:100%;gap:4px 0}.details__groups-list[data-v-1ab46e68],.details__quota-list[data-v-1ab46e68]{font-weight:bold}.details__groups[data-v-1ab46e68] .material-design-icon,.details__quota[data-v-1ab46e68] .material-design-icon{align-self:flex-start;margin-top:2px}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/DetailsSection.vue"],names:[],mappings:"AACA,0BACC,YAAA,CACA,qBAAA,CACA,uBAAA,CACA,UAAA,CACA,+BAAA,CAEA,mEAEC,YAAA,CACA,UAAA,CAEA,6EACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6EACC,gBAAA,CAGD,+GACC,qBAAA,CACA,cAAA",sourcesContent:["\n.details {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 10px 32px 10px 0;\n\tgap: 16px 0;\n\tcolor: var(--color-text-lighter);\n\n\t&__groups,\n\t&__quota {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\n\t\t&-info {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tgap: 4px 0;\n\t\t}\n\n\t\t&-list {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t&::v-deep .material-design-icon {\n\t\t\talign-self: flex-start;\n\t\t\tmargin-top: 2px;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},11121:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".email[data-v-5ff85d38]{display:grid;align-items:center}.email input[data-v-5ff85d38]{grid-area:1/1;width:100%}.email .email__actions-container[data-v-5ff85d38]{grid-area:1/1;justify-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px}.email .email__actions-container .email__actions[data-v-5ff85d38]{opacity:.4 !important}.email .email__actions-container .email__actions[data-v-5ff85d38]:hover,.email .email__actions-container .email__actions[data-v-5ff85d38]:focus,.email .email__actions-container .email__actions[data-v-5ff85d38]:active{opacity:.8 !important}.email .email__actions-container .email__actions[data-v-5ff85d38] button{height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}.email__helper-text-message[data-v-5ff85d38]{padding:4px 0;display:flex;align-items:center}.email__helper-text-message__icon[data-v-5ff85d38]{margin-right:8px;align-self:start;margin-top:4px}.email__helper-text-message--error[data-v-5ff85d38]{color:var(--color-error)}.fade-enter[data-v-5ff85d38],.fade-leave-to[data-v-5ff85d38]{opacity:0}.fade-enter-active[data-v-5ff85d38]{transition:opacity 200ms ease-out}.fade-leave-active[data-v-5ff85d38]{transition:opacity 300ms ease-out}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue"],names:[],mappings:"AACA,wBACC,YAAA,CACA,kBAAA,CAEA,8BACC,aAAA,CACA,UAAA,CAGD,kDACC,aAAA,CACA,qBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CAEA,kEACC,qBAAA,CAEA,yNAGC,qBAAA,CAGD,yEACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAKH,6CACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,mDACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,oDACC,wBAAA,CAKH,6DAEC,SAAA,CAGD,oCACC,iCAAA,CAGD,oCACC,iCAAA",sourcesContent:["\n.email {\n\tdisplay: grid;\n\talign-items: center;\n\n\tinput {\n\t\tgrid-area: 1 / 1;\n\t\twidth: 100%;\n\t}\n\n\t.email__actions-container {\n\t\tgrid-area: 1 / 1;\n\t\tjustify-self: flex-end;\n\t\theight: 30px;\n\n\t\tdisplay: flex;\n\t\tgap: 0 2px;\n\t\tmargin-right: 5px;\n\n\t\t.email__actions {\n\t\t\topacity: 0.4 !important;\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 0.8 !important;\n\t\t\t}\n\n\t\t\t&::v-deep button {\n\t\t\t\theight: 30px !important;\n\t\t\t\tmin-height: 30px !important;\n\t\t\t\twidth: 30px !important;\n\t\t\t\tmin-width: 30px !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-enter-active {\n\ttransition: opacity 200ms ease-out;\n}\n\n.fade-leave-active {\n\ttransition: opacity 300ms ease-out;\n}\n"],sourceRoot:""}]),e.Z=o},73070:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-46c7eb7e]{padding:10px 10px}section[data-v-46c7eb7e] button:disabled{cursor:default}section .additional-emails-label[data-v-46c7eb7e]{display:block;margin-top:16px}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,kDACC,aAAA,CACA,eAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.additional-emails-label {\n\t\tdisplay: block;\n\t\tmargin-top: 16px;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},42569:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".language[data-v-5c847b3a]{display:grid}.language select[data-v-5c847b3a]{width:100%}.language a[data-v-5c847b3a]{color:var(--color-main-text);text-decoration:none;width:max-content}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue"],names:[],mappings:"AACA,2BACC,YAAA,CAEA,kCACC,UAAA,CAGD,6BACC,4BAAA,CACA,oBAAA,CACA,iBAAA",sourcesContent:["\n.language {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n\n\ta {\n\t\tcolor: var(--color-main-text);\n\t\ttext-decoration: none;\n\t\twidth: max-content;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},12531:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-92685b76]{padding:10px 10px}section[data-v-92685b76] button:disabled{cursor:default}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},87229:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".locale[data-v-1ac456dc]{display:grid}.locale select[data-v-1ac456dc]{width:100%}.example[data-v-1ac456dc]{margin:10px 0;display:flex;gap:0 10px;color:var(--color-text-lighter)}.example[data-v-1ac456dc] .material-design-icon{align-self:flex-start;margin-top:2px}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue"],names:[],mappings:"AACA,yBACC,YAAA,CAEA,gCACC,UAAA,CAIF,0BACC,aAAA,CACA,YAAA,CACA,UAAA,CACA,+BAAA,CAEA,gDACC,qBAAA,CACA,cAAA",sourcesContent:["\n.locale {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n}\n\n.example {\n\tmargin: 10px 0;\n\tdisplay: flex;\n\tgap: 0 10px;\n\tcolor: var(--color-text-lighter);\n\n\t&::v-deep .material-design-icon {\n\t\talign-self: flex-start;\n\t\tmargin-top: 2px;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},682:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-84fca724]{padding:10px 10px}section[data-v-84fca724] button:disabled{cursor:default}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},64534:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"html{scroll-behavior:smooth}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue"],names:[],mappings:"AACA,KACC,sBAAA,CAEA,mDAHD,KAIE,oBAAA,CAAA",sourcesContent:["\nhtml {\n\tscroll-behavior: smooth;\n\n\t@media screen and (prefers-reduced-motion: reduce) {\n\t\tscroll-behavior: auto;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},40001:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"a[data-v-1caba458]{display:block;height:44px;width:290px;line-height:44px;padding:0 16px;margin:14px auto;border-radius:var(--border-radius-pill);opacity:.4;background-color:rgba(0,0,0,0)}a .anchor-icon[data-v-1caba458]{display:inline-block;vertical-align:middle;margin-top:6px;margin-right:8px}a[data-v-1caba458]:hover,a[data-v-1caba458]:focus,a[data-v-1caba458]:active{opacity:.8;background-color:rgba(127,127,127,.25)}a.disabled[data-v-1caba458]{pointer-events:none}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue"],names:[],mappings:"AACA,mBACC,aAAA,CACA,WAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,uCAAA,CACA,UAAA,CACA,8BAAA,CAEA,gCACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,gBAAA,CAGD,4EAGC,UAAA,CACA,sCAAA,CAGD,4BACC,mBAAA",sourcesContent:["\na {\n\tdisplay: block;\n\theight: 44px;\n\twidth: 290px;\n\tline-height: 44px;\n\tpadding: 0 16px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-pill);\n\topacity: 0.4;\n\tbackground-color: transparent;\n\n\t.anchor-icon {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tmargin-top: 6px;\n\t\tmargin-right: 8px;\n\t}\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\topacity: 0.8;\n\t\tbackground-color: rgba(127, 127, 127, .25);\n\t}\n\n\t&.disabled {\n\t\tpointer-events: none;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},80507:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".preview-card[data-v-61586aa5]{display:flex;flex-direction:column;position:relative;width:290px;height:116px;margin:14px auto;border-radius:var(--border-radius-large);background-color:var(--color-main-background);font-weight:bold;box-shadow:0 2px 9px var(--color-box-shadow)}.preview-card[data-v-61586aa5]:hover,.preview-card[data-v-61586aa5]:focus,.preview-card[data-v-61586aa5]:active{box-shadow:0 2px 12px var(--color-box-shadow)}.preview-card[data-v-61586aa5]:focus-visible{outline:var(--color-main-text) solid 1px;outline-offset:3px}.preview-card.disabled[data-v-61586aa5]{filter:grayscale(1);opacity:.5;cursor:default;box-shadow:0 0 3px var(--color-box-shadow)}.preview-card.disabled *[data-v-61586aa5],.preview-card.disabled[data-v-61586aa5] *{cursor:default}.preview-card__avatar[data-v-61586aa5]{position:absolute !important;top:40px;left:18px;z-index:1}.preview-card__avatar[data-v-61586aa5]:not(.avatardiv--unknown){box-shadow:0 0 0 3px var(--color-main-background) !important}.preview-card__header[data-v-61586aa5],.preview-card__footer[data-v-61586aa5]{position:relative;width:auto}.preview-card__header span[data-v-61586aa5],.preview-card__footer span[data-v-61586aa5]{position:absolute;left:78px;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}@supports(-webkit-line-clamp: 2){.preview-card__header span[data-v-61586aa5],.preview-card__footer span[data-v-61586aa5]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.preview-card__header[data-v-61586aa5]{height:70px;border-radius:var(--border-radius-large) var(--border-radius-large) 0 0;background-color:var(--color-primary);background-image:var(--gradient-primary-background)}.preview-card__header span[data-v-61586aa5]{bottom:0;color:var(--color-primary-text);font-size:18px;font-weight:bold;margin:0 4px 8px 0}.preview-card__footer[data-v-61586aa5]{height:46px}.preview-card__footer span[data-v-61586aa5]{top:0;color:var(--color-text-maxcontrast);font-size:14px;font-weight:normal;margin:4px 4px 0 0;line-height:1.3}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue"],names:[],mappings:"AACA,+BACC,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,WAAA,CACA,YAAA,CACA,gBAAA,CACA,wCAAA,CACA,6CAAA,CACA,gBAAA,CACA,4CAAA,CAEA,gHAGC,6CAAA,CAGD,6CACC,wCAAA,CACA,kBAAA,CAGD,wCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,0CAAA,CAEA,oFAEC,cAAA,CAIF,uCAEC,4BAAA,CACA,QAAA,CACA,SAAA,CACA,SAAA,CAEA,gEACC,4DAAA,CAIF,8EAEC,iBAAA,CACA,UAAA,CAEA,wFACC,iBAAA,CACA,SAAA,CACA,eAAA,CACA,sBAAA,CACA,sBAAA,CAEA,iCAPD,wFAQE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,uCACC,WAAA,CACA,uEAAA,CACA,qCAAA,CACA,mDAAA,CAEA,4CACC,QAAA,CACA,+BAAA,CACA,cAAA,CACA,gBAAA,CACA,kBAAA,CAIF,uCACC,WAAA,CAEA,4CACC,KAAA,CACA,mCAAA,CACA,cAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA",sourcesContent:["\n.preview-card {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: relative;\n\twidth: 290px;\n\theight: 116px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: var(--color-main-background);\n\tfont-weight: bold;\n\tbox-shadow: 0 2px 9px var(--color-box-shadow);\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbox-shadow: 0 2px 12px var(--color-box-shadow);\n\t}\n\n\t&:focus-visible {\n\t\toutline: var(--color-main-text) solid 1px;\n\t\toutline-offset: 3px;\n\t}\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tbox-shadow: 0 0 3px var(--color-box-shadow);\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\t// Override Avatar component position to fix positioning on rerender\n\t\tposition: absolute !important;\n\t\ttop: 40px;\n\t\tleft: 18px;\n\t\tz-index: 1;\n\n\t\t&:not(.avatardiv--unknown) {\n\t\t\tbox-shadow: 0 0 0 3px var(--color-main-background) !important;\n\t\t}\n\t}\n\n\t&__header,\n\t&__footer {\n\t\tposition: relative;\n\t\twidth: auto;\n\n\t\tspan {\n\t\t\tposition: absolute;\n\t\t\tleft: 78px;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow-wrap: anywhere;\n\n\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__header {\n\t\theight: 70px;\n\t\tborder-radius: var(--border-radius-large) var(--border-radius-large) 0 0;\n\t\tbackground-color: var(--color-primary);\n\t\tbackground-image: var(--gradient-primary-background);\n\n\t\tspan {\n\t\t\tbottom: 0;\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tfont-size: 18px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: 0 4px 8px 0;\n\t\t}\n\t}\n\n\t&__footer {\n\t\theight: 46px;\n\n\t\tspan {\n\t\t\ttop: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: normal;\n\t\t\tmargin: 4px 4px 0 0;\n\t\t\tline-height: 1.3;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},90552:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-cf64d964]{padding:10px 10px}section[data-v-cf64d964] button:disabled{cursor:default}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},45386:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-a07dbf96]{padding:30px;max-width:900px;width:100%}section em[data-v-a07dbf96]{display:block;margin:16px 0}section em.disabled[data-v-a07dbf96]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}section em.disabled *[data-v-a07dbf96],section em.disabled[data-v-a07dbf96] *{cursor:default;pointer-events:none}section .visibility-dropdowns[data-v-a07dbf96]{display:grid;gap:10px 40px}@media(min-width: 1200px){section[data-v-a07dbf96]{width:940px}section .visibility-dropdowns[data-v-a07dbf96]{grid-auto-flow:column}}@media(max-width: 1200px){section[data-v-a07dbf96]{width:470px}}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue"],names:[],mappings:"AACA,yBACC,YAAA,CACA,eAAA,CACA,UAAA,CAEA,4BACC,aAAA,CACA,aAAA,CAEA,qCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,8EAEC,cAAA,CACA,mBAAA,CAKH,+CACC,YAAA,CACA,aAAA,CAGD,0BA5BD,yBA6BE,WAAA,CAEA,+CACC,qBAAA,CAAA,CAIF,0BApCD,yBAqCE,WAAA,CAAA",sourcesContent:["\nsection {\n\tpadding: 30px;\n\tmax-width: 900px;\n\twidth: 100%;\n\n\tem {\n\t\tdisplay: block;\n\t\tmargin: 16px 0;\n\n\t\t&.disabled {\n\t\t\tfilter: grayscale(1);\n\t\t\topacity: 0.5;\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\n\t\t\t& *,\n\t\t\t&::v-deep * {\n\t\t\t\tcursor: default;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t.visibility-dropdowns {\n\t\tdisplay: grid;\n\t\tgap: 10px 40px;\n\t}\n\n\t@media (min-width: 1200px) {\n\t\twidth: 940px;\n\n\t\t.visibility-dropdowns {\n\t\t\tgrid-auto-flow: column;\n\t\t}\n\t}\n\n\t@media (max-width: 1200px) {\n\t\twidth: 470px;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},63019:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".visibility-container[data-v-b13d20da]{display:flex;width:max-content}.visibility-container.disabled[data-v-b13d20da]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}.visibility-container.disabled *[data-v-b13d20da],.visibility-container.disabled[data-v-b13d20da] *{cursor:default;pointer-events:none}.visibility-container label[data-v-b13d20da]{color:var(--color-text-lighter);width:150px;line-height:50px}.visibility-container__select[data-v-b13d20da]{width:270px;max-width:40vw}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue"],names:[],mappings:"AACA,uCACC,YAAA,CACA,iBAAA,CAEA,gDACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,oGAEC,cAAA,CACA,mBAAA,CAIF,6CACC,+BAAA,CACA,WAAA,CACA,gBAAA,CAGD,+CACC,WAAA,CACA,cAAA",sourcesContent:["\n.visibility-container {\n\tdisplay: flex;\n\twidth: max-content;\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tpointer-events: none;\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n\n\tlabel {\n\t\tcolor: var(--color-text-lighter);\n\t\twidth: 150px;\n\t\tline-height: 50px;\n\t}\n\n\t&__select {\n\t\twidth: 270px;\n\t\tmax-width: 40vw;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},78784:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,"section[data-v-6eb7d8e0]{padding:10px 10px}section[data-v-6eb7d8e0] button:disabled{cursor:default}section .property[data-v-6eb7d8e0]{display:grid;align-items:center}section .property textarea[data-v-6eb7d8e0]{resize:vertical;grid-area:1/1;width:100%}section .property input[data-v-6eb7d8e0]{grid-area:1/1;width:100%}section .property .property__actions-container[data-v-6eb7d8e0]{grid-area:1/1;justify-self:flex-end;align-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px;margin-bottom:5px}section .property__helper-text-message[data-v-6eb7d8e0]{padding:4px 0;display:flex;align-items:center}section .property__helper-text-message__icon[data-v-6eb7d8e0]{margin-right:8px;align-self:start;margin-top:4px}section .property__helper-text-message--error[data-v-6eb7d8e0]{color:var(--color-error)}section .fade-enter[data-v-6eb7d8e0],section .fade-leave-to[data-v-6eb7d8e0]{opacity:0}section .fade-enter-active[data-v-6eb7d8e0]{transition:opacity 200ms ease-out}section .fade-leave-active[data-v-6eb7d8e0]{transition:opacity 300ms ease-out}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue"],names:[],mappings:"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,mCACC,YAAA,CACA,kBAAA,CAEA,4CACC,eAAA,CACA,aAAA,CACA,UAAA,CAGD,yCACC,aAAA,CACA,UAAA,CAGD,gEACC,aAAA,CACA,qBAAA,CACA,mBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CACA,iBAAA,CAIF,wDACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,8DACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,+DACC,wBAAA,CAIF,6EAEC,SAAA,CAGD,4CACC,iCAAA,CAGD,4CACC,iCAAA",sourcesContent:["\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.property {\n\t\tdisplay: grid;\n\t\talign-items: center;\n\n\t\ttextarea {\n\t\t\tresize: vertical;\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\tinput {\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.property__actions-container {\n\t\t\tgrid-area: 1 / 1;\n\t\t\tjustify-self: flex-end;\n\t\t\talign-self: flex-end;\n\t\t\theight: 30px;\n\n\t\t\tdisplay: flex;\n\t\t\tgap: 0 2px;\n\t\t\tmargin-right: 5px;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n\n\t.property__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n\n\t.fade-enter,\n\t.fade-leave-to {\n\t\topacity: 0;\n\t}\n\n\t.fade-enter-active {\n\t\ttransition: opacity 200ms ease-out;\n\t}\n\n\t.fade-leave-active {\n\t\ttransition: opacity 300ms ease-out;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},14036:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".federation-actions[data-v-4ea07669],.federation-actions--additional[data-v-4ea07669]{opacity:.4 !important}.federation-actions[data-v-4ea07669]:hover,.federation-actions[data-v-4ea07669]:focus,.federation-actions[data-v-4ea07669]:active,.federation-actions--additional[data-v-4ea07669]:hover,.federation-actions--additional[data-v-4ea07669]:focus,.federation-actions--additional[data-v-4ea07669]:active{opacity:.8 !important}.federation-actions--additional[data-v-4ea07669] button{padding-bottom:7px;height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue"],names:[],mappings:"AACA,sFAEC,qBAAA,CAEA,wSAGC,qBAAA,CAKD,wDAEC,kBAAA,CACA,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA",sourcesContent:["\n.federation-actions,\n.federation-actions--additional {\n\topacity: 0.4 !important;\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\topacity: 0.8 !important;\n\t}\n}\n\n.federation-actions--additional {\n\t&::v-deep button {\n\t\t// TODO remove this hack\n\t\tpadding-bottom: 7px;\n\t\theight: 30px !important;\n\t\tmin-height: 30px !important;\n\t\twidth: 30px !important;\n\t\tmin-width: 30px !important;\n\t}\n}\n"],sourceRoot:""}]),e.Z=o},28561:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".federation-actions__btn[data-v-d426ed04] p{width:150px !important;padding:8px 0 !important;color:var(--color-main-text) !important;font-size:12.8px !important;line-height:1.5em !important}.federation-actions__btn--active[data-v-d426ed04]{background-color:var(--color-primary-light) !important;box-shadow:inset 2px 0 var(--color-primary) !important}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue"],names:[],mappings:"AAEC,4CACC,sBAAA,CACA,wBAAA,CACA,uCAAA,CACA,2BAAA,CACA,4BAAA,CAIF,kDACC,sDAAA,CACA,sDAAA",sourcesContent:["\n.federation-actions__btn {\n\t&::v-deep p {\n\t\twidth: 150px !important;\n\t\tpadding: 8px 0 !important;\n\t\tcolor: var(--color-main-text) !important;\n\t\tfont-size: 12.8px !important;\n\t\tline-height: 1.5em !important;\n\t}\n}\n\n.federation-actions__btn--active {\n\tbackground-color: var(--color-primary-light) !important;\n\tbox-shadow: inset 2px 0 var(--color-primary) !important;\n}\n"],sourceRoot:""}]),e.Z=o},90564:function(t,e,n){"use strict";var r=n(87537),a=n.n(r),i=n(23645),o=n.n(i)()(a());o.push([t.id,".headerbar-label[data-v-b43fcc0c]{font-weight:normal;display:inline-flex;width:100%;margin:12px 0 0 0;gap:8px;align-items:center;font-size:16px;color:var(--color-text-light)}.headerbar-label.profile-property[data-v-b43fcc0c]{height:38px}.headerbar-label.setting-property[data-v-b43fcc0c]{height:44px}.headerbar-label label[data-v-b43fcc0c]{cursor:pointer}.federation-control[data-v-b43fcc0c]{margin:0}.button-vue[data-v-b43fcc0c]{margin:0 0 0 auto !important}","",{version:3,sources:["webpack://./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue"],names:[],mappings:"AACA,kCACC,kBAAA,CACA,mBAAA,CACA,UAAA,CACA,iBAAA,CACA,OAAA,CACA,kBAAA,CACA,cAAA,CACA,6BAAA,CAEA,mDACC,WAAA,CAGD,mDACC,WAAA,CAGD,wCACC,cAAA,CAIF,qCACC,QAAA,CAGD,6BACC,4BAAA",sourcesContent:["\n.headerbar-label {\n\tfont-weight: normal;\n\tdisplay: inline-flex;\n\twidth: 100%;\n\tmargin: 12px 0 0 0;\n\tgap: 8px;\n\talign-items: center;\n\tfont-size: 16px;\n\tcolor: var(--color-text-light);\n\n\t&.profile-property {\n\t\theight: 38px;\n\t}\n\n\t&.setting-property {\n\t\theight: 44px;\n\t}\n\n\tlabel {\n\t\tcursor: pointer;\n\t}\n}\n\n.federation-control {\n\tmargin: 0;\n}\n\n.button-vue {\n\tmargin: 0 0 0 auto !important;\n}\n"],sourceRoot:""}]),e.Z=o},46700:function(t,e,n){var r={"./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 a(t){var e=i(t);return n(e)}function i(t){if(!n.o(r,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return r[t]}a.keys=function(){return Object.keys(r)},a.resolve=i,t.exports=a,a.id=46700},8738:function(t){"use strict";t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC"},81490:function(t){"use strict";t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo="},90888:function(t){"use strict";t.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo="}},r={};function a(t){var e=r[t];if(void 0!==e)return e.exports;var i=r[t]={id:t,loaded:!1,exports:{}};return n[t].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}a.m=n,e=[],a.O=function(t,n,r,i){if(!n){var o=1/0;for(u=0;u<e.length;u++){n=e[u][0],r=e[u][1],i=e[u][2];for(var s=!0,l=0;l<n.length;l++)(!1&i||o>=i)&&Object.keys(a.O).every((function(t){return a.O[t](n[l])}))?n.splice(l--,1):(s=!1,i<o&&(o=i));if(s){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}i=i||0;for(var u=e.length;u>0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,r,i]},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,{a:e}),e},a.d=function(t,e){for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.nmd=function(t){return t.paths=[],t.children||(t.children=[]),t},a.j=4418,function(){a.b=document.baseURI||self.location.href;var t={4418:0};a.O.j=function(e){return 0===t[e]};var e=function(e,n){var r,i,o=n[0],s=n[1],l=n[2],c=0;if(o.some((function(e){return 0!==t[e]}))){for(r in s)a.o(s,r)&&(a.m[r]=s[r]);if(l)var u=l(a)}for(e&&e(n);c<o.length;c++)i=o[c],a.o(t,i)&&t[i]&&t[i][0](),t[i]=0;return a.O(u)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))}(),a.nc=void 0;var i=a.O(void 0,[7874],(function(){return a(30485)}));i=a.O(i)}();
+//# sourceMappingURL=settings-vue-settings-personal-info.js.map?v=2c78efa6559027375118 \ No newline at end of file
diff --git a/dist/settings-vue-settings-personal-info.js.map b/dist/settings-vue-settings-personal-info.js.map
index e24f14ccd3a..220ec4623af 100644
--- a/dist/settings-vue-settings-personal-info.js.map
+++ b/dist/settings-vue-settings-personal-info.js.map
@@ -1 +1 @@
-{"version":3,"file":"settings-vue-settings-personal-info.js?v=6518bf4f93cb5f9e8289","mappings":";gBAAIA,uRCA4M,ECsChN,CACAC,KAAAA,0BAEAC,WAAAA,CACAC,qBAAAA,IAGAC,MAAAA,CACAC,YAAAA,CACAC,KAAAA,OACAC,UAAAA,GAEAC,YAAAA,CACAF,KAAAA,OACAC,UAAAA,GAEAE,kBAAAA,CACAH,KAAAA,SACAI,QAAAA,WAAAA,GAEAC,UAAAA,CACAL,KAAAA,OACAC,UAAAA,GAEAK,iBAAAA,CACAN,KAAAA,QACAC,UAAAA,GAEAN,KAAAA,CACAK,KAAAA,OACAC,UAAAA,GAEAM,gBAAAA,CACAP,KAAAA,OACAI,QAAAA,IAEAI,QAAAA,CACAR,KAAAA,OACAC,UAAAA,IAIAQ,QAAAA,CACAC,YAAAA,WACA,iCACA,qICxEIC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,YAAiB,WALlD,uBCbIM,GAAY,OACd,GCTW,WAAkB,IAAIC,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,iBAAiB,CAACE,YAAY,0BAA0BC,MAAM,CAAE,kCAAmCL,EAAInB,cAAgBmB,EAAIvB,MAAO6B,MAAM,CAAC,aAAaN,EAAIZ,iBAAmBY,EAAIV,QAAUU,EAAIX,gBAAgB,qBAAoB,EAAK,UAAYW,EAAIZ,iBAAiB,KAAOY,EAAIb,UAAU,MAAQa,EAAIZ,iBAAmBY,EAAIV,QAAUU,EAAIX,iBAAiBkB,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBV,EAAIR,YAAYmB,MAAM,KAAMC,UAAU,IAAI,CAACZ,EAAIa,GAAG,OAAOb,EAAIc,GAAGd,EAAIZ,iBAAmBY,EAAIV,QAAUU,EAAIX,iBAAiB,OACrnB,GACsB,IDUpB,EACA,KACA,WACA,MAIF,EAAeU,EAAiB,6oBEUzB,IAAMgB,EAAwBC,OAAOC,OAAO,CAClDC,QAAS,UACTC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,iBAAkB,kBAClBC,MAAO,QACPC,SAAU,WACVC,mBAAoB,eACpBC,UAAW,YACXC,aAAc,eACdC,MAAO,QACPC,gBAAiB,kBACjBC,KAAM,OACNC,QAAS,UACTC,QAAS,YAIGC,EAAiCjB,OAAOC,OAAO,CAC3DC,SAASgB,EAAAA,EAAAA,IAAE,WAAY,YACvBf,QAAQe,EAAAA,EAAAA,IAAE,WAAY,mBACtBd,WAAWc,EAAAA,EAAAA,IAAE,WAAY,SACzBb,aAAaa,EAAAA,EAAAA,IAAE,WAAY,aAC3BZ,kBAAkBY,EAAAA,EAAAA,IAAE,WAAY,oBAChCX,OAAOW,EAAAA,EAAAA,IAAE,WAAY,SACrBV,UAAUU,EAAAA,EAAAA,IAAE,WAAY,YACxBP,cAAcO,EAAAA,EAAAA,IAAE,WAAY,gBAC5BN,OAAOM,EAAAA,EAAAA,IAAE,WAAY,gBACrBL,iBAAiBK,EAAAA,EAAAA,IAAE,WAAY,WAC/BJ,MAAMI,EAAAA,EAAAA,IAAE,WAAY,QACpBH,SAASG,EAAAA,EAAAA,IAAE,WAAY,WACvBR,WAAWQ,EAAAA,EAAAA,IAAE,WAAY,6BACzBF,SAASE,EAAAA,EAAAA,IAAE,WAAY,aAGXC,EAAqBnB,OAAOC,QAAM,OAC7CF,EAAsBG,QAAUe,EAA+Bf,SAAO,IACtEH,EAAsBI,OAASc,EAA+Bd,QAAM,IACpEJ,EAAsBK,UAAYa,EAA+Bb,WAAS,IAC1EL,EAAsBM,YAAcY,EAA+BZ,aAAW,IAC9EN,EAAsBO,iBAAmBW,EAA+BX,kBAAgB,IACxFP,EAAsBQ,MAAQU,EAA+BV,OAAK,IAClER,EAAsBS,SAAWS,EAA+BT,UAAQ,IACxET,EAAsBY,aAAeM,EAA+BN,cAAY,IAChFZ,EAAsBa,MAAQK,EAA+BL,OAAK,IAClEb,EAAsBc,gBAAkBI,EAA+BJ,iBAAe,IACtFd,EAAsBe,KAAOG,EAA+BH,MAAI,IAChEf,EAAsBgB,QAAUE,EAA+BF,SAAO,IACtEhB,EAAsBW,UAAYO,EAA+BP,WAAS,IAC1EX,EAAsBiB,QAAUC,EAA+BD,SAAO,IAI3DI,EAAwBpB,OAAOC,OAAO,CAClDoB,oBAAoBH,EAAAA,EAAAA,IAAE,WAAY,wBAItBI,EAA8BtB,OAAOC,QAAM,OACtDgB,EAA+Bf,QAAUH,EAAsBG,SAAO,IACtEe,EAA+Bd,OAASJ,EAAsBI,QAAM,IACpEc,EAA+Bb,UAAYL,EAAsBK,WAAS,IAC1Ea,EAA+BZ,YAAcN,EAAsBM,aAAW,IAC9EY,EAA+BX,iBAAmBP,EAAsBO,kBAAgB,IACxFW,EAA+BV,MAAQR,EAAsBQ,OAAK,IAClEU,EAA+BT,SAAWT,EAAsBS,UAAQ,IACxES,EAA+BN,aAAeZ,EAAsBY,cAAY,IAChFM,EAA+BL,MAAQb,EAAsBa,OAAK,IAClEK,EAA+BJ,gBAAkBd,EAAsBc,iBAAe,IACtFI,EAA+BH,KAAOf,EAAsBe,MAAI,IAChEG,EAA+BF,QAAUhB,EAAsBgB,SAAO,IACtEE,EAA+BP,UAAYX,EAAsBW,WAAS,IAC1EO,EAA+BD,QAAUjB,EAAsBiB,SAAO,IAQ3DO,EAAgCvB,OAAOC,OAAO,CAC1DuB,SAAU,WACVC,OAAQ,WAIIC,GAAyC1B,OAAOC,OAAO,CACnEuB,UAAUN,EAAAA,EAAAA,IAAE,WAAY,YACxBO,QAAQP,EAAAA,EAAAA,IAAE,WAAY,YAIVS,GAAa3B,OAAOC,OAAO,CACvC2B,QAAS,aACTC,MAAO,WACPC,UAAW,eACXC,UAAW,iBAICC,GAA0ChC,OAAOC,QAAM,OAClEgB,EAA+Bf,QAAU,CAACyB,GAAWE,MAAOF,GAAWC,UAAQ,IAC/EX,EAA+Bd,OAAS,CAACwB,GAAWE,MAAOF,GAAWC,UAAQ,IAC9EX,EAA+Bb,UAAY,CAACuB,GAAWE,MAAOF,GAAWC,UAAQ,IACjFX,EAA+BZ,YAAc,CAACsB,GAAWE,QAAM,IAC/DZ,EAA+BX,iBAAmB,CAACqB,GAAWE,QAAM,IACpEZ,EAA+BV,MAAQ,CAACoB,GAAWE,QAAM,IACzDZ,EAA+BT,SAAW,CAACmB,GAAWE,MAAOF,GAAWC,UAAQ,IAChFX,EAA+BN,aAAe,CAACgB,GAAWE,MAAOF,GAAWC,UAAQ,IACpFX,EAA+BL,MAAQ,CAACe,GAAWE,MAAOF,GAAWC,UAAQ,IAC7EX,EAA+BJ,gBAAkB,CAACc,GAAWE,MAAOF,GAAWC,UAAQ,IACvFX,EAA+BH,KAAO,CAACa,GAAWE,MAAOF,GAAWC,UAAQ,IAC5EX,EAA+BF,QAAU,CAACY,GAAWE,MAAOF,GAAWC,UAAQ,IAC/EX,EAA+BP,UAAY,CAACiB,GAAWE,MAAOF,GAAWC,UAAQ,IACjFX,EAA+BD,QAAU,CAACW,GAAWE,MAAOF,GAAWC,UAAQ,IAIpEK,GAAkCjC,OAAOC,OAAO,CAC5DgB,EAA+Bb,UAC/Ba,EAA+BT,SAC/BS,EAA+BN,aAC/BM,EAA+BH,OAInBoB,GAAe,QAOfC,GAAsBnC,OAAOC,QAAM,OAC9C0B,GAAWC,QAAU,CACrBnE,KAAMkE,GAAWC,QACjB5D,aAAakD,EAAAA,EAAAA,IAAE,WAAY,WAC3B5C,SAAS4C,EAAAA,EAAAA,IAAE,WAAY,sFACvB7C,iBAAiB6C,EAAAA,EAAAA,IAAE,WAAY,qHAC/B/C,UAAW,eACX,IACAwD,GAAWE,MAAQ,CACnBpE,KAAMkE,GAAWE,MACjB7D,aAAakD,EAAAA,EAAAA,IAAE,WAAY,SAC3B5C,SAAS4C,EAAAA,EAAAA,IAAE,WAAY,sDAEvB/C,UAAW,kBACX,IACAwD,GAAWG,UAAY,CACvBrE,KAAMkE,GAAWG,UACjB9D,aAAakD,EAAAA,EAAAA,IAAE,WAAY,aAC3B5C,SAAS4C,EAAAA,EAAAA,IAAE,WAAY,uCACvB7C,iBAAiB6C,EAAAA,EAAAA,IAAE,WAAY,+HAC/B/C,UAAW,uBACX,IACAwD,GAAWI,UAAY,CACvBtE,KAAMkE,GAAWI,UACjB/D,aAAakD,EAAAA,EAAAA,IAAE,WAAY,aAC3B5C,SAAS4C,EAAAA,EAAAA,IAAE,WAAY,yEACvB7C,iBAAiB6C,EAAAA,EAAAA,IAAE,WAAY,mJAC/B/C,UAAW,cACX,IAIWiE,GAAiCT,GAAWE,MAG5CQ,GAAoBrC,OAAOC,OAAO,CAC9CqC,aAAc,EACdC,yBAA0B,EAC1BC,SAAU,IASEC,GAAuB,q4CC7K7B,IAAMC,GAA0B,6CAAG,WAAOC,EAAiBC,GAAK,0FAQR,MALzC,kBAAVA,IACVA,EAAQA,EAAQ,IAAM,KAGjBC,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,uBAAwB,CAAEJ,OAAAA,IAAS,UAExDK,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAKT,EACLC,MAAAA,IACC,OAHO,OAAHS,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAlBsC,wCA2B1BC,GAA+B,6CAAG,WAAOZ,EAAiBa,GAAK,0FAEb,OADxDX,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,uBAAwB,CAAEJ,OAAAA,IAAS,UAExDK,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAK,GAAF,OAAKT,GAAe,OAAGT,IAC1BU,MAAOY,IACN,OAHO,OAAHH,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAZ2C,wCCxC5C,IAAeG,WAAAA,MACbC,OAAO,YACPC,aACAC,wUCiCF,QAGAC,EAAAA,EAAAA,GAAAA,WAAAA,oBAAAA,CAAAA,GAFAC,GAAAA,GAAAA,kBACAC,GAAAA,GAAAA,0BC9D0M,GDiE1M,CACAtG,KAAAA,oBAEAC,WAAAA,CACAsG,UAAAA,IACAC,wBAAAA,GAGArG,MAAAA,CACAsG,SAAAA,CACApG,KAAAA,OACAC,UAAAA,EACAoG,UAAAA,SAAAA,GAAA,+FAEAC,WAAAA,CACAtG,KAAAA,QACAI,SAAAA,GAEAmG,gBAAAA,CACAvG,KAAAA,OACAI,QAAAA,IAEAoG,SAAAA,CACAxG,KAAAA,QACAI,SAAAA,GAEAqG,4BAAAA,CACAzG,KAAAA,SACAI,QAAAA,MAEAsF,MAAAA,CACA1F,KAAAA,OACAC,UAAAA,IAIAuF,KAAAA,WACA,OACAkB,kBAAAA,KAAAA,SAAAA,oBACAC,aAAAA,KAAAA,MAEA,EAEAC,SAAAA,CACAC,UAAAA,WACA,kFAAAC,SAAAA,KAAAA,kBAAApB,MAAAA,KAAAA,2BACA,EAEAqB,0BAAAA,WACA,qDACA,EAEAC,UAAAA,WACA,+BACA,EAEAC,iBAAAA,WACA,wBACA,EAEAC,gBAAAA,WACA,wBAEA,oCAIA,IACAC,EAAAA,KAAAA,GAAAA,WAGA,IACAA,EAAAA,KAAAA,GAAAA,YARA,CAYA,GAGA1G,QAAAA,CACA2G,YAAAA,SAAAA,GAAA,2IACA,6BAEA,6CACA,qEAEA,qEANA,EAQA,EAEAC,mBAAAA,SAAAA,GAAA,8KAEA5B,GAAAA,EAAAA,EAAAA,UAAAA,GAAA,OAAA6B,EAAAA,EAAAA,KACA,kBACA5B,MAAAA,EACA6B,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,kBACAC,aAAAA,EAAAA,WAAAA,8DAAAA,CAAAV,SAAAA,EAAAA,oBACAW,MAAAA,EAAAA,KACA,wDAXA,EAaA,EAEAC,sBAAAA,SAAAA,GAAA,8KAEA,0DAAAJ,EAAAA,EAAAA,KACA,kBACA5B,MAAAA,EACA6B,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,kBACAC,aAAAA,EAAAA,WAAAA,6DAAAA,CAAAV,SAAAA,EAAAA,oBACAW,MAAAA,EAAAA,KACA,wDAXA,EAaA,EAEAE,eAAAA,SAAAA,GAAA,cAAAJ,EAAAA,EAAAA,OAAAC,EAAAA,EAAAA,aAAAC,EAAAA,EAAAA,MACA,SACA,qBAEA,8CACAG,EAAAA,EAAAA,IAAAA,GACAC,GAAAA,MAAAA,EAAAA,GAEA,gBEtLI,GAAU,CAAC,EAEf,GAAQjH,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,YAAY,CAACG,MAAM,CAAE,sBAAuBL,EAAIoF,WAAY,iCAAkCpF,EAAIoF,YAAa9E,MAAM,CAAC,aAAaN,EAAI2F,UAAU,eAAe3F,EAAI8F,UAAU,SAAW9F,EAAIsF,WAAWtF,EAAI4G,GAAI5G,EAAI+F,kBAAkB,SAASc,GAAiB,OAAO3G,EAAG,0BAA0B,CAACkE,IAAIyC,EAAgBpI,KAAK6B,MAAM,CAAC,eAAeN,EAAIwE,MAAM,eAAeqC,EAAgB7H,YAAY,sBAAsBgB,EAAIkG,YAAY,aAAaW,EAAgB1H,UAAU,qBAAqBa,EAAIgG,gBAAgBc,SAASD,EAAgBpI,MAAM,KAAOoI,EAAgBpI,KAAK,mBAAmBoI,EAAgBxH,gBAAgB,QAAUwH,EAAgBvH,QAAQ,aAAauH,EAAgBvH,UAAU,IAAG,EAC/vB,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEnBkK,GCiElM,CACAb,KAAAA,YAEAC,WAAAA,CACAqI,kBAAAA,GACAC,SAAAA,IACAC,KAAAA,EAAAA,GAGArI,MAAAA,CACA4F,MAAAA,CACA1F,KAAAA,OACAI,QAAAA,MAEAgG,SAAAA,CACApG,KAAAA,OACAC,UAAAA,GAEAmI,QAAAA,CACApI,KAAAA,OACAI,QAAAA,MAEAiI,WAAAA,CACArI,KAAAA,QACAI,SAAAA,GAEAkI,sBAAAA,CACAtI,KAAAA,QACAI,SAAAA,GAEAmI,eAAAA,CACAvI,KAAAA,QACAI,SAAAA,GAEAoI,UAAAA,CACAxI,KAAAA,QACAI,SAAAA,IAIAoF,KAAAA,WACA,OACAiD,WAAAA,KAAAA,MAEA,EAEA7B,SAAAA,CACA8B,kBAAAA,WACA,wCACA,EAEAC,kBAAAA,WACA,0FACA,GAGAlI,QAAAA,CACAmI,gBAAAA,WACA,4BACA,EAEAC,cAAAA,SAAAA,GACA,4BACA,gBCrHI,GAAU,CAAC,EAEf,GAAQjI,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICbI,IAAY,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAGF,EAAIsH,UAAY,KAAH,MAAgB,CAACM,IAAI,YAAYxH,YAAY,kBAAkBC,MAAM,CAAE,mBAAoBL,EAAIyH,kBAAmB,mBAAoBzH,EAAIwH,oBAAqB,CAAExH,EAAIsH,UAAWpH,EAAG,OAAO,CAACF,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIkF,UAAU,UAAUhF,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMN,EAAIkH,UAAU,CAAClH,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIkF,UAAU,UAAUlF,EAAIa,GAAG,KAAMb,EAAIwE,MAAO,CAACtE,EAAG,oBAAoB,CAACE,YAAY,qBAAqBE,MAAM,CAAC,SAAWN,EAAIkF,SAAS,MAAQlF,EAAIuH,YAAYhH,GAAG,CAAC,eAAe,CAAC,SAASC,GAAQR,EAAIuH,WAAW/G,CAAM,EAAER,EAAI2H,mBAAmB3H,EAAI6H,KAAK7H,EAAIa,GAAG,KAAMb,EAAImH,YAAcnH,EAAIoH,sBAAuB,CAAClH,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,WAAW,UAAYN,EAAIqH,eAAe,aAAarH,EAAIkC,EAAE,WAAY,yBAAyB3B,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBV,EAAI0H,gBAAgB/G,MAAM,KAAMC,UAAU,GAAGkH,YAAY9H,EAAI+H,GAAG,CAAC,CAAC3D,IAAI,OAAO4D,GAAG,WAAW,MAAO,CAAC9H,EAAG,OAAO,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE2H,OAAM,IAAO,MAAK,EAAM,WAAW,CAACjI,EAAIa,GAAG,WAAWb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,QAAQ,aAAalC,EAAI6H,MAAM,EAC1nC,GACsB,IDUpB,EACA,KACA,WACA,MAIF,GAAe,GAAiB,whDEgGhC,IAAAK,IAAA,+CAAAA,OACAC,IAAA,0CAAAA,sBAEA,8BAEA,yDACAC,gBAAAA,GACAC,kBAAAA,IACAC,UAAAA,GACAC,QAAAA,GACAC,kBAAAA,GACA5D,QAEA,IACAnG,KAAAA,gBAEAC,WAAAA,CACA+J,OAAAA,EAAAA,EACAC,OAAAA,EAAAA,QACAC,UAAAA,GACAC,SAAAA,IACA5B,SAAAA,IACA6B,OAAAA,EAAAA,EACAC,WAAAA,EAAAA,GAGAxE,KAAAA,WACA,OACA4D,OAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAhD,SAAAA,EAAAA,GAAAA,QACAiD,sBAAAA,GACAY,aAAAA,EACAC,SAAAA,EACAnF,QAAAA,EAAAA,EAAAA,MAAAA,IACA7E,aAAAA,EAAAA,EAAAA,MAAAA,YACAiK,QAAAA,cAAAA,OAAAA,QACAC,YAAAA,cAAAA,OAAAA,UACAC,eAAAA,GACAC,eAAAA,CACAC,YAAAA,EACAC,SAAAA,EACAC,QAAAA,EACAC,QAAAA,EACAC,WAAAA,EACAC,aAAAA,EACAC,kBAAAA,IACAC,mBAAAA,KAGA,EAEAlE,SAAAA,CACAwB,QAAAA,WACA,kDACA,GAGA2C,QAAAA,YACAC,EAAAA,EAAAA,IAAAA,gCAAAA,KAAAA,wBACA,EAEAC,cAAAA,YACAC,EAAAA,EAAAA,IAAAA,gCAAAA,KAAAA,wBACA,EAEAzK,QAAAA,CACA0K,wBAAAA,WAEA,4BACA,wBACA,EAEAC,SAAAA,SAAAA,GAAA,WACA,gBACA,wBACA,yCAGA,OAFAxD,EAAAA,EAAAA,IAAAA,EAAAA,WAAAA,+CACA,cAIA,qBACAyD,EAAAA,OAAAA,SAAAA,GACA,yCACA,gBACA,EACAA,EAAAA,cAAAA,EACA,EAEAC,eAAAA,WAAA,uKACAC,GAAAA,OAAA,OACA,OADAC,EAAAA,EAAAA,KACA,+BAEAnG,EAAAA,QAAAA,MAAAA,EAAAA,EAAAA,aAAAA,WAAAA,CAAAmG,KAAAA,IAAA,gBACA,aADAhG,EAAAA,EAAAA,MACA,OACA,yBACA,sBACAiG,GAAAA,EAAAA,EAAAA,aAAAA,eAAAA,iBAAAA,mBAAAA,GAAAA,cAAAA,IAAAA,KAAAA,MAAAA,IAAAA,KAAAA,UACA,2BACA,oBAEA7D,EAAAA,EAAAA,IAAAA,EAAAA,KAAAA,SACA,YACA,mDAEAA,EAAAA,EAAAA,IAAAA,EAAAA,WAAAA,kCACA,oEAjBA,EAmBA,EAEA8D,WAAAA,WAAA,WACA,oBACA,gBAEA,iMACAC,OAAAA,EAAAA,CAAA,eAEA,OADA/D,EAAAA,EAAAA,IAAAA,EAAAA,WAAAA,mCACA,qCAKA,OADAgE,EAAAA,IAAAA,UACAA,OAAAA,UAAAA,GAAA,kBAEAvG,EAAAA,QAAAA,MAAAA,EAAAA,EAAAA,aAAAA,WAAAA,GAAA,OACA,4EAEAuC,EAAAA,EAAAA,IAAAA,EAAAA,WAAAA,iCACA,8FAEA,mDAhBA,GAiBA,EAEAiE,aAAAA,WAAA,2IACA,sCAEAxG,EAAAA,QAAAA,QAAAA,EAAAA,EAAAA,aAAAA,YAAA,OACA,0EAEAuC,EAAAA,EAAAA,IAAAA,EAAAA,WAAAA,mCACA,4FAPA,EASA,EAEAkE,OAAAA,WACA,oBACA,eACA,EAEAC,mBAAAA,SAAAA,GAEA,qDACA,kDACA,iBACAC,EAAAA,EAAAA,IAAAA,0BAAAA,cAAAA,OAAAA,QACA,EAEAC,wBAAAA,WACA,yCACA,ICjRgM,kBCW5L,GAAU,CAAC,EAEf,GAAQrL,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACI,MAAM,CAAC,GAAK,uBAAuB,CAACJ,EAAG,KAAK,CAACE,YAAY,mBAAmB,CAACJ,EAAIa,GAAG,IAAIb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,6BAA6B,OAAOlC,EAAIa,GAAG,KAAKX,EAAG,YAAY,CAACI,MAAM,CAAC,WAAWN,EAAImI,sBAAwBnI,EAAIkH,QAAU,KAAK,SAAWlH,EAAIkI,OAAOhD,SAAS,MAAQlF,EAAIkI,OAAO1D,OAAOjE,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOR,EAAIgL,KAAKhL,EAAIkI,OAAQ,QAAS1H,EAAO,KAAKR,EAAIa,GAAG,KAAOb,EAAI+I,YAA6hD/I,EAAI6H,KAAphD3H,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAACF,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAAGJ,EAAIgJ,QAA4M9I,EAAG,MAAM,CAACE,YAAY,iBAAzNF,EAAG,WAAW,CAACkE,IAAIpE,EAAIiJ,QAAQ3I,MAAM,CAAC,KAAON,EAAI6D,OAAO,aAAa7D,EAAIkC,EAAE,WAAY,wBAAwB,iBAAgB,EAAK,oBAAmB,EAAK,oBAAmB,EAAM,KAAO,QAA+C,GAAGlC,EAAIa,GAAG,KAAMb,EAAImI,sBAAuB,CAACjI,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,WAAW,CAACI,MAAM,CAAC,aAAaN,EAAIkC,EAAE,WAAY,2BAA2B3B,GAAG,CAAC,MAAQP,EAAIiK,yBAAyBnC,YAAY9H,EAAI+H,GAAG,CAAC,CAAC3D,IAAI,OAAO4D,GAAG,WAAW,MAAO,CAAC9H,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE2H,OAAM,IAAO,MAAK,EAAM,cAAcjI,EAAIa,GAAG,KAAKX,EAAG,WAAW,CAACI,MAAM,CAAC,aAAaN,EAAIkC,EAAE,WAAY,sCAAsC3B,GAAG,CAAC,MAAQP,EAAIoK,gBAAgBtC,YAAY9H,EAAI+H,GAAG,CAAC,CAAC3D,IAAI,OAAO4D,GAAG,WAAW,MAAO,CAAC9H,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE2H,OAAM,IAAO,MAAK,EAAM,cAAcjI,EAAIa,GAAG,KAAOb,EAAIkJ,YAA0PlJ,EAAI6H,KAAjP3H,EAAG,WAAW,CAACI,MAAM,CAAC,aAAaN,EAAIkC,EAAE,WAAY,2BAA2B3B,GAAG,CAAC,MAAQP,EAAI2K,cAAc7C,YAAY9H,EAAI+H,GAAG,CAAC,CAAC3D,IAAI,OAAO4D,GAAG,WAAW,MAAO,CAAC9H,EAAG,SAAS,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE2H,OAAM,IAAO,MAAK,EAAM,eAAwB,GAAGjI,EAAIa,GAAG,KAAKX,EAAG,OAAO,CAACF,EAAIa,GAAGb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,8BAA8BlC,EAAIa,GAAG,KAAKX,EAAG,QAAQ,CAAC+K,IAAI,QAAQ3K,MAAM,CAAC,GAAKN,EAAIkH,QAAQ,KAAO,OAAO,OAASlH,EAAImJ,eAAe+B,KAAK,MAAM3K,GAAG,CAAC,OAASP,EAAIkK,aAAahK,EAAG,OAAO,CAACF,EAAIa,GAAG,WAAWb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,yCAAyC,aAAa,GAAYlC,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACiL,WAAW,CAAC,CAAC1M,KAAK,OAAO2M,QAAQ,SAASxH,MAAO5D,EAAI+I,YAAasC,WAAW,gBAAgBjL,YAAY,qBAAqB,CAACF,EAAG,aAAaF,EAAIsL,GAAG,CAACL,IAAI,UAAU7K,YAAY,mBAAmB,aAAaJ,EAAIoJ,gBAAe,IAAQpJ,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,WAAW,CAACK,GAAG,CAAC,MAAQP,EAAI4K,SAAS,CAAC5K,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,WAAW,cAAclC,EAAIa,GAAG,KAAKX,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,WAAWC,GAAG,CAAC,MAAQP,EAAIwK,aAAa,CAACxK,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,2BAA2B,eAAe,GAAGlC,EAAIa,GAAG,KAAKX,EAAG,OAAO,CAACF,EAAIa,GAAGb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,uGAAuG,IAAI,EACtwF,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,uDEwChC,mDAAAqJ,GAAAA,GAAAA,OAAAC,GAAAA,GAAAA,MAAAC,GAAAA,GAAAA,WAAAC,GAAAA,GAAAA,MAAAC,GAAAA,GAAAA,cC3DiM,GD6DjM,CACAlN,KAAAA,iBAEAC,WAAAA,CACAkN,QAAAA,GAAAA,EACAC,YAAAA,GAAAA,EACAlD,UAAAA,GACAmD,cAAAA,MAGApG,SAAAA,CACAqG,UAAAA,WACA,OAhBA,IAgBA,GACA,uDAAAL,MAAAA,KAEA,EACA,WACA,8GACA,CAAAA,MAAAA,GAAAD,WAAAA,GAAAE,cAAAA,IAEA,GAGArH,KAAAA,WACA,OACAiH,OAAAA,GACAI,cAAAA,GAEA,eE9EI,GAAU,CAAC,EAEf,GAAQjM,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,YAAY,CAACI,MAAM,CAAC,cAAa,EAAK,SAAWN,EAAIkC,EAAE,WAAY,cAAclC,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,UAAU,CAACI,MAAM,CAAC,KAAO,MAAMN,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACF,EAAG,IAAI,CAACF,EAAIa,GAAGb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,iDAAiDlC,EAAIa,GAAG,KAAKX,EAAG,IAAI,CAACE,YAAY,wBAAwB,CAACJ,EAAIa,GAAGb,EAAIc,GAAGd,EAAIuL,OAAOL,KAAK,aAAa,GAAGlL,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,cAAc,CAACI,MAAM,CAAC,KAAO,MAAMN,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,uBAAuB,CAACF,EAAG,IAAI,CAACE,YAAY,sBAAsB4L,SAAS,CAAC,UAAYhM,EAAIc,GAAGd,EAAI+L,cAAc/L,EAAIa,GAAG,KAAKX,EAAG,gBAAgB,CAACI,MAAM,CAAC,KAAO,SAAS,MAAQN,EAAI2L,cAAc,MAAQ3L,EAAI2L,cAAgB,OAAO,IAAI,MAAM,EACt4B,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,mYEiEhC,QACAlN,KAAAA,yBAEAC,WAAAA,CACAuN,YAAAA,GAAAA,QACAC,aAAAA,GAAAA,EACAC,MAAAA,GAAAA,QACAxD,UAAAA,IAGA/J,MAAAA,CACAH,KAAAA,CACAK,KAAAA,OACAC,UAAAA,GAEA6E,MAAAA,CACA9E,KAAAA,OACAC,UAAAA,GAEAyF,MAAAA,CACA1F,KAAAA,OACAC,UAAAA,GAEAmG,SAAAA,CACApG,KAAAA,OACAC,UAAAA,GAEAqN,YAAAA,CACAtN,KAAAA,OACAC,UAAAA,GAEAD,KAAAA,CACAA,KAAAA,OACAI,QAAAA,QAEAiI,WAAAA,CACArI,KAAAA,QACAI,SAAAA,GAEAmN,UAAAA,CACAvN,KAAAA,QACAI,SAAAA,GAEAoN,WAAAA,CACAxN,KAAAA,SACAI,QAAAA,MAEAqN,OAAAA,CACAzN,KAAAA,SACAI,QAAAA,OAIAoF,KAAAA,WACA,OACAkI,aAAAA,KAAAA,MACAC,WAAAA,KACAC,mBAAAA,EACAC,eAAAA,EAEA,EAEAjH,SAAAA,CACAwB,QAAAA,WACA,2CACA,GAGA3H,QAAAA,CACAqN,iBAAAA,SAAAA,GACA,0CACA,kDACA,EAEAC,uBAAAA,KAAAA,WAAA,gIACA,yBACA,sEACA,wFAGA,qGAGA,uEACA,mDAVAA,GAUA,KAEAC,eAAAA,SAAAA,GAAA,8KAEApJ,GACA,OACAE,GACA,OAHAwC,EAAAA,EAAAA,KAIA,kBACAxC,MAAAA,EACAyC,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,kBACAC,aAAAA,EAAAA,WAAAA,8BAAAA,CAAAV,SAAAA,EAAAA,SAAAA,sBACAW,MAAAA,EAAAA,KACA,wDAdA,EAgBA,EAEAE,eAAAA,SAAAA,GAAA,qBAAAJ,EAAAA,EAAAA,OAAAC,EAAAA,EAAAA,aAAAC,EAAAA,EAAAA,MACA,UACA,oBACA,aACA,eAEA,0BACAwG,YAAAA,WAAA,gCAEA,8CACArG,EAAAA,EAAAA,IAAAA,GACAC,GAAAA,MAAAA,EAAAA,GACA,sBACAoG,YAAAA,WAAA,0BAEA,IC3M+M,iBCW3M,GAAU,CAAC,EAEf,GAAQrN,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQN,EAAIwE,MAAM,SAAWxE,EAAIkF,SAAS,WAAWlF,EAAIkH,QAAQ,cAAclH,EAAImH,YAAY5G,GAAG,CAAC,eAAe,SAASC,GAAQR,EAAIwE,MAAMhE,CAAM,EAAE,kBAAkB,SAASA,GAAQR,EAAIkF,SAAS1E,CAAM,KAAKR,EAAIa,GAAG,KAAMb,EAAImH,WAAYjH,EAAG,MAAM,CAACE,YAAY,YAAY,CAAEJ,EAAIqM,UAAWnM,EAAG,WAAW,CAACI,MAAM,CAAC,GAAKN,EAAIkH,QAAQ,YAAclH,EAAIoM,YAAY,KAAO,IAAI,eAAiB,OAAO,aAAe,MAAM,YAAc,OAAOJ,SAAS,CAAC,MAAQhM,EAAI4D,OAAOrD,GAAG,CAAC,MAAQP,EAAI4M,oBAAoB1M,EAAG,QAAQ,CAAC+K,IAAI,QAAQ3K,MAAM,CAAC,GAAKN,EAAIkH,QAAQ,YAAclH,EAAIoM,YAAY,KAAOpM,EAAIlB,KAAK,mBAAmBkB,EAAIyM,WAAa,GAAH,OAAMzM,EAAIvB,KAAI,gBAAiB,GAAG,eAAiB,OAAO,aAAe,KAAK,YAAc,OAAOuN,SAAS,CAAC,MAAQhM,EAAI4D,OAAOrD,GAAG,CAAC,MAAQP,EAAI4M,oBAAoB5M,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,+BAA+B,CAACF,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,SAAS,CAAEN,EAAI0M,kBAAmBxM,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAON,EAAI2M,cAAezM,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,MAAMN,EAAI6H,MAAM,IAAI,KAAK3H,EAAG,OAAO,CAACF,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAI4D,OAAS5D,EAAIkC,EAAE,WAAY,oBAAqB,CAAE0D,SAAU5F,EAAIkF,SAAS8H,uBAAwB,UAAUhN,EAAIa,GAAG,KAAMb,EAAIyM,WAAYvM,EAAG,IAAI,CAACE,YAAY,qEAAqEE,MAAM,CAAC,GAAI,UAAIN,EAAIvB,KAAI,kBAAiB,CAACyB,EAAG,cAAc,CAACE,YAAY,sCAAsCE,MAAM,CAAC,KAAO,MAAMN,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIyM,YAAY,SAAS,GAAGzM,EAAI6H,MAAM,EACpjD,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,wtCEmBhC,IAAA7I,IAAA,+CAAAA,YACAiO,IAAA,0CAAAA,2BCvCqM,GDyCrM,CACAxO,KAAAA,qBAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACAtF,YAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAkG,SAAAA,EAAAA,GAAAA,QACA+H,2BAAAA,GAEA,EAEA1N,QAAAA,CACA+M,WAAAA,SAAAA,GACA,YACA,EAEAC,OAAAA,SAAAA,GACA,iCAEAY,cAAAA,OAAAA,QAAAA,KAAAA,QAEArC,EAAAA,EAAAA,IAAAA,gCAAAA,EACA,IEhDA,IAXgB,OACd,ICRW,WAAkB,IAAI9K,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,kBAAkB,cAAclC,EAAIiN,2BAA2B,cAAcjN,EAAIsM,WAAW,UAAUtM,EAAIuM,SAAS,yBAAyBvM,EAAIhB,aAAY,GAAM,GAChT,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,oVEkBzB,IAAMoO,GAAgB,6CAAG,WAAOC,GAAK,0FAEmB,OADxDxJ,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,uBAAwB,CAAEJ,OAAAA,IAAS,UAExDK,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAKrD,EAAsBQ,MAC3BqC,MAAOyJ,IACN,OAHO,OAAHhJ,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAZ4B,sCAsBhBgJ,GAAmB,6CAAG,WAAOD,GAAK,0FAEgB,OADxDxJ,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,uBAAwB,CAAEJ,OAAAA,IAAS,UAExDK,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAKrD,EAAsBO,iBAC3BsC,MAAOyJ,IACN,OAHO,OAAHhJ,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAZ+B,sCAoBnBiJ,GAAqB,6CAAG,WAAOF,GAAK,0FAEc,OADxDxJ,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,uBAAwB,CAAEJ,OAAAA,IAAS,UAExDK,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAKrD,EAAsBU,mBAC3BmC,MAAOyJ,IACN,OAHO,OAAHhJ,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAZiC,sCAoBrBkJ,GAAqB,6CAAG,WAAOH,GAAK,0FAE+E,OADzHxJ,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,oCAAqC,CAAEJ,OAAAA,EAAQ4J,WAAY1M,EAAsBO,mBAAmB,UAEzH4C,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAKiJ,EACLzJ,MAAO,KACN,OAHO,OAAHS,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAZiC,sCAqBrBoJ,GAAqB,6CAAG,WAAOC,EAAWC,GAAQ,0FAEiE,OADzH/J,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,oCAAqC,CAAEJ,OAAAA,EAAQ4J,WAAY1M,EAAsBO,mBAAmB,UAEzH4C,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAKuJ,EACL/J,MAAOgK,IACN,OAHO,OAAHvJ,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAZiC,wCAoBrBuJ,GAAqB,6CAAG,WAAOrJ,GAAK,0FAEc,OADxDX,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,uBAAwB,CAAEJ,OAAAA,IAAS,UAExDK,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAK,GAAF,OAAKrD,EAAsBQ,OAAK,OAAG2B,IACtCU,MAAOY,IACN,OAHO,OAAHH,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAZiC,sCAqBrBwJ,GAAwB,6CAAG,WAAOT,EAAO7I,GAAK,0FAEmG,OADvJX,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,yCAA0C,CAAEJ,OAAAA,EAAQkK,gBAAiB,GAAF,OAAKhN,EAAsBO,kBAAgB,OAAG4B,MAAiB,UAEvJgB,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChCI,IAAKiJ,EACLzJ,MAAOY,IACN,OAHO,OAAHH,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2CACf,gBAZoC,wCCxH9B,SAAS0J,GAAcC,GAC7B,MAAwB,iBAAVA,GACVxK,GAAqByK,KAAKD,IACN,OAApBA,EAAME,OAAO,IACbF,EAAMG,QAAU,KAChBC,mBAAmBJ,GAAOK,QAAQ,OAAQ,KAAKF,QAAU,GAC9D,iUC+DA,QACA3P,KAAAA,QAEAC,WAAAA,CACAsG,UAAAA,GAAAA,GACArG,eAAAA,GAAAA,GACAsN,YAAAA,GAAAA,QACAC,aAAAA,GAAAA,EACAC,MAAAA,GAAAA,QACApF,kBAAAA,IAGAnI,MAAAA,CACAyO,MAAAA,CACAvO,KAAAA,OACAC,UAAAA,GAEAwP,MAAAA,CACAzP,KAAAA,OACAI,QAAAA,GAEAsP,QAAAA,CACA1P,KAAAA,QACAI,SAAAA,GAEAsF,MAAAA,CACA1F,KAAAA,OACAC,UAAAA,GAEA0P,wBAAAA,CACA3P,KAAAA,OACAI,QAAAA,IAEAwP,uBAAAA,CACA5P,KAAAA,OACAI,QAAAA,GAAAA,eAIAoF,KAAAA,WACA,OACAqK,iBAAAA,EAAAA,MACAC,aAAAA,KAAAA,MACArH,WAAAA,KAAAA,MACAuG,yBAAAA,GACArB,WAAAA,KACAC,mBAAAA,EACAC,eAAAA,EAEA,EAEAjH,SAAAA,CACAmJ,eAAAA,WACA,oBAGA,gDACA,wBACA,8BAGA,EAEAC,iBAAAA,WACA,oBACA,qCAEA,4BACA,EAEAC,4BAAAA,WACA,8DACA,EAEAC,yBAAAA,WACA,gCACA,uCACA,wDAGA,qCAFA,6CAGA,EAEAC,mBAAAA,WACA,wBACA,EAEA/H,QAAAA,WACA,oBACA,QAEA,2BACA,EAEAgI,iBAAAA,WACA,oBACA,mCAEA,iDAAAX,MAAAA,KAAAA,MAAAA,GACA,EAEAY,oBAAAA,WACA,8DACA,+CACA,GAGAC,QAAAA,WAAA,WACA,sCAEA,gGAEA,EAEA7P,QAAAA,CACA8P,cAAAA,SAAAA,GACA,0CACA,+CACA,EAEAC,oBAAAA,KAAAA,WAAA,sIACA,wBACA,QADA,EACA,oEACA,wFAGAtB,GAAAA,IAAAA,KAAAA,EAAAA,CAAA,oBACA,8CACA,kCAIA,wBAJA,YAEAX,EAAAA,CAAA,mBACA,yDACA,oDAEA,+EAKA,mDAnBAiC,GAmBA,KAEAC,YAAAA,WAAA,+IACA,0BACA,2CACA,sEAEA,oEALA,EAOA,EAEAC,mBAAAA,SAAAA,GAAA,8KAEApC,GAAAA,GAAA,OAAAhH,EAAAA,EAAAA,KACA,kBACAiH,MAAAA,EACAhH,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,OACA,kBACAC,aAAAA,EAAAA,WAAAA,0CACAC,MAAAA,EAAAA,KAGA,kBACAD,aAAAA,EAAAA,WAAAA,0CACAC,MAAAA,EAAAA,KAEA,wDAlBA,EAoBA,EAEAkJ,mBAAAA,SAAAA,GAAA,8KAEAnC,GAAAA,GAAA,OAAAlH,EAAAA,EAAAA,KACA,kBACAiH,MAAAA,EACAhH,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,kBACAC,aAAAA,EAAAA,WAAAA,0CACAC,MAAAA,EAAAA,KACA,wDAXA,EAaA,EAEAmJ,oBAAAA,WAAA,uJAEA,OAFA,SAEAC,EAAAA,EAAAA,SAAAA,EAAAA,oBAAAA,GAAAA,EAAAA,aAAA,SACApC,GAAAA,GAAA,OAAAnH,EAAAA,EAAAA,KACA,kBACAwJ,kBAAAA,EACAvJ,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,kBACAC,aAAAA,gDACAC,MAAAA,EAAAA,KACA,wDAZA,EAcA,EAEAmH,sBAAAA,SAAAA,GAAA,8KAEAA,GAAAA,EAAAA,aAAAA,GAAA,OAAAtH,EAAAA,EAAAA,KACA,kBACAiH,MAAAA,EACAhH,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,kBACAC,aAAAA,EAAAA,WAAAA,6CACAC,MAAAA,EAAAA,KACA,wDAXA,EAaA,EAEAsJ,sBAAAA,WAAA,8KAEArC,GAAAA,EAAAA,cAAA,OAAApH,EAAAA,EAAAA,KACA,2JAEA,kBACAE,aAAAA,EAAAA,WAAAA,6CACAC,MAAAA,EAAAA,KACA,wDARA,EAUA,EAEAuJ,4BAAAA,SAAAA,GACA,SACA,sCAEA,qBACAxJ,aAAAA,EAAAA,WAAAA,8CAGA,EAEAG,eAAAA,SAAAA,GAAA,qBAAAmJ,EAAAA,EAAAA,kBAAAvJ,EAAAA,EAAAA,OAAAC,EAAAA,EAAAA,aAAAC,EAAAA,EAAAA,MACA,UAEA,EACA,yBACA,OACA,0CAEA,0BACAwG,YAAAA,WAAA,iCAEArG,EAAAA,EAAAA,IAAAA,GACAC,GAAAA,MAAAA,EAAAA,GACA,sBACAoG,YAAAA,WAAA,0BAEA,EAEApF,cAAAA,SAAAA,GACA,4BACA,ICjX8L,kBCW1L,GAAU,CAAC,EAEf,GAAQjI,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICbI,IAAY,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,QAAQ,CAAC+K,IAAI,QAAQ3K,MAAM,CAAC,GAAKN,EAAIkH,QAAQ,KAAO,QAAQ,YAAclH,EAAIkP,iBAAiB,mBAAmBlP,EAAIyM,WAAa,GAAH,OAAMzM,EAAIkH,QAAO,gBAAiB,GAAG,eAAiB,OAAO,aAAe,KAAK,YAAc,OAAO8E,SAAS,CAAC,MAAQhM,EAAIqN,OAAO9M,GAAG,CAAC,MAAQP,EAAIqP,iBAAiBrP,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,SAAS,CAAEN,EAAI0M,kBAAmBxM,EAAG,QAAQ,CAACI,MAAM,CAAC,KAAO,MAAON,EAAI2M,cAAezM,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,MAAMN,EAAI6H,MAAM,GAAG7H,EAAIa,GAAG,KAAOb,EAAIwO,QAAmUxO,EAAI6H,KAA9T,CAAC3H,EAAG,oBAAoB,CAACI,MAAM,CAAC,SAAWN,EAAI2O,iBAAiB,YAAa,EAAK,mBAAmB3O,EAAIqN,MAAM,SAAWrN,EAAIiP,mBAAmB,iCAAiCjP,EAAI8N,yBAAyB,MAAQ9N,EAAIuH,YAAYhH,GAAG,CAAC,eAAe,CAAC,SAASC,GAAQR,EAAIuH,WAAW/G,CAAM,EAAER,EAAI2H,mBAA4B3H,EAAIa,GAAG,KAAKX,EAAG,YAAY,CAACE,YAAY,iBAAiBE,MAAM,CAAC,aAAaN,EAAIkC,EAAE,WAAY,iBAAiB,cAAa,IAAO,CAAChC,EAAG,iBAAiB,CAACI,MAAM,CAAC,aAAaN,EAAI8O,iBAAiB,qBAAoB,EAAK,SAAW9O,EAAI6O,eAAe,KAAO,eAAetO,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBV,EAAIuP,YAAY5O,MAAM,KAAMC,UAAU,IAAI,CAACZ,EAAIa,GAAG,eAAeb,EAAIc,GAAGd,EAAI8O,kBAAkB,gBAAgB9O,EAAIa,GAAG,KAAOb,EAAIwO,SAAYxO,EAAImP,oBAA0YnP,EAAI6H,KAAzX3H,EAAG,iBAAiB,CAACI,MAAM,CAAC,aAAaN,EAAIgP,yBAAyB,qBAAoB,EAAK,SAAWhP,EAAI+O,4BAA4B,KAAO,iBAAiBxO,GAAG,CAAC,MAAQ,SAASC,GAAyD,OAAjDA,EAAOC,kBAAkBD,EAAOE,iBAAwBV,EAAI0P,oBAAoB/O,MAAM,KAAMC,UAAU,IAAI,CAACZ,EAAIa,GAAG,eAAeb,EAAIc,GAAGd,EAAIgP,0BAA0B,iBAA0B,IAAI,KAAKhP,EAAIa,GAAG,KAAMb,EAAIyM,WAAYvM,EAAG,IAAI,CAACE,YAAY,+DAA+DE,MAAM,CAAC,GAAI,UAAIN,EAAIkH,QAAO,kBAAiB,CAAChH,EAAG,cAAc,CAACE,YAAY,mCAAmCE,MAAM,CAAC,KAAO,MAAMN,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIyM,YAAY,SAAS,GAAGzM,EAAI6H,KAAK7H,EAAIa,GAAG,KAAMb,EAAImP,oBAAqBjP,EAAG,KAAK,CAACF,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,uDAAuD,UAAUlC,EAAI6H,MACtzE,GACsB,IDUpB,EACA,KACA,WACA,MAIF,GAAe,GAAiB,whDEwDhC,gEAAAkI,GAAAA,GAAAA,iBAAAC,GAAAA,GAAAA,aAAAJ,GAAAA,GAAAA,kBACA3C,IAAA,0CAAAA,2BC5EqM,GD8ErM,CACAxO,KAAAA,eAEAC,WAAAA,CACAiK,UAAAA,GACAsH,MAAAA,IAGA3L,KAAAA,WAAA,WACA,OACAX,gBAAAA,EAAAA,MACAoM,iBAAAA,GAAAA,KAAAA,SAAAA,GAAA,uBAAA3L,IAAAA,EAAAA,qBAAA,IACA6I,2BAAAA,GACA+C,aAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAA9K,SAAAA,EAAAA,GAAAA,QACA2I,sBAAAA,GACA+B,kBAAAA,GAEA,EAEAlK,SAAAA,CACAwK,qBAAAA,WACA,oCACA,+BAEA,IACA,EAEAhJ,QAAAA,WACA,wDACA,EAEAG,eAAAA,WACA,oCACA,kEACA,EAEA8I,kBAAAA,CACAC,IAAAA,WACA,8BACA,EACAC,IAAAA,SAAAA,GACA,yBACA,IAIA9Q,QAAAA,CACA+Q,qBAAAA,WACA,qBACA,4BAAA1M,MAAAA,GAAAY,MAAAA,GAAAJ,IAAAA,KAAAA,qBAEA,EAEAmM,wBAAAA,SAAAA,GACA,qCACA,EAEAC,cAAAA,WAAA,oJACA,kEACA,OAAAC,EAAAA,EAAAA,qBAAA,SACA,sCACA,sCACA,iEALA,EAOA,EAEAC,0BAAAA,SAAAA,GAAA,2IACA,gEADA,EAEA,EAEAlB,mBAAAA,WAAA,8KAEApC,GAAAA,EAAAA,mBAAA,OAAAhH,EAAAA,EAAAA,KACA,8IAEA,iBACA,QACAlE,EAAAA,WAAAA,0CAAAA,EAAAA,IAEA,wDATA,EAWA,EAEAyO,2BAAAA,WAAA,8KAEAnD,GAAAA,EAAAA,sBAAA,OAAApH,EAAAA,EAAAA,KACA,gKAEA,iBACA,QACAlE,EAAAA,WAAAA,6CAAAA,EAAAA,IAEA,wDATA,EAWA,EAEA0O,iCAAAA,SAAAA,GACA,SACA,sCAEA,oBACA,QACA1O,EAAAA,WAAAA,6CACA,GAGA,EAEAuE,eAAAA,SAAAA,EAAAA,EAAAA,GACA,YACAC,EAAAA,EAAAA,IAAAA,GACAC,GAAAA,MAAAA,EAAAA,GAEA,EAEAkK,kBAAAA,WACA,8CACA,gBExLI,GAAU,CAAC,EAEf,GAAQnR,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,YAAY,CAACI,MAAM,CAAC,WAAWN,EAAIkH,QAAQ,SAAWlH,EAAIgQ,aAAa9K,SAAS,sBAAsBlF,EAAI6N,sBAAsB,eAAc,EAAK,4BAA2B,EAAK,mBAAmB7N,EAAIqH,eAAe,MAAQrH,EAAIgQ,aAAaxL,OAAOjE,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOR,EAAIgL,KAAKhL,EAAIgQ,aAAc,QAASxP,EAAO,EAAE,iBAAiBR,EAAIsQ,wBAAwBtQ,EAAIa,GAAG,KAAMb,EAAIiN,2BAA4B,CAAC/M,EAAG,QAAQ,CAACI,MAAM,CAAC,SAAU,EAAK,MAAQN,EAAIgQ,aAAaxL,MAAM,MAAQxE,EAAIgQ,aAAapM,MAAM,4BAA4B5D,EAAI4P,mBAAmBrP,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOR,EAAIgL,KAAKhL,EAAIgQ,aAAc,QAASxP,EAAO,EAAE,eAAe,CAAC,SAASA,GAAQ,OAAOR,EAAIgL,KAAKhL,EAAIgQ,aAAc,QAASxP,EAAO,EAAER,EAAIwQ,eAAe,iCAAiC,SAAShQ,GAAQR,EAAI4P,kBAAkBpP,CAAM,EAAE,mCAAmC,SAASA,GAAQR,EAAI4P,kBAAkBpP,CAAM,EAAE,4BAA4BR,EAAI0Q,8BAA8BxQ,EAAG,OAAO,CAACF,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIgQ,aAAapM,OAAS5D,EAAIkC,EAAE,WAAY,yBAAyB,UAAUlC,EAAIa,GAAG,KAAMb,EAAI+P,iBAAiB3B,OAAQ,CAAClO,EAAG,KAAK,CAACE,YAAY,2BAA2B,CAACJ,EAAIa,GAAGb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,yBAAyBlC,EAAIa,GAAG,KAAKb,EAAI4G,GAAI5G,EAAI+P,kBAAkB,SAASe,EAAgBvC,GAAO,OAAOrO,EAAG,QAAQ,CAACkE,IAAI0M,EAAgB1M,IAAI9D,MAAM,CAAC,MAAQiO,EAAM,MAAQuC,EAAgBtM,MAAM,MAAQsM,EAAgBlN,MAAM,2BAA2BmN,SAASD,EAAgBE,gBAAiB,IAAI,4BAA4BhR,EAAI4P,mBAAmBrP,GAAG,CAAC,eAAe,SAASC,GAAQ,OAAOR,EAAIgL,KAAK8F,EAAiB,QAAStQ,EAAO,EAAE,eAAe,CAAC,SAASA,GAAQ,OAAOR,EAAIgL,KAAK8F,EAAiB,QAAStQ,EAAO,EAAER,EAAIwQ,eAAe,iCAAiC,SAAShQ,GAAQR,EAAI4P,kBAAkBpP,CAAM,EAAE,mCAAmC,SAASA,GAAQR,EAAI4P,kBAAkBpP,CAAM,EAAE,4BAA4BR,EAAI0Q,0BAA0B,0BAA0B,SAASlQ,GAAQ,OAAOR,EAAIuQ,wBAAwBhC,EAAM,IAAI,KAAIvO,EAAI6H,MAAM,EAC3nE,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,ouCEkBhC,QAGAhD,EAAAA,EAAAA,GAAAA,WAAAA,yBAAAA,CAAAA,GAFAoM,GAAAA,GAAAA,mBACAC,GAAAA,GAAAA,MCvC+L,GD0C/L,CACAzS,KAAAA,eAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACA4M,MAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAhM,SAAAA,EAAAA,GAAAA,QAEA,EAEA3F,QAAAA,CACA+M,WAAAA,SAAAA,GACA,WACA,eAEA,UACA,IE3CA,IAXgB,OACd,ICRW,WAAkB,IAAItM,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,qBAAqB,KAAO,MAAM,cAAclC,EAAIsM,aAAa,yBAAyBtM,EAAIkR,OAAM,GAAM,GACxP,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,wtCEgBhC,IAAAC,IAAA,+CAAAA,SClCkM,GDoClM,CACA1S,KAAAA,kBAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACA6M,SAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAjM,SAAAA,EAAAA,GAAAA,QAEA,GE7BA,IAXgB,OACd,ICRW,WAAkB,IAAIlF,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,mBAAmB,yBAAyBlC,EAAImR,UAAS,GAAM,GAC7M,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,wtCEmBhC,IAAAC,IAAA,+CAAAA,QCrCiM,GDuCjM,CACA3S,KAAAA,iBAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACA8M,QAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAlM,SAAAA,EAAAA,GAAAA,QAEA,EAEA3F,QAAAA,CACA+M,WAAAA,SAAAA,GACA,OnBAO,SAAqB2B,GAC3B,IAGC,OADA,IAAIoD,IAAIpD,IACD,CAGR,CAFE,MAAOqD,GACR,OAAO,CACR,CACD,CmBRA,GACA,IErCA,IAXgB,OACd,ICRW,WAAkB,IAAItR,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,gBAAgB,KAAO,MAAM,cAAclC,EAAIsM,aAAa,yBAAyBtM,EAAIoR,SAAQ,GAAM,GACrP,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,wtCEgBhC,IAAAG,IAAA,+CAAAA,QClCiM,GDoCjM,CACA9S,KAAAA,iBAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACAiN,QAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAArM,SAAAA,EAAAA,GAAAA,QAEA,GE7BA,IAXgB,OACd,ICRW,WAAkB,IAAIlF,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,yBAAyB,yBAAyBlC,EAAIuR,SAAQ,GAAM,GAClN,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,wtCEgBhC,IAAAC,IAAA,+CAAAA,UClCmM,GDoCnM,CACA/S,KAAAA,mBAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACAkN,UAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAtM,SAAAA,EAAAA,GAAAA,QAEA,GE7BA,IAXgB,OACd,ICRW,WAAkB,IAAIlF,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,iBAAiB,yBAAyBlC,EAAIwR,WAAU,GAAM,GAC5M,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,6wEE0ChC,IC5DiM,GD4DjM,CACA/S,KAAAA,WAEAG,MAAAA,CACAsI,QAAAA,CACApI,KAAAA,OACAI,QAAAA,MAEAuS,gBAAAA,CACA3S,KAAAA,MACAC,UAAAA,GAEA2S,eAAAA,CACA5S,KAAAA,MACAC,UAAAA,GAEA4S,SAAAA,CACA7S,KAAAA,OACAC,UAAAA,IAIAuF,KAAAA,WACA,OACAsN,gBAAAA,KAAAA,SAEA,EAEAlM,SAAAA,CACAmM,aAAAA,WACA,qBACA,4DACAC,QAAAA,SAAAA,EAAAA,GAAA,aAAArT,EAAAA,EAAAA,KAAA,wCAEA,GAGAc,QAAAA,CACAwS,iBAAAA,SAAAA,GAAA,iJAEA,GADAJ,EAAAA,EAAAA,kBAAAA,EAAAA,OAAAA,OACA,6B/B7BuB,MADU1D,E+BgCjC+D,G/B/BcC,MACM,KAAfhE,EAAMxP,WACSyT,IAAfjE,EAAMxP,K+B6BXuT,CAAA,+BACA,qD/BjCO,IAA0B/D,C+BiCjC,SALA,EAOA,EAEAkE,eAAAA,SAAAA,GAAA,8KAEAzO,GAAAA,EAAAA,SAAAA,EAAAA,MAAA,OAAA0C,EAAAA,EAAAA,KACA,kBACAuL,SAAAA,EACAtL,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SAEA,+DAEA,kBACAC,aAAAA,EAAAA,WAAAA,6BACAC,MAAAA,EAAAA,KACA,wDAZA,EAcA,EAEA6L,kBAAAA,SAAAA,GACA,OACAH,KAAAA,EACAxT,KAAAA,KAAAA,aAAAA,GAEA,EAEAgI,eAAAA,SAAAA,GAAA,iBAAAJ,EAAAA,EAAAA,OAAAC,EAAAA,EAAAA,aAAAC,EAAAA,EAAAA,MACA,SAEA,yBAEAG,EAAAA,EAAAA,IAAAA,GACAC,GAAAA,MAAAA,EAAAA,GAEA,EAEA0L,WAAAA,WACAlB,SAAAA,QACA,gBEnII,GAAU,CAAC,EAEf,GAAQzR,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,GAAKN,EAAIkH,QAAQ,YAAclH,EAAIkC,EAAE,WAAY,aAAa3B,GAAG,CAAC,OAASP,EAAI+R,mBAAmB,CAAC/R,EAAI4G,GAAI5G,EAAIyR,iBAAiB,SAASa,GAAgB,OAAOpS,EAAG,SAAS,CAACkE,IAAIkO,EAAeL,KAAKjG,SAAS,CAAC,SAAWhM,EAAI2R,SAASM,OAASK,EAAeL,KAAK,MAAQK,EAAeL,OAAO,CAACjS,EAAIa,GAAG,WAAWb,EAAIc,GAAGwR,EAAe7T,MAAM,WAAW,IAAGuB,EAAIa,GAAG,KAAKX,EAAG,SAAS,CAACI,MAAM,CAAC,SAAW,KAAK,CAACN,EAAIa,GAAG,8BAA8Bb,EAAIa,GAAG,KAAKb,EAAI4G,GAAI5G,EAAI0R,gBAAgB,SAASa,GAAe,OAAOrS,EAAG,SAAS,CAACkE,IAAImO,EAAcN,KAAKjG,SAAS,CAAC,SAAWhM,EAAI2R,SAASM,OAASM,EAAcN,KAAK,MAAQM,EAAcN,OAAO,CAACjS,EAAIa,GAAG,WAAWb,EAAIc,GAAGyR,EAAc9T,MAAM,WAAW,KAAI,GAAGuB,EAAIa,GAAG,KAAKX,EAAG,IAAI,CAACI,MAAM,CAAC,KAAO,iDAAiD,OAAS,SAAS,IAAM,wBAAwB,CAACJ,EAAG,KAAK,CAACF,EAAIa,GAAGb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,yBACl+B,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QE6BhC,+DAAAsQ,GAAAA,GAAAA,eAAAf,GAAAA,GAAAA,gBAAAC,GAAAA,GAAAA,eChDwM,GDkDxM,CACAjT,KAAAA,kBAEAC,WAAAA,CACA+T,SAAAA,GACA9J,UAAAA,IAGArE,KAAAA,WACA,OACAqK,iBAAAA,GAAAA,SACA8C,gBAAAA,GACAC,eAAAA,GACAC,SAAAA,GAEA,EAEAjM,SAAAA,CACAwB,QAAAA,WACA,2CACA,EAEAC,WAAAA,WACA,6BACA,gBE/DI,GAAU,CAAC,EAEf,GAAQzH,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,YAAY,CAACI,MAAM,CAAC,WAAWN,EAAIkH,QAAQ,SAAWlH,EAAI2O,oBAAoB3O,EAAIa,GAAG,KAAMb,EAAImH,WAAY,CAACjH,EAAG,WAAW,CAACI,MAAM,CAAC,WAAWN,EAAIkH,QAAQ,mBAAmBlH,EAAIyR,gBAAgB,kBAAkBzR,EAAI0R,eAAe,SAAW1R,EAAI2R,UAAUpR,GAAG,CAAC,kBAAkB,SAASC,GAAQR,EAAI2R,SAASnR,CAAM,MAAMN,EAAG,OAAO,CAACF,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,oBAAoB,WAAW,EACre,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,oyEEkDhC,ICrE+L,GDqE/L,CACAzD,KAAAA,SAEAC,WAAAA,CACAgU,aAAAA,SAGA9T,MAAAA,CACAsI,QAAAA,CACApI,KAAAA,OACAI,QAAAA,MAEAyT,OAAAA,CACA7T,KAAAA,OACAC,UAAAA,GAEA6T,mBAAAA,CACA9T,KAAAA,MACAC,UAAAA,GAEA8T,aAAAA,CACA/T,KAAAA,MACAC,UAAAA,IAIAuF,KAAAA,WACA,OACAwO,cAAAA,KAAAA,OACAC,QAAAA,CACAC,KAAAA,OAAAA,OAAAA,KACAC,KAAAA,OAAAA,OAAAA,OACAC,eAAAA,OAAAA,SAAAA,OAAAA,WAGA,EAEAxN,SAAAA,CACAyN,WAAAA,WACA,qBACA,6DACArB,QAAAA,SAAAA,EAAAA,GAAA,aAAArT,EAAAA,EAAAA,KAAA,wCAEA,GAGAoL,QAAAA,WACAuJ,YAAAA,KAAAA,eAAAA,IACA,EAEA7T,QAAAA,CACA8T,eAAAA,SAAAA,GAAA,iJAEA,GADAV,EAAAA,EAAAA,gBAAAA,EAAAA,OAAAA,OACA,2BzCvCuB,MADQ1E,EyC0C/BqF,GzCzCcrB,MACM,KAAfhE,EAAMxP,WACSyT,IAAfjE,EAAMxP,KyCuCX6U,CAAA,+BACA,mDzC3CO,IAAwBrF,CyC2C/B,SALA,EAOA,EAEAsF,aAAAA,SAAAA,GAAA,8KAEA7P,GAAAA,EAAAA,OAAAA,EAAAA,MAAA,OAAA0C,EAAAA,EAAAA,KACA,kBACAuM,OAAAA,EACAtM,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SAEA,+DAEA,kBACAC,aAAAA,EAAAA,WAAAA,2BACAC,MAAAA,EAAAA,KACA,wDAZA,EAcA,EAEAiN,gBAAAA,SAAAA,GACA,OACAvB,KAAAA,EACAxT,KAAAA,KAAAA,WAAAA,GAEA,EAEAgI,eAAAA,SAAAA,GAAA,eAAAJ,EAAAA,EAAAA,OAAAC,EAAAA,EAAAA,aAAAC,EAAAA,EAAAA,MACA,SACA,sBAEA,gDACAG,EAAAA,EAAAA,IAAAA,GACAC,GAAAA,MAAAA,EAAAA,GAEA,EAEA8M,eAAAA,WACA,cACAT,KAAAA,OAAAA,OAAAA,KACAC,KAAAA,OAAAA,OAAAA,OACAC,eAAAA,OAAAA,SAAAA,OAAAA,UAEA,EAEAb,WAAAA,WACAlB,SAAAA,QACA,gBEjKI,GAAU,CAAC,EAEf,GAAQzR,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,SAAS,CAACI,MAAM,CAAC,GAAKN,EAAIkH,QAAQ,YAAclH,EAAIkC,EAAE,WAAY,WAAW3B,GAAG,CAAC,OAASP,EAAIqT,iBAAiB,CAACrT,EAAI4G,GAAI5G,EAAI4S,oBAAoB,SAASc,GAAe,OAAOxT,EAAG,SAAS,CAACkE,IAAIsP,EAAczB,KAAKjG,SAAS,CAAC,SAAWhM,EAAI2S,OAAOV,OAASyB,EAAczB,KAAK,MAAQyB,EAAczB,OAAO,CAACjS,EAAIa,GAAG,WAAWb,EAAIc,GAAG4S,EAAcjV,MAAM,WAAW,IAAGuB,EAAIa,GAAG,KAAKX,EAAG,SAAS,CAACI,MAAM,CAAC,SAAW,KAAK,CAACN,EAAIa,GAAG,8BAA8Bb,EAAIa,GAAG,KAAKb,EAAI4G,GAAI5G,EAAI6S,cAAc,SAASa,GAAe,OAAOxT,EAAG,SAAS,CAACkE,IAAIsP,EAAczB,KAAKjG,SAAS,CAAC,SAAWhM,EAAI2S,OAAOV,OAASyB,EAAczB,KAAK,MAAQyB,EAAczB,OAAO,CAACjS,EAAIa,GAAG,WAAWb,EAAIc,GAAG4S,EAAcjV,MAAM,WAAW,KAAI,GAAGuB,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACI,MAAM,CAAC,KAAO,MAAMN,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,IAAI,CAACA,EAAG,OAAO,CAACF,EAAIa,GAAGb,EAAIc,GAAGd,EAAI+S,QAAQC,SAAShT,EAAIa,GAAG,KAAKX,EAAG,OAAO,CAACF,EAAIa,GAAGb,EAAIc,GAAGd,EAAI+S,QAAQE,WAAWjT,EAAIa,GAAG,KAAKX,EAAG,IAAI,CAACF,EAAIa,GAAG,aAAab,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,kCAAmC,CAAEgR,eAAgBjT,KAAK8S,QAAQG,kBAAmB,iBAAiB,IAChsC,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QE6BhC,6DAAAS,GAAAA,GAAAA,aAAAf,GAAAA,GAAAA,mBAAAC,GAAAA,GAAAA,aChDsM,GDkDtM,CACApU,KAAAA,gBAEAC,WAAAA,CACAkV,OAAAA,GACAjL,UAAAA,IAGArE,KAAAA,WACA,OACAqK,iBAAAA,GAAAA,OACAiE,mBAAAA,GACAC,aAAAA,GACAF,OAAAA,GAEA,EAEAjN,SAAAA,CACAwB,QAAAA,WACA,yCACA,EAEAC,WAAAA,WACA,2BACA,cE/DI,GAAU,CAAC,EAEf,GAAQzH,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,YAAY,CAACI,MAAM,CAAC,WAAWN,EAAIkH,QAAQ,SAAWlH,EAAI2O,oBAAoB3O,EAAIa,GAAG,KAAMb,EAAImH,WAAY,CAACjH,EAAG,SAAS,CAACI,MAAM,CAAC,WAAWN,EAAIkH,QAAQ,uBAAuBlH,EAAI4S,mBAAmB,gBAAgB5S,EAAI6S,aAAa,OAAS7S,EAAI2S,QAAQpS,GAAG,CAAC,gBAAgB,SAASC,GAAQR,EAAI2S,OAAOnS,CAAM,MAAMN,EAAG,OAAO,CAACF,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,kBAAkB,WAAW,EAC5d,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEnB8K,GCmC9M,CACAzD,KAAAA,wBAEAC,WAAAA,CACAmV,yBAAAA,SAGAjV,MAAAA,CACAkV,eAAAA,CACAhV,KAAAA,QACAC,UAAAA,IAIA2G,SAAAA,CACAJ,SAAAA,WACA,0BACA,gBCzCI,GAAU,CAAC,EAEf,GAAQ5F,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,gBCVI,GAAU,CAAC,EAEf,GAAQJ,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICDA,IAXgB,OACd,ICVW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,IAAIF,EAAI+T,GAAG,CAAC1T,MAAM,CAAEiF,SAAUtF,EAAIsF,UAAWhF,MAAM,CAAC,KAAO,wBAAwBN,EAAIgU,YAAY,CAAC9T,EAAG,kBAAkB,CAACE,YAAY,cAAcE,MAAM,CAAC,KAAO,MAAMN,EAAIa,GAAG,OAAOb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,iCAAiC,OAAO,EAC7T,GACsB,IDWpB,EACA,KACA,WACA,MAI8B,8IEsBhC,QACAzD,KAAAA,kBAEAC,WAAAA,CACAuV,6BAAAA,IAGArV,MAAAA,CACAkV,eAAAA,CACAhV,KAAAA,QACAC,UAAAA,IAIAuF,KAAAA,WACA,OACA4P,iBAAAA,KAAAA,eACAlL,SAAAA,EAEA,EAEAzJ,QAAAA,CACA4U,kBAAAA,WAAA,sJACA,sCAEAzQ,GAAAA,EAAAA,gBAAAA,EAAAA,kBAAA,OAAA0C,EAAAA,EAAAA,KACA,kBACA8N,iBAAAA,EAAAA,iBACA7N,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,kBACAC,aAAAA,EAAAA,WAAAA,0CACAC,MAAAA,EAAAA,KACA,0OAEA,EAEAE,eAAAA,SAAAA,GAAA,yBAAAJ,EAAAA,EAAAA,OAAAC,EAAAA,EAAAA,aAAAC,EAAAA,EAAAA,MACA,UACAuE,EAAAA,EAAAA,IAAAA,mCAAAA,KAEApE,EAAAA,EAAAA,IAAAA,GACAC,GAAAA,MAAAA,EAAAA,IAEA,eACA,ICxFwM,MCkBxM,IAXgB,OACd,ICRW,WAAkB,IAAI3G,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,wBAAwB,CAACI,MAAM,CAAC,KAAO,SAAS,QAAUN,EAAIkU,iBAAiB,QAAUlU,EAAIgJ,SAASzI,GAAG,CAAC,iBAAiB,CAAC,SAASC,GAAQR,EAAIkU,iBAAiB1T,CAAM,EAAER,EAAImU,qBAAqB,CAACnU,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,mBAAmB,WAAW,EAC9X,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElB2K,GCgD3M,CACAzD,KAAAA,qBAEAC,WAAAA,CACAkK,SAAAA,KAGAhK,MAAAA,CACAI,YAAAA,CACAF,KAAAA,OACAC,UAAAA,GAEAqV,aAAAA,CACAtV,KAAAA,OACAC,UAAAA,GAEA+U,eAAAA,CACAhV,KAAAA,QACAC,UAAAA,GAEA8E,OAAAA,CACA/E,KAAAA,OACAC,UAAAA,IAIA2G,SAAAA,CACAJ,SAAAA,WACA,0BACA,EAEA+O,gBAAAA,WACA,4BACA,gCAAAxQ,QAAAA,EAAAA,EAAAA,MAAAA,MAKA,IACA,gBC5EI,GAAU,CAAC,EAEf,GAAQnE,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,IAAI,CAACE,YAAY,eAAeC,MAAM,CAAEiF,SAAUtF,EAAIsF,UAAWhF,MAAM,CAAC,KAAON,EAAIqU,kBAAkB,CAACnU,EAAG,WAAW,CAACE,YAAY,uBAAuBE,MAAM,CAAC,KAAON,EAAI6D,OAAO,KAAO,GAAG,oBAAmB,EAAK,4BAA2B,EAAM,gBAAe,EAAK,mBAAkB,KAAQ7D,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACF,EAAG,OAAO,CAACF,EAAIa,GAAGb,EAAIc,GAAGd,EAAIhB,kBAAkBgB,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAACF,EAAG,OAAO,CAACF,EAAIa,GAAGb,EAAIc,GAAGd,EAAIoU,oBAAoB,EAC9jB,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QE6BhC,IAKAvP,EAAAA,EAAAA,GAAAA,WAAAA,yBAAAA,CAAAA,GAJAuP,GAAAA,GAAAA,aAAAA,MACApV,GAAAA,GAAAA,YAAAA,MACA8U,GAAAA,GAAAA,eACAjQ,GAAAA,GAAAA,OAGA,IACApF,KAAAA,iBAEAC,WAAAA,CACA4V,sBAAAA,GACA3L,UAAAA,GACA4L,gBAAAA,GACAC,mBAAAA,IAGAlQ,KAAAA,WACA,OACAqK,iBAAAA,EAAAA,gBACAyF,aAAAA,GACApV,YAAAA,GACA8U,eAAAA,GACAjQ,OAAAA,GAEA,EAEAuL,QAAAA,YACAtF,EAAAA,EAAAA,IAAAA,gCAAAA,KAAAA,0BACAA,EAAAA,EAAAA,IAAAA,gCAAAA,KAAAA,yBACA,EAEAC,cAAAA,YACAC,EAAAA,EAAAA,IAAAA,gCAAAA,KAAAA,0BACAA,EAAAA,EAAAA,IAAAA,gCAAAA,KAAAA,yBACA,EAEAzK,QAAAA,CACAwL,wBAAAA,SAAAA,GACA,kBACA,EAEA0J,yBAAAA,SAAAA,GACA,mBACA,IC5FuM,kBCWnM,GAAU,CAAC,EAEf,GAAQ/U,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,YAAY,CAACI,MAAM,CAAC,SAAWN,EAAI2O,oBAAoB3O,EAAIa,GAAG,KAAKX,EAAG,kBAAkB,CAACI,MAAM,CAAC,kBAAkBN,EAAI8T,gBAAgBvT,GAAG,CAAC,wBAAwB,SAASC,GAAQR,EAAI8T,eAAetT,CAAM,EAAE,yBAAyB,SAASA,GAAQR,EAAI8T,eAAetT,CAAM,KAAKR,EAAIa,GAAG,KAAKX,EAAG,qBAAqB,CAACI,MAAM,CAAC,aAAeN,EAAIoU,aAAa,eAAepU,EAAIhB,YAAY,kBAAkBgB,EAAI8T,eAAe,UAAU9T,EAAI6D,UAAU7D,EAAIa,GAAG,KAAKX,EAAG,wBAAwB,CAACI,MAAM,CAAC,kBAAkBN,EAAI8T,mBAAmB,EAC1mB,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,wtCEehC,IAAAM,IAAA,+CAAAA,aClCsM,GDoCtM,CACA3V,KAAAA,sBAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACA8P,aAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAlP,SAAAA,EAAAA,GAAAA,QAEA,GE7BA,IAXgB,OACd,ICRW,WAAkB,IAAIlF,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,uBAAuB,yBAAyBlC,EAAIoU,cAAa,GAAM,GACrN,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,wtCEgBhC,IAAAM,IAAA,+CAAAA,KClC8L,GDoC9L,CACAjW,KAAAA,cAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACAoQ,KAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAxP,SAAAA,EAAAA,GAAAA,QAEA,GE7BA,IAXgB,OACd,ICRW,WAAkB,IAAIlF,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,eAAe,yBAAyBlC,EAAI0U,MAAK,GAAM,GACrM,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,wtCEgBhC,IAAAC,IAAA,+CAAAA,SClCkM,GDoClM,CACAlW,KAAAA,kBAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACAqQ,SAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAAzP,SAAAA,EAAAA,GAAAA,QAEA,GE7BA,IAXgB,OACd,ICRW,WAAkB,IAAIlF,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,mBAAmB,yBAAyBlC,EAAI2U,UAAS,GAAM,GAC7M,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,wtCEiBhC,IAAAC,IAAA,+CAAAA,UCnCmM,GDqCnM,CACAnW,KAAAA,mBAEAC,WAAAA,CACAwO,uBAAAA,IAGA5I,KAAAA,WACA,OACAsQ,UAAAA,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,CAAAA,EAAAA,CAAA1P,SAAAA,EAAAA,GAAAA,QAEA,GE9BA,IAXgB,OACd,ICRW,WAAkB,IAAIlF,EAAIC,KAAqB,OAAOC,EAApBF,EAAIG,MAAMD,IAAa,yBAAyBF,EAAIsL,GAAG,CAAChL,MAAM,CAAC,YAAcN,EAAIkC,EAAE,WAAY,kBAAkB,cAAa,IAAO,yBAAyBlC,EAAI4U,WAAU,GAAM,GACjO,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,yJEiBzB,OAAMC,GAA8B,+CAAG,WAAOC,EAASC,GAAU,0FAEZ,OADrDlR,GAASC,EAAAA,EAAAA,MAAiBC,IAC1BC,GAAMC,EAAAA,EAAAA,gBAAe,oBAAqB,CAAEJ,OAAAA,IAAS,UAErDK,EAAAA,GAAAA,mBAAiB,uBAELC,EAAAA,QAAAA,IAAUH,EAAK,CAChC8Q,QAAAA,EACAC,WAAAA,IACC,OAHO,OAAH1Q,EAAM,EAAH,uBAKFA,EAAIC,MAAI,2NACf,gBAZ0C,orBCRpC,IAAM0Q,GAAkBhU,OAAOC,OAAO,CAC5CgU,KAAM,OACNC,gBAAiB,kBACjBC,KAAM,SAMMC,GAA2BpU,OAAOC,QAAM,SACnD+T,GAAgBC,KAAO,CACvBxW,KAAMuW,GAAgBC,KACtBI,MAAOnT,EAAE,WAAY,sBACrB,MACA8S,GAAgBE,gBAAkB,CAClCzW,KAAMuW,GAAgBE,gBACtBG,MAAOnT,EAAE,WAAY,kCACrB,MACA8S,GAAgBG,KAAO,CACvB1W,KAAMuW,GAAgBG,KACtBE,MAAOnT,EAAE,WAAY,UACrB,qUCAF,IAAA4R,IAAA,+CAAAA,eAEA,IACArV,KAAAA,qBAEAC,WAAAA,CACA4W,SAAAA,MAGA1W,MAAAA,CACAkW,QAAAA,CACAhW,KAAAA,OACAC,UAAAA,GAEAwW,UAAAA,CACAzW,KAAAA,OACAC,UAAAA,GAEAgW,WAAAA,CACAjW,KAAAA,OACAC,UAAAA,IAIAuF,KAAAA,WACA,OACAkR,kBAAAA,KAAAA,WACA1B,eAAAA,GAEA,EAEApO,SAAAA,CACAJ,SAAAA,WACA,0BACA,EAEA4B,QAAAA,WACA,gDACA,EAEAuO,iBAAAA,WACA,0BACA,EAEAC,kBAAAA,WACA,wBACA,GAGAtG,QAAAA,YACAtF,EAAAA,EAAAA,IAAAA,mCAAAA,KAAAA,2BACA,EAEAC,cAAAA,YACAC,EAAAA,EAAAA,IAAAA,mCAAAA,KAAAA,2BACA,EAEAzK,QAAAA,CACAoW,mBAAAA,SAAAA,GAAA,oJAEAF,OAAAA,EAAAA,CAAA,eAEA,GADAV,EAAAA,EAAAA,KACA,+BAEAA,KAAAA,EAAAA,CAAA,+BACA,gEAPA,EAUA,EAEAa,iBAAAA,SAAAA,GAAA,8KAEAf,GAAAA,EAAAA,QAAAA,GAAA,OAAAzO,EAAAA,EAAAA,KACA,kBACA2O,WAAAA,EACA1O,OAAAA,QAAAA,EAAAA,EAAAA,WAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAAA,YAAAA,IAAAA,OAAAA,EAAAA,EAAAA,SACA,gDAEA,kBACAC,aAAAA,EAAAA,WAAAA,6CAAAA,CAAAiP,UAAAA,EAAAA,YACAhP,MAAAA,EAAAA,KACA,wDAXA,EAaA,EAEAE,eAAAA,SAAAA,GAAA,mBAAAJ,EAAAA,EAAAA,OAAAC,EAAAA,EAAAA,aAAAC,EAAAA,EAAAA,MACA,SAEA,2BAEAG,EAAAA,EAAAA,IAAAA,GACAC,GAAAA,MAAAA,EAAAA,GAEA,EAEAkP,2BAAAA,SAAAA,GACA,qBACA,ICjJ2M,kBCWvM,GAAU,CAAC,EAEf,GAAQnW,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,uBAAuBC,MAAM,CAAEiF,SAAUtF,EAAIsF,WAAY,CAACpF,EAAG,QAAQ,CAACI,MAAM,CAAC,IAAMN,EAAIkH,UAAU,CAAClH,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIuV,WAAW,UAAUvV,EAAIa,GAAG,KAAKX,EAAG,WAAW,CAACE,YAAY,+BAA+BE,MAAM,CAAC,WAAWN,EAAIkH,QAAQ,WAAY,EAAM,QAAUlH,EAAI0V,kBAAkB,MAAQ1V,EAAIyV,kBAAkBlV,GAAG,CAAC,kBAAkBP,EAAI2V,uBAAuB,EAChd,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,mHEkChC,IAAAG,IAAA,0CAAAA,cACAhC,IAAA,+CAAAA,eAEA,iBACA,6DACA,uCACA,iBACA,GAEA,CAEA,EAEA,IACArV,KAAAA,2BAEAC,WAAAA,CACAiK,UAAAA,GACAoN,mBAAAA,IAGAzR,KAAAA,WACA,OACA0R,QAAAA,EAAAA,mBACAlC,eAAAA,GACAmC,iBAAAA,OAAAA,QAAAA,IACAC,KAAAA,SAAAA,GAAA,q6BAAApB,EAAAA,EAAAA,GAAA,cAAAqB,GAAAA,EAAAC,MAAAA,EAAAA,MAAAb,UAAAA,EAAAA,UAAAR,WAAAA,EAAAA,WAAA,IACAsB,KAAAA,IAEAC,WAAAA,OAAAA,WAAAA,uBAAAA,QACAC,OAAAA,iBAAAA,SAAAA,eAAAA,uBAAAA,iBAAAA,SAAAA,OACA,MAEA,EAEA7Q,SAAAA,CACAJ,SAAAA,WACA,0BACA,EAEAkR,KAAAA,WACA,gDACA,GAGApH,QAAAA,WAAA,YACAtF,EAAAA,EAAAA,IAAAA,mCAAAA,KAAAA,4BAEAyM,OAAAA,SAAAA,WACA,8DACAA,OAAAA,iBAAAA,SAAAA,eAAAA,uBAAAA,iBAAAA,SAAAA,OACA,KACA,CACA,EAEAxM,cAAAA,YACAC,EAAAA,EAAAA,IAAAA,mCAAAA,KAAAA,2BACA,EAEAzK,QAAAA,CACAsW,2BAAAA,SAAAA,GACA,qBACA,ICnHiN,kBCW7M,GAAU,CAAC,EAEf,GAAQnW,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,aAAiB,YALlD,ICFA,IAXgB,OACd,ICTW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACuW,MAAO,CAAEH,WAAYtW,EAAIsW,YAAchW,MAAM,CAAC,GAAK,uBAAuB,CAACJ,EAAG,YAAY,CAACI,MAAM,CAAC,cAAa,EAAK,SAAWN,EAAIgW,WAAWhW,EAAIa,GAAG,KAAKX,EAAG,KAAK,CAACG,MAAM,CAAEiF,SAAUtF,EAAIsF,WAAY,CAACtF,EAAIa,GAAG,SAASb,EAAIc,GAAGd,EAAIkC,EAAE,WAAY,4MAA4M,UAAUlC,EAAIa,GAAG,KAAKX,EAAG,MAAM,CAACE,YAAY,uBAAuBqW,MAAO,CACnlBC,iBAAkB,UAAF,OAAY1W,EAAIwW,KAAI,aACjCxW,EAAI4G,GAAI5G,EAAIiW,kBAAkB,SAASU,GAAO,OAAOzW,EAAG,qBAAqB,CAACkE,IAAIuS,EAAMR,GAAG7V,MAAM,CAAC,WAAWqW,EAAMR,GAAG,aAAaQ,EAAMpB,UAAU,WAAaoB,EAAM5B,YAAYxU,GAAG,CAAC,oBAAoB,SAASC,GAAQ,OAAOR,EAAIgL,KAAK2L,EAAO,aAAcnW,EAAO,IAAI,IAAG,IAAI,EACxR,GACsB,IDQpB,EACA,KACA,WACA,MAI8B,QE2BhCoW,EAAAA,GAAoBC,MAAKC,EAAAA,EAAAA,OAEzB,IAAMC,IAAyBlS,EAAAA,EAAAA,GAAU,WAAY,0BAA0B,GAE/EmS,EAAAA,GAAAA,MAAU,CACTzX,QAAS,CACR2C,EAAAA,EAAAA,MAIF,IAAM+U,GAAaD,EAAAA,GAAAA,OAAWE,IACxBC,GAAcH,EAAAA,GAAAA,OAAWI,IACzBC,GAAkBL,EAAAA,GAAAA,OAAWM,IAC7BC,GAAYP,EAAAA,GAAAA,OAAWQ,IACvBC,GAAYT,EAAAA,GAAAA,OAAWU,IACvBC,GAAeX,EAAAA,GAAAA,OAAWY,IAC1BC,GAAcb,EAAAA,GAAAA,OAAWc,IACzBC,GAAcf,EAAAA,GAAAA,OAAWgB,IACzBC,GAAgBjB,EAAAA,GAAAA,OAAWkB,IAC3BC,GAAenB,EAAAA,GAAAA,OAAWoB,IAC1BC,GAAarB,EAAAA,GAAAA,OAAWsB,IAc9B,IAZA,IAAIrB,IAAasB,OAAO,wBACxB,IAAIpB,IAAcoB,OAAO,yBACzB,IAAIlB,IAAkBkB,OAAO,6BAC7B,IAAIhB,IAAYgB,OAAO,uBACvB,IAAId,IAAYc,OAAO,uBACvB,IAAIZ,IAAeY,OAAO,0BAC1B,IAAIV,IAAcU,OAAO,yBACzB,IAAIR,IAAcQ,OAAO,yBACzB,IAAIN,IAAgBM,OAAO,2BAC3B,IAAIJ,IAAeI,OAAO,0BAC1B,IAAIF,IAAaE,OAAO,uBAEpBxB,GAAwB,CAC3B,IAAMyB,GAAcxB,EAAAA,GAAAA,OAAWyB,IACzBC,GAAmB1B,EAAAA,GAAAA,OAAW2B,IAC9BC,GAAW5B,EAAAA,GAAAA,OAAW6B,IACtBC,GAAe9B,EAAAA,GAAAA,OAAW+B,IAC1BC,GAAgBhC,EAAAA,GAAAA,OAAWiC,IAC3BC,GAAwBlC,EAAAA,GAAAA,OAAWmC,KAEzC,IAAIX,IAAcD,OAAO,yBACzB,IAAIG,IAAmBH,OAAO,8BAC9B,IAAIK,IAAWL,OAAO,sBACtB,IAAIO,IAAeP,OAAO,0BAC1B,IAAIS,IAAgBT,OAAO,2BAC3B,IAAIW,IAAwBX,OAAO,kCACpC,yEC3FIa,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,otBAAqtB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2EAA2E,MAAQ,GAAG,SAAW,gTAAgT,eAAiB,CAAC,uyBAAyyB,WAAa,MAEl/D,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,qlBAAslB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,4EAA4E,MAAQ,GAAG,SAAW,kLAAkL,eAAiB,CAAC,weAAwe,WAAa,MAEr7C,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,6sCAA8sC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gFAAgF,MAAQ,GAAG,SAAW,6VAA6V,eAAiB,CAAC,mjCAAmjC,WAAa,MAEvyF,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,sLAAuL,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,uFAAuF,MAAQ,GAAG,SAAW,6DAA6D,eAAiB,CAAC,wLAAwL,WAAa,MAE5nB,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,yLAA0L,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sFAAsF,MAAQ,GAAG,SAAW,yEAAyE,eAAiB,CAAC,oLAAoL,WAAa,MAEtoB,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,sGAAuG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6FAA6F,MAAQ,GAAG,SAAW,mCAAmC,eAAiB,CAAC,uGAAuG,WAAa,MAEvc,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,yQAA0Q,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kFAAkF,MAAQ,GAAG,SAAW,4GAA4G,eAAiB,CAAC,qRAAqR,WAAa,MAEt1B,2ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,sGAAuG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yFAAyF,MAAQ,GAAG,SAAW,mCAAmC,eAAiB,CAAC,uGAAuG,WAAa,MAEnc,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,6GAA8G,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kGAAkG,MAAQ,GAAG,SAAW,6CAA6C,eAAiB,CAAC,wIAAwI,WAAa,MAE9f,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,wdAAyd,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kGAAkG,MAAQ,GAAG,SAAW,mMAAmM,eAAiB,CAAC,sgBAAsgB,WAAa,MAE73C,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,s+DAAu+D,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+FAA+F,MAAQ,GAAG,SAAW,ymBAAymB,eAAiB,CAAC,k+DAAk+D,WAAa,MAE1wJ,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,sGAAuG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2FAA2F,MAAQ,GAAG,SAAW,mCAAmC,eAAiB,CAAC,uGAAuG,WAAa,MAErc,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,mmBAAomB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+GAA+G,MAAQ,GAAG,SAAW,gPAAgP,eAAiB,CAAC,+mBAA+mB,WAAa,MAE3qD,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,sfAAuf,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yGAAyG,MAAQ,GAAG,SAAW,wKAAwK,eAAiB,CAAC,+bAA+b,WAAa,MAEh0C,4ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,8hCAA+hC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2FAA2F,MAAQ,GAAG,SAAW,oWAAoW,eAAiB,CAAC,6hCAA6hC,WAAa,MAEpnF,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,0lBAA2lB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sFAAsF,MAAQ,GAAG,SAAW,iGAAiG,eAAiB,CAAC,kaAAka,WAAa,MAE7yC,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,gWAAiW,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,4FAA4F,MAAQ,GAAG,SAAW,2FAA2F,eAAiB,CAAC,gZAAgZ,WAAa,MAEjiC,6ECJIiD,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOnD,GAAI,8cAA+c,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,8EAA8E,MAAQ,GAAG,SAAW,8KAA8K,eAAiB,CAAC,8bAA8b,WAAa,MAElwC,6BCPA,IAAID,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,SAASqD,EAAeC,GACvB,IAAIrD,EAAKsD,EAAsBD,GAC/B,OAAOE,EAAoBvD,EAC5B,CACA,SAASsD,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAEzD,EAAKsD,GAAM,CACpC,IAAIlI,EAAI,IAAIsI,MAAM,uBAAyBJ,EAAM,KAEjD,MADAlI,EAAEW,KAAO,mBACHX,CACP,CACA,OAAO4E,EAAIsD,EACZ,CACAD,EAAeM,KAAO,WACrB,OAAO7Y,OAAO6Y,KAAK3D,EACpB,EACAqD,EAAeO,QAAUL,EACzBH,EAAOS,QAAUR,EACjBA,EAAepD,GAAK,w6BClShB6D,EAA2B,CAAC,EAGhC,SAASN,EAAoBO,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqB/H,IAAjBgI,EACH,OAAOA,EAAaH,QAGrB,IAAIT,EAASU,EAAyBC,GAAY,CACjD9D,GAAI8D,EACJE,QAAQ,EACRJ,QAAS,CAAC,GAUX,OANAK,EAAoBH,GAAUI,KAAKf,EAAOS,QAAST,EAAQA,EAAOS,QAASL,GAG3EJ,EAAOa,QAAS,EAGTb,EAAOS,OACf,CAGAL,EAAoBY,EAAIF,E9J5BpB5b,EAAW,GACfkb,EAAoBa,EAAI,SAASC,EAAQC,EAAUzS,EAAI0S,GACtD,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAIrc,EAAS4P,OAAQyM,IAAK,CACrCJ,EAAWjc,EAASqc,GAAG,GACvB7S,EAAKxJ,EAASqc,GAAG,GACjBH,EAAWlc,EAASqc,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAASrM,OAAQ2M,MACpB,EAAXL,GAAsBC,GAAgBD,IAAa1Z,OAAO6Y,KAAKH,EAAoBa,GAAGS,OAAM,SAAS5W,GAAO,OAAOsV,EAAoBa,EAAEnW,GAAKqW,EAASM,GAAK,IAChKN,EAASQ,OAAOF,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbtc,EAASyc,OAAOJ,IAAK,GACrB,IAAIK,EAAIlT,SACEkK,IAANgJ,IAAiBV,EAASU,EAC/B,CACD,CACA,OAAOV,CArBP,CAJCE,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAIrc,EAAS4P,OAAQyM,EAAI,GAAKrc,EAASqc,EAAI,GAAG,GAAKH,EAAUG,IAAKrc,EAASqc,GAAKrc,EAASqc,EAAI,GACrGrc,EAASqc,GAAK,CAACJ,EAAUzS,EAAI0S,EAwB/B,E+J5BAhB,EAAoByB,EAAI,SAAS7B,GAChC,IAAI8B,EAAS9B,GAAUA,EAAO+B,WAC7B,WAAa,OAAO/B,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAI,EAAoB4B,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CACR,ECNA1B,EAAoB4B,EAAI,SAASvB,EAASyB,GACzC,IAAI,IAAIpX,KAAOoX,EACX9B,EAAoBC,EAAE6B,EAAYpX,KAASsV,EAAoBC,EAAEI,EAAS3V,IAC5EpD,OAAOya,eAAe1B,EAAS3V,EAAK,CAAEsX,YAAY,EAAMtL,IAAKoL,EAAWpX,IAG3E,ECPAsV,EAAoBiC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAO3b,MAAQ,IAAI4b,SAAS,cAAb,EAGhB,CAFE,MAAOvK,GACR,GAAsB,iBAAXiF,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBmD,EAAoBC,EAAI,SAASmC,EAAKC,GAAQ,OAAO/a,OAAOgb,UAAUC,eAAe5B,KAAKyB,EAAKC,EAAO,ECCtGrC,EAAoBwB,EAAI,SAASnB,GACX,oBAAXmC,QAA0BA,OAAOC,aAC1Cnb,OAAOya,eAAe1B,EAASmC,OAAOC,YAAa,CAAEvY,MAAO,WAE7D5C,OAAOya,eAAe1B,EAAS,aAAc,CAAEnW,OAAO,GACvD,ECNA8V,EAAoB0C,IAAM,SAAS9C,GAGlC,OAFAA,EAAO+C,MAAQ,GACV/C,EAAOgD,WAAUhD,EAAOgD,SAAW,IACjChD,CACR,ECJAI,EAAoBqB,EAAI,gBCAxBrB,EAAoB6C,EAAIC,SAASC,SAAWC,KAAKvL,SAASwL,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAaPlD,EAAoBa,EAAEQ,EAAI,SAAS8B,GAAW,OAAoC,IAA7BD,EAAgBC,EAAgB,EAGrF,IAAIC,EAAuB,SAASC,EAA4BzY,GAC/D,IAKI2V,EAAU4C,EALVpC,EAAWnW,EAAK,GAChB0Y,EAAc1Y,EAAK,GACnB2Y,EAAU3Y,EAAK,GAGIuW,EAAI,EAC3B,GAAGJ,EAASyC,MAAK,SAAS/G,GAAM,OAA+B,IAAxByG,EAAgBzG,EAAW,IAAI,CACrE,IAAI8D,KAAY+C,EACZtD,EAAoBC,EAAEqD,EAAa/C,KACrCP,EAAoBY,EAAEL,GAAY+C,EAAY/C,IAGhD,GAAGgD,EAAS,IAAIzC,EAASyC,EAAQvD,EAClC,CAEA,IADGqD,GAA4BA,EAA2BzY,GACrDuW,EAAIJ,EAASrM,OAAQyM,IACzBgC,EAAUpC,EAASI,GAChBnB,EAAoBC,EAAEiD,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOnD,EAAoBa,EAAEC,EAC9B,EAEI2C,EAAqBT,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FS,EAAmBC,QAAQN,EAAqBO,KAAK,KAAM,IAC3DF,EAAmB9D,KAAOyD,EAAqBO,KAAK,KAAMF,EAAmB9D,KAAKgE,KAAKF,OClDvFzD,EAAoB4D,QAAKpL,ECGzB,IAAIqL,EAAsB7D,EAAoBa,OAAErI,EAAW,CAAC,OAAO,WAAa,OAAOwH,EAAoB,MAAQ,IACnH6D,EAAsB7D,EAAoBa,EAAEgD","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?0b38","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?90b5","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?02db","webpack:///nextcloud/apps/settings/src/constants/AccountPropertyConstants.js","webpack:///nextcloud/apps/settings/src/service/PersonalInfo/PersonalInfoService.js","webpack:///nextcloud/apps/settings/src/logger.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?e2eb","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?e342","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?d068","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?c843","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?feed","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?e65f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?6af7","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?5014","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?5282","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?e7aa","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?295f","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?08e9","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?2873","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?ac46","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?d38d","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?bde5","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?3162","webpack:///nextcloud/apps/settings/src/service/PersonalInfo/EmailService.js","webpack:///nextcloud/apps/settings/src/utils/validate.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?a21f","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?bd2c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?04df","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?74e3","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?1258","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?3dd6","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/PhoneSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/PhoneSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/PhoneSection.vue?d5e3","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/PhoneSection.vue?8b50","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocationSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocationSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocationSection.vue?fdc7","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocationSection.vue?414f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/WebsiteSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/WebsiteSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/WebsiteSection.vue?897b","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/WebsiteSection.vue?4b20","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/TwitterSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/TwitterSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/TwitterSection.vue?7e82","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/TwitterSection.vue?8ae2","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/FediverseSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/FediverseSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/FediverseSection.vue?e202","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/FediverseSection.vue?4a92","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?56b6","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?6358","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?94ab","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?6762","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?a350","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?41aa","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?948e","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?9b6c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?8511","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?1e8d","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?fafb","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?6463","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?f65d","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?fb42","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?7d4b","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?253f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?7612","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?9b34","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?2aa0","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?240c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?564e","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?accf","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?c85f","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?3f25","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/OrganisationSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/OrganisationSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/OrganisationSection.vue?5684","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/OrganisationSection.vue?adaf","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/RoleSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/RoleSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/RoleSection.vue?a7b4","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/RoleSection.vue?49db","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/HeadlineSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/HeadlineSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/HeadlineSection.vue?9d73","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/HeadlineSection.vue?d565","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/BiographySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/BiographySection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/BiographySection.vue?a6b2","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/BiographySection.vue?7384","webpack:///nextcloud/apps/settings/src/service/ProfileService.js","webpack:///nextcloud/apps/settings/src/constants/ProfileConstants.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?6abf","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?c222","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?5e5d","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?1d28","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?7729","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?d7f0","webpack:///nextcloud/apps/settings/src/main-personal-info.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue?vue&type=style&index=0&id=04cca3b6&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue?vue&type=style&index=0&id=1ab46e68&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?vue&type=style&index=0&id=367c6830&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?vue&type=style&index=0&id=3b8501a7&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?vue&type=style&index=0&id=6e196b5c&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?vue&type=style&index=0&id=ea9ccb08&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=style&index=0&id=1caba458&prod&lang=scss&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=style&index=1&id=1caba458&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?vue&type=style&index=0&id=61586aa5&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?vue&type=style&index=0&id=cf64d964&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?vue&type=style&index=0&id=a07dbf96&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?vue&type=style&index=0&id=c4a4afde&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?vue&type=style&index=0&id=4ef6bbf8&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?vue&type=style&index=0&id=05031b91&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?vue&type=style&index=0&id=d426ed04&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?vue&type=style&index=0&id=b43fcc0c&prod&lang=scss&scoped=true&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","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/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControlAction.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!./FederationControlAction.vue?vue&type=script&lang=js&\"","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<NcActionButton :aria-label=\"isSupportedScope ? tooltip : tooltipDisabled\"\n\t\tclass=\"federation-actions__btn\"\n\t\t:class=\"{ 'federation-actions__btn--active': activeScope === name }\"\n\t\t:close-after-click=\"true\"\n\t\t:disabled=\"!isSupportedScope\"\n\t\t:icon=\"iconClass\"\n\t\t:title=\"isSupportedScope ? tooltip : tooltipDisabled\"\n\t\t@click.stop.prevent=\"updateScope\">\n\t\t{{ isSupportedScope ? tooltip : tooltipDisabled }}\n\t</NcActionButton>\n</template>\n\n<script>\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\n\nexport default {\n\tname: 'FederationControlAction',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\tactiveScope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\thandleScopeChange: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t\ticonClass: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tisSupportedScope: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ttooltipDisabled: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\ttooltip: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tmethods: {\n\t\tupdateScope() {\n\t\t\tthis.handleScopeChange(this.name)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\t.federation-actions__btn {\n\t\t&::v-deep p {\n\t\t\twidth: 150px !important;\n\t\t\tpadding: 8px 0 !important;\n\t\t\tcolor: var(--color-main-text) !important;\n\t\t\tfont-size: 12.8px !important;\n\t\t\tline-height: 1.5em !important;\n\t\t}\n\t}\n\n\t.federation-actions__btn--active {\n\t\tbackground-color: var(--color-primary-light) !important;\n\t\tbox-shadow: inset 2px 0 var(--color-primary) !important;\n\t}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControlAction.vue?vue&type=style&index=0&id=d426ed04&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControlAction.vue?vue&type=style&index=0&id=d426ed04&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FederationControlAction.vue?vue&type=template&id=d426ed04&scoped=true&\"\nimport script from \"./FederationControlAction.vue?vue&type=script&lang=js&\"\nexport * from \"./FederationControlAction.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FederationControlAction.vue?vue&type=style&index=0&id=d426ed04&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d426ed04\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActionButton',{staticClass:\"federation-actions__btn\",class:{ 'federation-actions__btn--active': _vm.activeScope === _vm.name },attrs:{\"aria-label\":_vm.isSupportedScope ? _vm.tooltip : _vm.tooltipDisabled,\"close-after-click\":true,\"disabled\":!_vm.isSupportedScope,\"icon\":_vm.iconClass,\"title\":_vm.isSupportedScope ? _vm.tooltip : _vm.tooltipDisabled},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.updateScope.apply(null, arguments)}}},[_vm._v(\"\\n\\t\"+_vm._s(_vm.isSupportedScope ? _vm.tooltip : _vm.tooltipDisabled)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * SYNC to be kept in sync with `lib/public/Accounts/IAccountManager.php`\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/** Enum of account properties */\nexport const ACCOUNT_PROPERTY_ENUM = Object.freeze({\n\tADDRESS: 'address',\n\tAVATAR: 'avatar',\n\tBIOGRAPHY: 'biography',\n\tDISPLAYNAME: 'displayname',\n\tEMAIL_COLLECTION: 'additional_mail',\n\tEMAIL: 'email',\n\tHEADLINE: 'headline',\n\tNOTIFICATION_EMAIL: 'notify_email',\n\tFEDIVERSE: 'fediverse',\n\tORGANISATION: 'organisation',\n\tPHONE: 'phone',\n\tPROFILE_ENABLED: 'profile_enabled',\n\tROLE: 'role',\n\tTWITTER: 'twitter',\n\tWEBSITE: 'website',\n})\n\n/** Enum of account properties to human readable account property names */\nexport const ACCOUNT_PROPERTY_READABLE_ENUM = Object.freeze({\n\tADDRESS: t('settings', 'Location'),\n\tAVATAR: t('settings', 'Profile picture'),\n\tBIOGRAPHY: t('settings', 'About'),\n\tDISPLAYNAME: t('settings', 'Full name'),\n\tEMAIL_COLLECTION: t('settings', 'Additional email'),\n\tEMAIL: t('settings', 'Email'),\n\tHEADLINE: t('settings', 'Headline'),\n\tORGANISATION: t('settings', 'Organisation'),\n\tPHONE: t('settings', 'Phone number'),\n\tPROFILE_ENABLED: t('settings', 'Profile'),\n\tROLE: t('settings', 'Role'),\n\tTWITTER: t('settings', 'Twitter'),\n\tFEDIVERSE: t('settings', 'Fediverse (e.g. Mastodon)'),\n\tWEBSITE: t('settings', 'Website'),\n})\n\nexport const NAME_READABLE_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_ENUM.ADDRESS]: ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS,\n\t[ACCOUNT_PROPERTY_ENUM.AVATAR]: ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR,\n\t[ACCOUNT_PROPERTY_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,\n\t[ACCOUNT_PROPERTY_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME,\n\t[ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION,\n\t[ACCOUNT_PROPERTY_ENUM.EMAIL]: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t[ACCOUNT_PROPERTY_ENUM.HEADLINE]: ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,\n\t[ACCOUNT_PROPERTY_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,\n\t[ACCOUNT_PROPERTY_ENUM.PHONE]: ACCOUNT_PROPERTY_READABLE_ENUM.PHONE,\n\t[ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED,\n\t[ACCOUNT_PROPERTY_ENUM.ROLE]: ACCOUNT_PROPERTY_READABLE_ENUM.ROLE,\n\t[ACCOUNT_PROPERTY_ENUM.TWITTER]: ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER,\n\t[ACCOUNT_PROPERTY_ENUM.FEDIVERSE]: ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE,\n\t[ACCOUNT_PROPERTY_ENUM.WEBSITE]: ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE,\n})\n\n/** Enum of profile specific sections to human readable names */\nexport const PROFILE_READABLE_ENUM = Object.freeze({\n\tPROFILE_VISIBILITY: t('settings', 'Profile visibility'),\n})\n\n/** Enum of readable account properties to account property keys used by the server */\nexport const PROPERTY_READABLE_KEYS_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: ACCOUNT_PROPERTY_ENUM.ADDRESS,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: ACCOUNT_PROPERTY_ENUM.AVATAR,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_ENUM.BIOGRAPHY,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_ENUM.DISPLAYNAME,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: ACCOUNT_PROPERTY_ENUM.EMAIL,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: ACCOUNT_PROPERTY_ENUM.HEADLINE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_ENUM.ORGANISATION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: ACCOUNT_PROPERTY_ENUM.PHONE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: ACCOUNT_PROPERTY_ENUM.ROLE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: ACCOUNT_PROPERTY_ENUM.TWITTER,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE]: ACCOUNT_PROPERTY_ENUM.FEDIVERSE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: ACCOUNT_PROPERTY_ENUM.WEBSITE,\n})\n\n/**\n * Enum of account setting properties\n *\n * Account setting properties unlike account properties do not support scopes*\n */\nexport const ACCOUNT_SETTING_PROPERTY_ENUM = Object.freeze({\n\tLANGUAGE: 'language',\n\tLOCALE: 'locale',\n})\n\n/** Enum of account setting properties to human readable setting properties */\nexport const ACCOUNT_SETTING_PROPERTY_READABLE_ENUM = Object.freeze({\n\tLANGUAGE: t('settings', 'Language'),\n\tLOCALE: t('settings', 'Locale'),\n})\n\n/** Enum of scopes */\nexport const SCOPE_ENUM = Object.freeze({\n\tPRIVATE: 'v2-private',\n\tLOCAL: 'v2-local',\n\tFEDERATED: 'v2-federated',\n\tPUBLISHED: 'v2-published',\n})\n\n/** Enum of readable account properties to supported scopes */\nexport const PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n})\n\n/** List of readable account properties which aren't published to the lookup server */\nexport const UNPUBLISHED_READABLE_PROPERTIES = Object.freeze([\n\tACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,\n\tACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ROLE,\n])\n\n/** Scope suffix */\nexport const SCOPE_SUFFIX = 'Scope'\n\n/**\n * Enum of scope names to properties\n *\n * Used for federation control*\n */\nexport const SCOPE_PROPERTY_ENUM = Object.freeze({\n\t[SCOPE_ENUM.PRIVATE]: {\n\t\tname: SCOPE_ENUM.PRIVATE,\n\t\tdisplayName: t('settings', 'Private'),\n\t\ttooltip: t('settings', 'Only visible to people matched via phone number integration through Talk on mobile'),\n\t\ttooltipDisabled: t('settings', 'Not available as this property is required for core functionality including file sharing and calendar invitations'),\n\t\ticonClass: 'icon-phone',\n\t},\n\t[SCOPE_ENUM.LOCAL]: {\n\t\tname: SCOPE_ENUM.LOCAL,\n\t\tdisplayName: t('settings', 'Local'),\n\t\ttooltip: t('settings', 'Only visible to people on this instance and guests'),\n\t\t// tooltipDisabled is not required here as this scope is supported by all account properties\n\t\ticonClass: 'icon-password',\n\t},\n\t[SCOPE_ENUM.FEDERATED]: {\n\t\tname: SCOPE_ENUM.FEDERATED,\n\t\tdisplayName: t('settings', 'Federated'),\n\t\ttooltip: t('settings', 'Only synchronize to trusted servers'),\n\t\ttooltipDisabled: t('settings', 'Not available as federation has been disabled for your account, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-contacts-dark',\n\t},\n\t[SCOPE_ENUM.PUBLISHED]: {\n\t\tname: SCOPE_ENUM.PUBLISHED,\n\t\tdisplayName: t('settings', 'Published'),\n\t\ttooltip: t('settings', 'Synchronize to trusted servers and the global and public address book'),\n\t\ttooltipDisabled: t('settings', 'Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-link',\n\t},\n})\n\n/** Default additional email scope */\nexport const DEFAULT_ADDITIONAL_EMAIL_SCOPE = SCOPE_ENUM.LOCAL\n\n/** Enum of verification constants, according to IAccountManager */\nexport const VERIFICATION_ENUM = Object.freeze({\n\tNOT_VERIFIED: 0,\n\tVERIFICATION_IN_PROGRESS: 1,\n\tVERIFIED: 2,\n})\n\n/**\n * Email validation regex\n *\n * Sourced from https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/regexp/ascii.ts*\n */\n// eslint-disable-next-line no-control-regex\nexport const VALIDATE_EMAIL_REGEX = /^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/i\n","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nimport { SCOPE_SUFFIX } from '../../constants/AccountPropertyConstants.js'\n\n/**\n * Save the primary account property value for the user\n *\n * @param {string} accountProperty the account property\n * @param {string|boolean} value the primary value\n * @return {object}\n */\nexport const savePrimaryAccountProperty = async (accountProperty, value) => {\n\t// TODO allow boolean values on backend route handler\n\t// Convert boolean to string for compatibility\n\tif (typeof value === 'boolean') {\n\t\tvalue = value ? '1' : '0'\n\t}\n\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: accountProperty,\n\t\tvalue,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the federation scope of the primary account property for the user\n *\n * @param {string} accountProperty the account property\n * @param {string} scope the federation scope\n * @return {object}\n */\nexport const savePrimaryAccountPropertyScope = async (accountProperty, scope) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: `${accountProperty}${SCOPE_SUFFIX}`,\n\t\tvalue: scope,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Roeland Jago Douma <roeland@famdouma.nl>\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 { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('settings')\n\t.detectUser()\n\t.build()\n","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<NcActions :class=\"{ 'federation-actions': !additional, 'federation-actions--additional': additional }\"\n\t\t:aria-label=\"ariaLabel\"\n\t\t:default-icon=\"scopeIcon\"\n\t\t:disabled=\"disabled\">\n\t\t<FederationControlAction v-for=\"federationScope in federationScopes\"\n\t\t\t:key=\"federationScope.name\"\n\t\t\t:active-scope=\"scope\"\n\t\t\t:display-name=\"federationScope.displayName\"\n\t\t\t:handle-scope-change=\"changeScope\"\n\t\t\t:icon-class=\"federationScope.iconClass\"\n\t\t\t:is-supported-scope=\"supportedScopes.includes(federationScope.name)\"\n\t\t\t:name=\"federationScope.name\"\n\t\t\t:tooltip-disabled=\"federationScope.tooltipDisabled\"\n\t\t\t:tooltip=\"federationScope.tooltip\"\n\t\t\t:aria-label=\"federationScope.tooltip\" />\n\t</NcActions>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\n\nimport FederationControlAction from './FederationControlAction.vue'\n\nimport {\n\tACCOUNT_PROPERTY_READABLE_ENUM,\n\tACCOUNT_SETTING_PROPERTY_READABLE_ENUM,\n\tPROFILE_READABLE_ENUM,\n\tPROPERTY_READABLE_KEYS_ENUM,\n\tPROPERTY_READABLE_SUPPORTED_SCOPES_ENUM,\n\tSCOPE_ENUM, SCOPE_PROPERTY_ENUM,\n\tUNPUBLISHED_READABLE_PROPERTIES,\n} from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountPropertyScope } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport logger from '../../../logger.js'\n\nconst {\n\tfederationEnabled,\n\tlookupServerUploadEnabled,\n} = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'FederationControl',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tFederationControlAction,\n\t},\n\n\tprops: {\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tvalidator: (value) => Object.values(ACCOUNT_PROPERTY_READABLE_ENUM).includes(value) || Object.values(ACCOUNT_SETTING_PROPERTY_READABLE_ENUM).includes(value) || value === PROFILE_READABLE_ENUM.PROFILE_VISIBILITY,\n\t\t},\n\t\tadditional: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tadditionalValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\thandleAdditionalScopeChange: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\treadableLowerCase: this.readable.toLocaleLowerCase(),\n\t\t\tinitialScope: this.scope,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tariaLabel() {\n\t\t\treturn t('settings', 'Change scope level of {property}, current scope is {scope}', { property: this.readableLowerCase, scope: this.scopeDisplayNameLowerCase })\n\t\t},\n\n\t\tscopeDisplayNameLowerCase() {\n\t\t\treturn SCOPE_PROPERTY_ENUM[this.scope].displayName.toLocaleLowerCase()\n\t\t},\n\n\t\tscopeIcon() {\n\t\t\treturn SCOPE_PROPERTY_ENUM[this.scope].iconClass\n\t\t},\n\n\t\tfederationScopes() {\n\t\t\treturn Object.values(SCOPE_PROPERTY_ENUM)\n\t\t},\n\n\t\tsupportedScopes() {\n\t\t\tconst scopes = PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM[this.readable]\n\n\t\t\tif (UNPUBLISHED_READABLE_PROPERTIES.includes(this.readable)) {\n\t\t\t\treturn scopes\n\t\t\t}\n\n\t\t\tif (federationEnabled) {\n\t\t\t\tscopes.push(SCOPE_ENUM.FEDERATED)\n\t\t\t}\n\n\t\t\tif (lookupServerUploadEnabled) {\n\t\t\t\tscopes.push(SCOPE_ENUM.PUBLISHED)\n\t\t\t}\n\n\t\t\treturn scopes\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync changeScope(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\n\t\t\tif (!this.additional) {\n\t\t\t\tawait this.updatePrimaryScope(scope)\n\t\t\t} else {\n\t\t\t\tawait this.updateAdditionalScope(scope)\n\t\t\t}\n\t\t},\n\n\t\tasync updatePrimaryScope(scope) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountPropertyScope(PROPERTY_READABLE_KEYS_ENUM[this.readable], scope)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tscope,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update federation scope of the primary {property}', { property: this.readableLowerCase }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync updateAdditionalScope(scope) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await this.handleAdditionalScopeChange(this.additionalValue, scope)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tscope,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update federation scope of additional {property}', { property: this.readableLowerCase }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ scope, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialScope = scope\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:scope', this.initialScope)\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tlogger.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\t.federation-actions,\n\t.federation-actions--additional {\n\t\topacity: 0.4 !important;\n\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\topacity: 0.8 !important;\n\t\t}\n\t}\n\n\t.federation-actions--additional {\n\t\t&::v-deep button {\n\t\t\t// TODO remove this hack\n\t\t\tpadding-bottom: 7px;\n\t\t\theight: 30px !important;\n\t\t\tmin-height: 30px !important;\n\t\t\twidth: 30px !important;\n\t\t\tmin-width: 30px !important;\n\t\t}\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!./FederationControl.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!./FederationControl.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!./FederationControl.vue?vue&type=style&index=0&id=05031b91&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControl.vue?vue&type=style&index=0&id=05031b91&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FederationControl.vue?vue&type=template&id=05031b91&scoped=true&\"\nimport script from \"./FederationControl.vue?vue&type=script&lang=js&\"\nexport * from \"./FederationControl.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FederationControl.vue?vue&type=style&index=0&id=05031b91&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05031b91\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{class:{ 'federation-actions': !_vm.additional, 'federation-actions--additional': _vm.additional },attrs:{\"aria-label\":_vm.ariaLabel,\"default-icon\":_vm.scopeIcon,\"disabled\":_vm.disabled}},_vm._l((_vm.federationScopes),function(federationScope){return _c('FederationControlAction',{key:federationScope.name,attrs:{\"active-scope\":_vm.scope,\"display-name\":federationScope.displayName,\"handle-scope-change\":_vm.changeScope,\"icon-class\":federationScope.iconClass,\"is-supported-scope\":_vm.supportedScopes.includes(federationScope.name),\"name\":federationScope.name,\"tooltip-disabled\":federationScope.tooltipDisabled,\"tooltip\":federationScope.tooltip,\"aria-label\":federationScope.tooltip}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.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!./HeaderBar.vue?vue&type=script&lang=js&\"","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<component :is=\"isHeading ? `h3` : `div`\" class=\"headerbar-label\" :class=\"{ 'setting-property': isSettingProperty, 'profile-property': isProfileProperty }\">\n\t\t<span v-if=\"isHeading\">\n\t\t\t<!-- Already translated as required by prop validator -->\n\t\t\t{{ readable }}\n\t\t</span>\n\t\t<label v-else :for=\"inputId\">\n\t\t\t<!-- Already translated as required by prop validator -->\n\t\t\t{{ readable }}\n\t\t</label>\n\n\t\t<template v-if=\"scope\">\n\t\t\t<FederationControl class=\"federation-control\"\n\t\t\t\t:readable=\"readable\"\n\t\t\t\t:scope.sync=\"localScope\"\n\t\t\t\t@update:scope=\"onScopeChange\" />\n\t\t</template>\n\n\t\t<template v-if=\"isEditable && isMultiValueSupported\">\n\t\t\t<NcButton type=\"tertiary\"\n\t\t\t\t:disabled=\"!isValidSection\"\n\t\t\t\t:aria-label=\"t('settings', 'Add additional email')\"\n\t\t\t\t@click.stop.prevent=\"onAddAdditional\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('settings', 'Add') }}\n\t\t\t</NcButton>\n\t\t</template>\n\t</component>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Plus from 'vue-material-design-icons/Plus.vue'\n\nimport FederationControl from './FederationControl.vue'\n\nimport {\n\tACCOUNT_PROPERTY_READABLE_ENUM,\n\tPROFILE_READABLE_ENUM,\n} from '../../../constants/AccountPropertyConstants.js'\n\nexport default {\n\tname: 'HeaderBar',\n\n\tcomponents: {\n\t\tFederationControl,\n\t\tNcButton,\n\t\tPlus,\n\t},\n\n\tprops: {\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tisMultiValueSupported: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisValidSection: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tisHeading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlocalScope: this.scope,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisProfileProperty() {\n\t\t\treturn this.readable === ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED\n\t\t},\n\n\t\tisSettingProperty() {\n\t\t\treturn !Object.values(ACCOUNT_PROPERTY_READABLE_ENUM).includes(this.readable) && !Object.values(PROFILE_READABLE_ENUM).includes(this.readable)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonAddAdditional() {\n\t\t\tthis.$emit('add-additional')\n\t\t},\n\n\t\tonScopeChange(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\t.headerbar-label {\n\t\tfont-weight: normal;\n\t\tdisplay: inline-flex;\n\t\twidth: 100%;\n\t\tmargin: 12px 0 0 0;\n\t\tgap: 8px;\n\t\talign-items: center;\n\t\tfont-size: 16px;\n\t\tcolor: var(--color-text-light);\n\n\t\t&.profile-property {\n\t\t\theight: 38px;\n\t\t}\n\n\t\t&.setting-property {\n\t\t\theight: 44px;\n\t\t}\n\n\t\tlabel {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t.federation-control {\n\t\tmargin: 0;\n\t}\n\n\t.button-vue {\n\t\tmargin: 0 0 0 auto !important;\n\t}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=style&index=0&id=b43fcc0c&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=style&index=0&id=b43fcc0c&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./HeaderBar.vue?vue&type=template&id=b43fcc0c&scoped=true&\"\nimport script from \"./HeaderBar.vue?vue&type=script&lang=js&\"\nexport * from \"./HeaderBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HeaderBar.vue?vue&type=style&index=0&id=b43fcc0c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b43fcc0c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.isHeading ? `h3` : `div`,{tag:\"component\",staticClass:\"headerbar-label\",class:{ 'setting-property': _vm.isSettingProperty, 'profile-property': _vm.isProfileProperty }},[(_vm.isHeading)?_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.readable)+\"\\n\\t\")]):_c('label',{attrs:{\"for\":_vm.inputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.readable)+\"\\n\\t\")]),_vm._v(\" \"),(_vm.scope)?[_c('FederationControl',{staticClass:\"federation-control\",attrs:{\"readable\":_vm.readable,\"scope\":_vm.localScope},on:{\"update:scope\":[function($event){_vm.localScope=$event},_vm.onScopeChange]}})]:_vm._e(),_vm._v(\" \"),(_vm.isEditable && _vm.isMultiValueSupported)?[_c('NcButton',{attrs:{\"type\":\"tertiary\",\"disabled\":!_vm.isValidSection,\"aria-label\":_vm.t('settings', 'Add additional email')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onAddAdditional.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Plus',{attrs:{\"size\":20}})]},proxy:true}],null,false,32235154)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add'))+\"\\n\\t\\t\")])]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section id=\"vue-avatar-section\">\n\t\t<h3 class=\"hidden-visually\"> {{ t('settings', 'Your profile information') }} </h3>\n\t\t<HeaderBar :input-id=\"avatarChangeSupported ? inputId : null\"\n\t\t\t:readable=\"avatar.readable\"\n\t\t\t:scope.sync=\"avatar.scope\" />\n\n\t\t<div v-if=\"!showCropper\" class=\"avatar__container\">\n\t\t\t<div class=\"avatar__preview\">\n\t\t\t\t<NcAvatar v-if=\"!loading\"\n\t\t\t\t\t:user=\"userId\"\n\t\t\t\t\t:aria-label=\"t('settings', 'Your profile picture')\"\n\t\t\t\t\t:disabled-menu=\"true\"\n\t\t\t\t\t:disabled-tooltip=\"true\"\n\t\t\t\t\t:show-user-status=\"false\"\n\t\t\t\t\t:size=\"180\"\n\t\t\t\t\t:key=\"version\" />\n\t\t\t\t<div v-else class=\"icon-loading\" />\n\t\t\t</div>\n\t\t\t<template v-if=\"avatarChangeSupported\">\n\t\t\t\t<div class=\"avatar__buttons\">\n\t\t\t\t\t<NcButton :aria-label=\"t('settings', 'Upload profile picture')\"\n\t\t\t\t\t\t@click=\"activateLocalFilePicker\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Upload :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton :aria-label=\"t('settings', 'Choose profile picture from Files')\"\n\t\t\t\t\t\t@click=\"openFilePicker\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Folder :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton v-if=\"!isGenerated\"\n\t\t\t\t\t\t:aria-label=\"t('settings', 'Remove profile picture')\"\n\t\t\t\t\t\t@click=\"removeAvatar\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t\t<span>{{ t('settings', 'png or jpg, max. 20 MB') }}</span>\n\t\t\t\t<input ref=\"input\"\n\t\t\t\t\t:id=\"inputId\"\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t:accept=\"validMimeTypes.join(',')\"\n\t\t\t\t\t@change=\"onChange\">\n\t\t\t</template>\n\t\t\t<span v-else>\n\t\t\t\t{{ t('settings', 'Picture provided by original account') }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<!-- Use v-show to ensure early cropper ref availability -->\n\t\t<div v-show=\"showCropper\" class=\"avatar__container\">\n\t\t\t<VueCropper ref=\"cropper\"\n\t\t\t\tclass=\"avatar__cropper\"\n\t\t\t\tv-bind=\"cropperOptions\" />\n\t\t\t<div class=\"avatar__cropper-buttons\">\n\t\t\t\t<NcButton @click=\"cancel\">\n\t\t\t\t\t{{ t('settings', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\t@click=\"saveAvatar\">\n\t\t\t\t\t{{ t('settings', 'Set as profile picture') }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<span>{{ t('settings', 'Please note that it can take up to 24 hours for your profile picture to be updated everywhere.') }}</span>\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getFilePickerBuilder, showError } from '@nextcloud/dialogs'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport VueCropper from 'vue-cropperjs'\n// eslint-disable-next-line n/no-extraneous-import\nimport 'cropperjs/dist/cropper.css'\n\nimport Upload from 'vue-material-design-icons/Upload.vue'\nimport Folder from 'vue-material-design-icons/Folder.vue'\nimport Delete from 'vue-material-design-icons/Delete.vue'\n\nimport HeaderBar from './shared/HeaderBar.vue'\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { avatar } = loadState('settings', 'personalInfoParameters', {})\nconst { avatarChangeSupported } = loadState('settings', 'accountParameters', {})\n\nconst VALID_MIME_TYPES = ['image/png', 'image/jpeg']\n\nconst picker = getFilePickerBuilder(t('settings', 'Choose your profile picture'))\n\t.setMultiSelect(false)\n\t.setMimeTypeFilter(VALID_MIME_TYPES)\n\t.setModal(true)\n\t.setType(1)\n\t.allowDirectories(false)\n\t.build()\n\nexport default {\n\tname: 'AvatarSection',\n\n\tcomponents: {\n\t\tDelete,\n\t\tFolder,\n\t\tHeaderBar,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tUpload,\n\t\tVueCropper,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tavatar: { ...avatar, readable: NAME_READABLE_ENUM[avatar.name] },\n\t\t\tavatarChangeSupported,\n\t\t\tshowCropper: false,\n\t\t\tloading: false,\n\t\t\tuserId: getCurrentUser().uid,\n\t\t\tdisplayName: getCurrentUser().displayName,\n\t\t\tversion: oc_userconfig.avatar.version,\n\t\t\tisGenerated: oc_userconfig.avatar.generated,\n\t\t\tvalidMimeTypes: VALID_MIME_TYPES,\n\t\t\tcropperOptions: {\n\t\t\t\taspectRatio: 1 / 1,\n\t\t\t\tviewMode: 1,\n\t\t\t\tguides: false,\n\t\t\t\tcenter: false,\n\t\t\t\thighlight: false,\n\t\t\t\tautoCropArea: 1,\n\t\t\t\tminContainerWidth: 300,\n\t\t\t\tminContainerHeight: 300,\n\t\t\t},\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-property-${this.avatar.name}`\n\t\t},\n\t},\n\n\tcreated() {\n\t\tsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t},\n\n\tmethods: {\n\t\tactivateLocalFilePicker() {\n\t\t\t// Set to null so that selecting the same file will trigger the change event\n\t\t\tthis.$refs.input.value = null\n\t\t\tthis.$refs.input.click()\n\t\t},\n\n\t\tonChange(e) {\n\t\t\tthis.loading = true\n\t\t\tconst file = e.target.files[0]\n\t\t\tif (!this.validMimeTypes.includes(file.type)) {\n\t\t\t\tshowError(t('settings', 'Please select a valid png or jpg file'))\n\t\t\t\tthis.cancel()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst reader = new FileReader()\n\t\t\treader.onload = (e) => {\n\t\t\t\tthis.$refs.cropper.replace(e.target.result)\n\t\t\t\tthis.showCropper = true\n\t\t\t}\n\t\t\treader.readAsDataURL(file)\n\t\t},\n\n\t\tasync openFilePicker() {\n\t\t\tconst path = await picker.pick()\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(generateUrl('/avatar'), { path })\n\t\t\t\tif (data.status === 'success') {\n\t\t\t\t\tthis.handleAvatarUpdate(false)\n\t\t\t\t} else if (data.data === 'notsquare') {\n\t\t\t\t\tconst tempAvatar = generateUrl('/avatar/tmp') + '?requesttoken=' + encodeURIComponent(OC.requestToken) + '#' + Math.floor(Math.random() * 1000)\n\t\t\t\t\tthis.$refs.cropper.replace(tempAvatar)\n\t\t\t\t\tthis.showCropper = true\n\t\t\t\t} else {\n\t\t\t\t\tshowError(data.data.message)\n\t\t\t\t\tthis.cancel()\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tshowError(t('settings', 'Error setting profile picture'))\n\t\t\t\tthis.cancel()\n\t\t\t}\n\t\t},\n\n\t\tsaveAvatar() {\n\t\t\tthis.showCropper = false\n\t\t\tthis.loading = true\n\n\t\t\tthis.$refs.cropper.getCroppedCanvas().toBlob(async (blob) => {\n\t\t\t\tif (blob === null) {\n\t\t\t\t\tshowError(t('settings', 'Error cropping profile picture'))\n\t\t\t\t\tthis.cancel()\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst formData = new FormData()\n\t\t\t\tformData.append('files[]', blob)\n\t\t\t\ttry {\n\t\t\t\t\tawait axios.post(generateUrl('/avatar'), formData)\n\t\t\t\t\tthis.handleAvatarUpdate(false)\n\t\t\t\t} catch (e) {\n\t\t\t\t\tshowError(t('settings', 'Error saving profile picture'))\n\t\t\t\t\tthis.handleAvatarUpdate(this.isGenerated)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tasync removeAvatar() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait axios.delete(generateUrl('/avatar'))\n\t\t\t\tthis.handleAvatarUpdate(true)\n\t\t\t} catch (e) {\n\t\t\t\tshowError(t('settings', 'Error removing profile picture'))\n\t\t\t\tthis.handleAvatarUpdate(this.isGenerated)\n\t\t\t}\n\t\t},\n\n\t\tcancel() {\n\t\t\tthis.showCropper = false\n\t\t\tthis.loading = false\n\t\t},\n\n\t\thandleAvatarUpdate(isGenerated) {\n\t\t\t// Update the avatar version so that avatar update handlers refresh correctly\n\t\t\tthis.version = oc_userconfig.avatar.version = Date.now()\n\t\t\tthis.isGenerated = oc_userconfig.avatar.generated = isGenerated\n\t\t\tthis.loading = false\n\t\t\temit('settings:avatar:updated', oc_userconfig.avatar.version)\n\t\t},\n\n\t\thandleDisplayNameUpdate() {\n\t\t\tthis.version = oc_userconfig.avatar.version\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tgrid-row: 1/3;\n}\n.avatar {\n\t&__container {\n\t\tmargin: 0 auto;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tgap: 16px 0;\n\t\twidth: 300px;\n\n\t\tspan {\n\t\t\tcolor: var(--color-text-lighter);\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 180px;\n\t\theight: 180px;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\t}\n\n\t&__cropper {\n\t\twidth: 300px;\n\t\theight: 300px;\n\t\toverflow: hidden;\n\n\t\t&-buttons {\n\t\t\twidth: 100%;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\n\t\t&::v-deep .cropper-view-box {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n}\n\ninput[type=\"file\"] {\n\tdisplay: 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!./AvatarSection.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!./AvatarSection.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!./AvatarSection.vue?vue&type=style&index=0&id=04cca3b6&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarSection.vue?vue&type=style&index=0&id=04cca3b6&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AvatarSection.vue?vue&type=template&id=04cca3b6&scoped=true&\"\nimport script from \"./AvatarSection.vue?vue&type=script&lang=js&\"\nexport * from \"./AvatarSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AvatarSection.vue?vue&type=style&index=0&id=04cca3b6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04cca3b6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{attrs:{\"id\":\"vue-avatar-section\"}},[_c('h3',{staticClass:\"hidden-visually\"},[_vm._v(\" \"+_vm._s(_vm.t('settings', 'Your profile information'))+\" \")]),_vm._v(\" \"),_c('HeaderBar',{attrs:{\"input-id\":_vm.avatarChangeSupported ? _vm.inputId : null,\"readable\":_vm.avatar.readable,\"scope\":_vm.avatar.scope},on:{\"update:scope\":function($event){return _vm.$set(_vm.avatar, \"scope\", $event)}}}),_vm._v(\" \"),(!_vm.showCropper)?_c('div',{staticClass:\"avatar__container\"},[_c('div',{staticClass:\"avatar__preview\"},[(!_vm.loading)?_c('NcAvatar',{key:_vm.version,attrs:{\"user\":_vm.userId,\"aria-label\":_vm.t('settings', 'Your profile picture'),\"disabled-menu\":true,\"disabled-tooltip\":true,\"show-user-status\":false,\"size\":180}}):_c('div',{staticClass:\"icon-loading\"})],1),_vm._v(\" \"),(_vm.avatarChangeSupported)?[_c('div',{staticClass:\"avatar__buttons\"},[_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Upload profile picture')},on:{\"click\":_vm.activateLocalFilePicker},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Upload',{attrs:{\"size\":20}})]},proxy:true}],null,false,1329850251)}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Choose profile picture from Files')},on:{\"click\":_vm.openFilePicker},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Folder',{attrs:{\"size\":20}})]},proxy:true}],null,false,4270628382)}),_vm._v(\" \"),(!_vm.isGenerated)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Remove profile picture')},on:{\"click\":_vm.removeAvatar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)}):_vm._e()],1),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.t('settings', 'png or jpg, max. 20 MB')))]),_vm._v(\" \"),_c('input',{ref:\"input\",attrs:{\"id\":_vm.inputId,\"type\":\"file\",\"accept\":_vm.validMimeTypes.join(',')},on:{\"change\":_vm.onChange}})]:_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Picture provided by original account'))+\"\\n\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCropper),expression:\"showCropper\"}],staticClass:\"avatar__container\"},[_c('VueCropper',_vm._b({ref:\"cropper\",staticClass:\"avatar__cropper\"},'VueCropper',_vm.cropperOptions,false)),_vm._v(\" \"),_c('div',{staticClass:\"avatar__cropper-buttons\"},[_c('NcButton',{on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveAvatar}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Set as profile picture'))+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Please note that it can take up to 24 hours for your profile picture to be updated everywhere.')))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :is-heading=\"true\" :readable=\"t('settings', 'Details')\" />\n\n\t\t<div class=\"details\">\n\t\t\t<div class=\"details__groups\">\n\t\t\t\t<Account :size=\"20\" />\n\t\t\t\t<div class=\"details__groups-info\">\n\t\t\t\t\t<p>{{ t('settings', 'You are a member of the following groups:') }}</p>\n\t\t\t\t\t<p class=\"details__groups-list\">{{ groups.join(', ') }}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"details__quota\">\n\t\t\t\t<CircleSlice :size=\"20\" />\n\t\t\t\t<div class=\"details__quota-info\">\n\t\t\t\t\t<p class=\"details__quota-text\" v-html=\"quotaText\" />\n\t\t\t\t\t<NcProgressBar size=\"medium\"\n\t\t\t\t\t\t:value=\"usageRelative\"\n\t\t\t\t\t\t:error=\"usageRelative > 80\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js'\n\nimport Account from 'vue-material-design-icons/Account.vue'\nimport CircleSlice from 'vue-material-design-icons/CircleSlice3.vue'\n\nimport HeaderBar from './shared/HeaderBar.vue'\n\n/** SYNC to be kept in sync with `lib/public/Files/FileInfo.php` */\nconst SPACE_UNLIMITED = -3\n\nconst { groups, quota, totalSpace, usage, usageRelative } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'DetailsSection',\n\n\tcomponents: {\n\t\tAccount,\n\t\tCircleSlice,\n\t\tHeaderBar,\n\t\tNcProgressBar,\n\t},\n\n\tcomputed: {\n\t\tquotaText() {\n\t\t\tif (quota === SPACE_UNLIMITED) {\n\t\t\t\treturn t('settings', 'You are using <strong>{usage}</strong>', { usage })\n\t\t\t}\n\t\t\treturn t(\n\t\t\t\t'settings',\n\t\t\t\t'You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)',\n\t\t\t\t{ usage, totalSpace, usageRelative },\n\t\t\t)\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroups,\n\t\t\tusageRelative,\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.details {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 10px 32px 10px 0;\n\tgap: 16px 0;\n\tcolor: var(--color-text-lighter);\n\n\t&__groups,\n\t&__quota {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\n\t\t&-info {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tgap: 4px 0;\n\t\t}\n\n\t\t&-list {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t&::v-deep .material-design-icon {\n\t\t\talign-self: flex-start;\n\t\t\tmargin-top: 2px;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailsSection.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!./DetailsSection.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!./DetailsSection.vue?vue&type=style&index=0&id=1ab46e68&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailsSection.vue?vue&type=style&index=0&id=1ab46e68&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DetailsSection.vue?vue&type=template&id=1ab46e68&scoped=true&\"\nimport script from \"./DetailsSection.vue?vue&type=script&lang=js&\"\nexport * from \"./DetailsSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DetailsSection.vue?vue&type=style&index=0&id=1ab46e68&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ab46e68\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"is-heading\":true,\"readable\":_vm.t('settings', 'Details')}}),_vm._v(\" \"),_c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"details__groups\"},[_c('Account',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"details__groups-info\"},[_c('p',[_vm._v(_vm._s(_vm.t('settings', 'You are a member of the following groups:')))]),_vm._v(\" \"),_c('p',{staticClass:\"details__groups-list\"},[_vm._v(_vm._s(_vm.groups.join(', ')))])])],1),_vm._v(\" \"),_c('div',{staticClass:\"details__quota\"},[_c('CircleSlice',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"details__quota-info\"},[_c('p',{staticClass:\"details__quota-text\",domProps:{\"innerHTML\":_vm._s(_vm.quotaText)}}),_vm._v(\" \"),_c('NcProgressBar',{attrs:{\"size\":\"medium\",\"value\":_vm.usageRelative,\"error\":_vm.usageRelative > 80}})],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :scope.sync=\"scope\"\n\t\t\t:readable.sync=\"readable\"\n\t\t\t:input-id=\"inputId\"\n\t\t\t:is-editable=\"isEditable\" />\n\n\t\t<div v-if=\"isEditable\" class=\"property\">\n\t\t\t<textarea v-if=\"multiLine\"\n\t\t\t\t:id=\"inputId\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:value=\"value\"\n\t\t\t\trows=\"8\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tautocorrect=\"off\"\n\t\t\t\t@input=\"onPropertyChange\" />\n\t\t\t<input v-else\n\t\t\t\tref=\"input\"\n\t\t\t\t:id=\"inputId\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:type=\"type\"\n\t\t\t\t:value=\"value\"\n\t\t\t\t:aria-describedby=\"helperText ? `${name}-helper-text` : ''\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"on\"\n\t\t\t\tautocorrect=\"off\"\n\t\t\t\t@input=\"onPropertyChange\">\n\n\t\t\t<div class=\"property__actions-container\">\n\t\t\t\t<transition name=\"fade\">\n\t\t\t\t\t<Check v-if=\"showCheckmarkIcon\" :size=\"20\" />\n\t\t\t\t\t<AlertOctagon v-else-if=\"showErrorIcon\" :size=\"20\" />\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t</div>\n\t\t<span v-else>\n\t\t\t{{ value || t('settings', 'No {property} set', { property: readable.toLocaleLowerCase() }) }}\n\t\t</span>\n\n\t\t<p v-if=\"helperText\"\n\t\t\t:id=\"`${name}-helper-text`\"\n\t\t\tclass=\"property__helper-text-message property__helper-text-message--error\">\n\t\t\t<AlertCircle class=\"property__helper-text-message__icon\" :size=\"18\" />\n\t\t\t{{ helperText }}\n\t\t</p>\n\t</section>\n</template>\n\n<script>\nimport debounce from 'debounce'\nimport { showError } from '@nextcloud/dialogs'\n\nimport AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport AlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\n\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport logger from '../../../logger.js'\n\nexport default {\n\tname: 'AccountPropertySection',\n\n\tcomponents: {\n\t\tAlertCircle,\n\t\tAlertOctagon,\n\t\tCheck,\n\t\tHeaderBar,\n\t},\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'text',\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tmultiLine: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tonValidate: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t\tonSave: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialValue: this.value,\n\t\t\thelperText: null,\n\t\t\tshowCheckmarkIcon: false,\n\t\t\tshowErrorIcon: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-property-${this.name}`\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonPropertyChange(e) {\n\t\t\tthis.$emit('update:value', e.target.value)\n\t\t\tthis.debouncePropertyChange(e.target.value.trim())\n\t\t},\n\n\t\tdebouncePropertyChange: debounce(async function(value) {\n\t\t\tthis.helperText = null\n\t\t\tif (this.$refs.input && this.$refs.input.validationMessage) {\n\t\t\t\tthis.helperText = this.$refs.input.validationMessage\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (this.onValidate && !this.onValidate(value)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tawait this.updateProperty(value)\n\t\t}, 500),\n\n\t\tasync updateProperty(value) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(\n\t\t\t\t\tthis.name,\n\t\t\t\t\tvalue,\n\t\t\t\t)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tvalue,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update {property}', { property: this.readable.toLocaleLowerCase() }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ value, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialValue = value\n\t\t\t\tif (this.onSave) {\n\t\t\t\t\tthis.onSave(value)\n\t\t\t\t}\n\t\t\t\tthis.showCheckmarkIcon = true\n\t\t\t\tsetTimeout(() => { this.showCheckmarkIcon = false }, 2000)\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:value', this.initialValue)\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tlogger.error(errorMessage, error)\n\t\t\t\tthis.showErrorIcon = true\n\t\t\t\tsetTimeout(() => { this.showErrorIcon = false }, 2000)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.property {\n\t\tdisplay: grid;\n\t\talign-items: center;\n\n\t\ttextarea {\n\t\t\tresize: vertical;\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\tinput {\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.property__actions-container {\n\t\t\tgrid-area: 1 / 1;\n\t\t\tjustify-self: flex-end;\n\t\t\talign-self: flex-end;\n\t\t\theight: 30px;\n\n\t\t\tdisplay: flex;\n\t\t\tgap: 0 2px;\n\t\t\tmargin-right: 5px;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n\n\t.property__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n\n\t.fade-enter,\n\t.fade-leave-to {\n\t\topacity: 0;\n\t}\n\n\t.fade-enter-active {\n\t\ttransition: opacity 200ms ease-out;\n\t}\n\n\t.fade-leave-active {\n\t\ttransition: opacity 300ms ease-out;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountPropertySection.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!./AccountPropertySection.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!./AccountPropertySection.vue?vue&type=style&index=0&id=4ef6bbf8&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountPropertySection.vue?vue&type=style&index=0&id=4ef6bbf8&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AccountPropertySection.vue?vue&type=template&id=4ef6bbf8&scoped=true&\"\nimport script from \"./AccountPropertySection.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountPropertySection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccountPropertySection.vue?vue&type=style&index=0&id=4ef6bbf8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ef6bbf8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"scope\":_vm.scope,\"readable\":_vm.readable,\"input-id\":_vm.inputId,\"is-editable\":_vm.isEditable},on:{\"update:scope\":function($event){_vm.scope=$event},\"update:readable\":function($event){_vm.readable=$event}}}),_vm._v(\" \"),(_vm.isEditable)?_c('div',{staticClass:\"property\"},[(_vm.multiLine)?_c('textarea',{attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.placeholder,\"rows\":\"8\",\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"autocorrect\":\"off\"},domProps:{\"value\":_vm.value},on:{\"input\":_vm.onPropertyChange}}):_c('input',{ref:\"input\",attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.placeholder,\"type\":_vm.type,\"aria-describedby\":_vm.helperText ? `${_vm.name}-helper-text` : '',\"autocapitalize\":\"none\",\"autocomplete\":\"on\",\"autocorrect\":\"off\"},domProps:{\"value\":_vm.value},on:{\"input\":_vm.onPropertyChange}}),_vm._v(\" \"),_c('div',{staticClass:\"property__actions-container\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.showCheckmarkIcon)?_c('Check',{attrs:{\"size\":20}}):(_vm.showErrorIcon)?_c('AlertOctagon',{attrs:{\"size\":20}}):_vm._e()],1)],1)]):_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.value || _vm.t('settings', 'No {property} set', { property: _vm.readable.toLocaleLowerCase() }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.helperText)?_c('p',{staticClass:\"property__helper-text-message property__helper-text-message--error\",attrs:{\"id\":`${_vm.name}-helper-text`}},[_c('AlertCircle',{staticClass:\"property__helper-text-message__icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.helperText)+\"\\n\\t\")],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"displayName\"\n\t\t:placeholder=\"t('settings', 'Your full name')\"\n\t\t:is-editable=\"displayNameChangeSupported\"\n\t\t:on-validate=\"onValidate\"\n\t\t:on-save=\"onSave\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { emit } from '@nextcloud/event-bus'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { displayName } = loadState('settings', 'personalInfoParameters', {})\nconst { displayNameChangeSupported } = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'DisplayNameSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdisplayName: { ...displayName, readable: NAME_READABLE_ENUM[displayName.name] },\n\t\t\tdisplayNameChangeSupported,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\treturn value !== ''\n\t\t},\n\n\t\tonSave(value) {\n\t\t\tif (oc_userconfig.avatar.generated) {\n\t\t\t\t// Update the avatar version so that avatar update handlers refresh correctly\n\t\t\t\toc_userconfig.avatar.version = Date.now()\n\t\t\t}\n\t\t\temit('settings:display-name:updated', value)\n\t\t},\n\t}\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisplayNameSection.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!./DisplayNameSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DisplayNameSection.vue?vue&type=template&id=8950c424&\"\nimport script from \"./DisplayNameSection.vue?vue&type=script&lang=js&\"\nexport * from \"./DisplayNameSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your full name'),\"is-editable\":_vm.displayNameChangeSupported,\"on-validate\":_vm.onValidate,\"on-save\":_vm.onSave}},'AccountPropertySection',_vm.displayName,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nimport { ACCOUNT_PROPERTY_ENUM, SCOPE_SUFFIX } from '../../constants/AccountPropertyConstants.js'\n\n/**\n * Save the primary email of the user\n *\n * @param {string} email the primary email\n * @return {object}\n */\nexport const savePrimaryEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.EMAIL,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save an additional email of the user\n *\n * Will be appended to the user's additional emails*\n *\n * @param {string} email the additional email\n * @return {object}\n */\nexport const saveAdditionalEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the notification email of the user\n *\n * @param {string} email the notification email\n * @return {object}\n */\nexport const saveNotificationEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.NOTIFICATION_EMAIL,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Remove an additional email of the user\n *\n * @param {string} email the additional email\n * @return {object}\n */\nexport const removeAdditionalEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collection}', { userId, collection: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: email,\n\t\tvalue: '',\n\t})\n\n\treturn res.data\n}\n\n/**\n * Update an additional email of the user\n *\n * @param {string} prevEmail the additional email to be updated\n * @param {string} newEmail the new additional email\n * @return {object}\n */\nexport const updateAdditionalEmail = async (prevEmail, newEmail) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collection}', { userId, collection: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: prevEmail,\n\t\tvalue: newEmail,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the federation scope for the primary email of the user\n *\n * @param {string} scope the federation scope\n * @return {object}\n */\nexport const savePrimaryEmailScope = async (scope) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: `${ACCOUNT_PROPERTY_ENUM.EMAIL}${SCOPE_SUFFIX}`,\n\t\tvalue: scope,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the federation scope for the additional email of the user\n *\n * @param {string} email the additional email\n * @param {string} scope the federation scope\n * @return {object}\n */\nexport const saveAdditionalEmailScope = async (email, scope) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collectionScope}', { userId, collectionScope: `${ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION}${SCOPE_SUFFIX}` })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: email,\n\t\tvalue: scope,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * Frontend validators, less strict than backend validators\n *\n * TODO add nice validation errors for Profile page settings modal\n */\n\nimport { VALIDATE_EMAIL_REGEX } from '../constants/AccountPropertyConstants.js'\n\n/**\n * Validate the email input\n *\n * Compliant with PHP core FILTER_VALIDATE_EMAIL validator*\n *\n * Reference implementation https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/index.ts*\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateEmail(input) {\n\treturn typeof input === 'string'\n\t\t&& VALIDATE_EMAIL_REGEX.test(input)\n\t\t&& input.slice(-1) !== '\\n'\n\t\t&& input.length <= 320\n\t\t&& encodeURIComponent(input).replace(/%../g, 'x').length <= 320\n}\n\n/**\n * Validate the URL input\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateUrl(input) {\n\ttry {\n\t\t// eslint-disable-next-line no-new\n\t\tnew URL(input)\n\t\treturn true\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\n/**\n * Validate the language input\n *\n * @param {object} input the input\n * @return {boolean}\n */\nexport function validateLanguage(input) {\n\treturn input.code !== ''\n\t\t&& input.name !== ''\n\t\t&& input.name !== undefined\n}\n\n/**\n * Validate the locale input\n *\n * @param {object} input the input\n * @return {boolean}\n */\nexport function validateLocale(input) {\n\treturn input.code !== ''\n\t\t&& input.name !== ''\n\t\t&& input.name !== undefined\n}\n\n/**\n * Validate boolean input\n *\n * @param {boolean} input the input\n * @return {boolean}\n */\nexport function validateBoolean(input) {\n\treturn typeof input === 'boolean'\n}\n","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div>\n\t\t<div class=\"email\">\n\t\t\t<input :id=\"inputId\"\n\t\t\t\tref=\"email\"\n\t\t\t\ttype=\"email\"\n\t\t\t\t:placeholder=\"inputPlaceholder\"\n\t\t\t\t:value=\"email\"\n\t\t\t\t:aria-describedby=\"helperText ? `${inputId}-helper-text` : ''\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"on\"\n\t\t\t\tautocorrect=\"off\"\n\t\t\t\t@input=\"onEmailChange\">\n\n\t\t\t<div class=\"email__actions-container\">\n\t\t\t\t<transition name=\"fade\">\n\t\t\t\t\t<Check v-if=\"showCheckmarkIcon\" :size=\"20\" />\n\t\t\t\t\t<AlertOctagon v-else-if=\"showErrorIcon\" :size=\"20\" />\n\t\t\t\t</transition>\n\n\t\t\t\t<template v-if=\"!primary\">\n\t\t\t\t\t<FederationControl :readable=\"propertyReadable\"\n\t\t\t\t\t\t:additional=\"true\"\n\t\t\t\t\t\t:additional-value=\"email\"\n\t\t\t\t\t\t:disabled=\"federationDisabled\"\n\t\t\t\t\t\t:handle-additional-scope-change=\"saveAdditionalEmailScope\"\n\t\t\t\t\t\t:scope.sync=\"localScope\"\n\t\t\t\t\t\t@update:scope=\"onScopeChange\" />\n\t\t\t\t</template>\n\n\t\t\t\t<NcActions class=\"email__actions\"\n\t\t\t\t\t:aria-label=\"t('settings', 'Email options')\"\n\t\t\t\t\t:force-menu=\"true\">\n\t\t\t\t\t<NcActionButton :aria-label=\"deleteEmailLabel\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t:disabled=\"deleteDisabled\"\n\t\t\t\t\t\ticon=\"icon-delete\"\n\t\t\t\t\t\t@click.stop.prevent=\"deleteEmail\">\n\t\t\t\t\t\t{{ deleteEmailLabel }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton v-if=\"!primary || !isNotificationEmail\"\n\t\t\t\t\t\t:aria-label=\"setNotificationMailLabel\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t:disabled=\"setNotificationMailDisabled\"\n\t\t\t\t\t\ticon=\"icon-favorite\"\n\t\t\t\t\t\t@click.stop.prevent=\"setNotificationMail\">\n\t\t\t\t\t\t{{ setNotificationMailLabel }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<p v-if=\"helperText\"\n\t\t\t:id=\"`${inputId}-helper-text`\"\n\t\t\tclass=\"email__helper-text-message email__helper-text-message--error\">\n\t\t\t<AlertCircle class=\"email__helper-text-message__icon\" :size=\"18\" />\n\t\t\t{{ helperText }}\n\t\t</p>\n\n\t\t<em v-if=\"isNotificationEmail\">\n\t\t\t{{ t('settings', 'Primary email for password reset and notifications') }}\n\t\t</em>\n\t</div>\n</template>\n\n<script>\nimport { NcActions, NcActionButton } from '@nextcloud/vue'\nimport AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport AlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\nimport { showError } from '@nextcloud/dialogs'\nimport debounce from 'debounce'\n\nimport FederationControl from '../shared/FederationControl.vue'\nimport logger from '../../../logger.js'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM, VERIFICATION_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport {\n\tremoveAdditionalEmail,\n\tsaveAdditionalEmail,\n\tsaveAdditionalEmailScope,\n\tsaveNotificationEmail,\n\tsavePrimaryEmail,\n\tupdateAdditionalEmail,\n} from '../../../service/PersonalInfo/EmailService.js'\nimport { validateEmail } from '../../../utils/validate.js'\n\nexport default {\n\tname: 'Email',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tAlertCircle,\n\t\tAlertOctagon,\n\t\tCheck,\n\t\tFederationControl,\n\t},\n\n\tprops: {\n\t\temail: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tactiveNotificationEmail: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tlocalVerificationState: {\n\t\t\ttype: Number,\n\t\t\tdefault: VERIFICATION_ENUM.NOT_VERIFIED,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t\t\tinitialEmail: this.email,\n\t\t\tlocalScope: this.scope,\n\t\t\tsaveAdditionalEmailScope,\n\t\t\thelperText: null,\n\t\t\tshowCheckmarkIcon: false,\n\t\t\tshowErrorIcon: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdeleteDisabled() {\n\t\t\tif (this.primary) {\n\t\t\t\t// Disable for empty primary email as there is nothing to delete\n\t\t\t\t// OR when initialEmail (reflects server state) and email (current input) are not the same\n\t\t\t\treturn this.email === '' || this.initialEmail !== this.email\n\t\t\t} else if (this.initialEmail !== '') {\n\t\t\t\treturn this.initialEmail !== this.email\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tdeleteEmailLabel() {\n\t\t\tif (this.primary) {\n\t\t\t\treturn t('settings', 'Remove primary email')\n\t\t\t}\n\t\t\treturn t('settings', 'Delete email')\n\t\t},\n\n\t setNotificationMailDisabled() {\n\t\t\treturn !this.primary && this.localVerificationState !== VERIFICATION_ENUM.VERIFIED\n\t\t},\n\n\t setNotificationMailLabel() {\n\t\t\tif (this.isNotificationEmail) {\n\t\t\t\treturn t('settings', 'Unset as primary email')\n\t\t\t} else if (!this.primary && this.localVerificationState !== VERIFICATION_ENUM.VERIFIED) {\n\t\t\t\treturn t('settings', 'This address is not confirmed')\n\t\t\t}\n\t\t\treturn t('settings', 'Set as primary email')\n\t\t},\n\n\t\tfederationDisabled() {\n\t\t\treturn !this.initialEmail\n\t\t},\n\n\t\tinputId() {\n\t\t\tif (this.primary) {\n\t\t\t\treturn 'email'\n\t\t\t}\n\t\t\treturn `email-${this.index}`\n\t\t},\n\n\t\tinputPlaceholder() {\n\t\t\tif (this.primary) {\n\t\t\t\treturn t('settings', 'Your email address')\n\t\t\t}\n\t\t\treturn t('settings', 'Additional email address {index}', { index: this.index + 1 })\n\t\t},\n\n\t\tisNotificationEmail() {\n\t\t\treturn (this.email && this.email === this.activeNotificationEmail)\n\t\t\t\t|| (this.primary && this.activeNotificationEmail === '')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.primary && this.initialEmail === '') {\n\t\t\t// $nextTick is needed here, otherwise it may not always work https://stackoverflow.com/questions/51922767/autofocus-input-on-mount-vue-ios/63485725#63485725\n\t\t\tthis.$nextTick(() => this.$refs.email?.focus())\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonEmailChange(e) {\n\t\t\tthis.$emit('update:email', e.target.value)\n\t\t\tthis.debounceEmailChange(e.target.value.trim())\n\t\t},\n\n\t\tdebounceEmailChange: debounce(async function(email) {\n\t\t\tthis.helperText = null\n\t\t\tif (this.$refs.email?.validationMessage) {\n\t\t\t\tthis.helperText = this.$refs.email.validationMessage\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (validateEmail(email) || email === '') {\n\t\t\t\tif (this.primary) {\n\t\t\t\t\tawait this.updatePrimaryEmail(email)\n\t\t\t\t} else {\n\t\t\t\t\tif (email) {\n\t\t\t\t\t\tif (this.initialEmail === '') {\n\t\t\t\t\t\t\tawait this.addAdditionalEmail(email)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tawait this.updateAdditionalEmail(email)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 500),\n\n\t\tasync deleteEmail() {\n\t\t\tif (this.primary) {\n\t\t\t\tthis.$emit('update:email', '')\n\t\t\t\tawait this.updatePrimaryEmail('')\n\t\t\t} else {\n\t\t\t\tawait this.deleteAdditionalEmail()\n\t\t\t}\n\t\t},\n\n\t\tasync updatePrimaryEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryEmail(email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tif (email === '') {\n\t\t\t\t\tthis.handleResponse({\n\t\t\t\t\t\terrorMessage: t('settings', 'Unable to delete primary email address'),\n\t\t\t\t\t\terror: e,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tthis.handleResponse({\n\t\t\t\t\t\terrorMessage: t('settings', 'Unable to update primary email address'),\n\t\t\t\t\t\terror: e,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync addAdditionalEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await saveAdditionalEmail(email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to add additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync setNotificationMail() {\n\t\t try {\n\t\t\t const newNotificationMailValue = (this.primary || this.isNotificationEmail) ? '' : this.initialEmail\n\t\t\t const responseData = await saveNotificationEmail(newNotificationMailValue)\n\t\t\t this.handleResponse({\n\t\t\t\t notificationEmail: newNotificationMailValue,\n\t\t\t\t status: responseData.ocs?.meta?.status,\n\t\t\t })\n\t\t } catch (e) {\n\t\t\t this.handleResponse({\n\t\t\t\t errorMessage: 'Unable to choose this email for notifications',\n\t\t\t\t error: e,\n\t\t\t })\n\t\t }\n\t\t},\n\n\t\tasync updateAdditionalEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await updateAdditionalEmail(this.initialEmail, email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync deleteAdditionalEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await removeAdditionalEmail(this.initialEmail)\n\t\t\t\tthis.handleDeleteAdditionalEmail(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to delete additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleDeleteAdditionalEmail(status) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.$emit('delete-additional-email')\n\t\t\t} else {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to delete additional email address'),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ email, notificationEmail, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tif (email) {\n\t\t\t\t\tthis.initialEmail = email\n\t\t\t\t} else if (notificationEmail !== undefined) {\n\t\t\t\t\tthis.$emit('update:notification-email', notificationEmail)\n\t\t\t\t}\n\t\t\t\tthis.showCheckmarkIcon = true\n\t\t\t\tsetTimeout(() => { this.showCheckmarkIcon = false }, 2000)\n\t\t\t} else {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tlogger.error(errorMessage, error)\n\t\t\t\tthis.showErrorIcon = true\n\t\t\t\tsetTimeout(() => { this.showErrorIcon = false }, 2000)\n\t\t\t}\n\t\t},\n\n\t\tonScopeChange(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.email {\n\tdisplay: grid;\n\talign-items: center;\n\n\tinput {\n\t\tgrid-area: 1 / 1;\n\t\twidth: 100%;\n\t}\n\n\t.email__actions-container {\n\t\tgrid-area: 1 / 1;\n\t\tjustify-self: flex-end;\n\t\theight: 30px;\n\n\t\tdisplay: flex;\n\t\tgap: 0 2px;\n\t\tmargin-right: 5px;\n\n\t\t.email__actions {\n\t\t\topacity: 0.4 !important;\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 0.8 !important;\n\t\t\t}\n\n\t\t\t&::v-deep button {\n\t\t\t\theight: 30px !important;\n\t\t\t\tmin-height: 30px !important;\n\t\t\t\twidth: 30px !important;\n\t\t\t\tmin-width: 30px !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-enter-active {\n\ttransition: opacity 200ms ease-out;\n}\n\n.fade-leave-active {\n\ttransition: opacity 300ms ease-out;\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.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!./Email.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!./Email.vue?vue&type=style&index=0&id=367c6830&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=style&index=0&id=367c6830&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=367c6830&scoped=true&\"\nimport script from \"./Email.vue?vue&type=script&lang=js&\"\nexport * from \"./Email.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Email.vue?vue&type=style&index=0&id=367c6830&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"367c6830\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"email\"},[_c('input',{ref:\"email\",attrs:{\"id\":_vm.inputId,\"type\":\"email\",\"placeholder\":_vm.inputPlaceholder,\"aria-describedby\":_vm.helperText ? `${_vm.inputId}-helper-text` : '',\"autocapitalize\":\"none\",\"autocomplete\":\"on\",\"autocorrect\":\"off\"},domProps:{\"value\":_vm.email},on:{\"input\":_vm.onEmailChange}}),_vm._v(\" \"),_c('div',{staticClass:\"email__actions-container\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.showCheckmarkIcon)?_c('Check',{attrs:{\"size\":20}}):(_vm.showErrorIcon)?_c('AlertOctagon',{attrs:{\"size\":20}}):_vm._e()],1),_vm._v(\" \"),(!_vm.primary)?[_c('FederationControl',{attrs:{\"readable\":_vm.propertyReadable,\"additional\":true,\"additional-value\":_vm.email,\"disabled\":_vm.federationDisabled,\"handle-additional-scope-change\":_vm.saveAdditionalEmailScope,\"scope\":_vm.localScope},on:{\"update:scope\":[function($event){_vm.localScope=$event},_vm.onScopeChange]}})]:_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"email__actions\",attrs:{\"aria-label\":_vm.t('settings', 'Email options'),\"force-menu\":true}},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.deleteEmailLabel,\"close-after-click\":true,\"disabled\":_vm.deleteDisabled,\"icon\":\"icon-delete\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.deleteEmail.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.deleteEmailLabel)+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(!_vm.primary || !_vm.isNotificationEmail)?_c('NcActionButton',{attrs:{\"aria-label\":_vm.setNotificationMailLabel,\"close-after-click\":true,\"disabled\":_vm.setNotificationMailDisabled,\"icon\":\"icon-favorite\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.setNotificationMail.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.setNotificationMailLabel)+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1)],2)]),_vm._v(\" \"),(_vm.helperText)?_c('p',{staticClass:\"email__helper-text-message email__helper-text-message--error\",attrs:{\"id\":`${_vm.inputId}-helper-text`}},[_c('AlertCircle',{staticClass:\"email__helper-text-message__icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.helperText)+\"\\n\\t\")],1):_vm._e(),_vm._v(\" \"),(_vm.isNotificationEmail)?_c('em',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Primary email for password reset and notifications'))+\"\\n\\t\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"primaryEmail.readable\"\n\t\t\t:handle-scope-change=\"savePrimaryEmailScope\"\n\t\t\t:is-editable=\"true\"\n\t\t\t:is-multi-value-supported=\"true\"\n\t\t\t:is-valid-section=\"isValidSection\"\n\t\t\t:scope.sync=\"primaryEmail.scope\"\n\t\t\t@add-additional=\"onAddAdditionalEmail\" />\n\n\t\t<template v-if=\"displayNameChangeSupported\">\n\t\t\t<Email :primary=\"true\"\n\t\t\t\t:scope.sync=\"primaryEmail.scope\"\n\t\t\t\t:email.sync=\"primaryEmail.value\"\n\t\t\t\t:active-notification-email.sync=\"notificationEmail\"\n\t\t\t\t@update:email=\"onUpdateEmail\"\n\t\t\t\t@update:notification-email=\"onUpdateNotificationEmail\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ primaryEmail.value || t('settings', 'No email address set') }}\n\t\t</span>\n\n\t\t<template v-if=\"additionalEmails.length\">\n\t\t\t<em class=\"additional-emails-label\">{{ t('settings', 'Additional emails') }}</em>\n\t\t\t<!-- TODO use unique key for additional email when uniqueness can be guaranteed, see https://github.com/nextcloud/server/issues/26866 -->\n\t\t\t<Email v-for=\"(additionalEmail, index) in additionalEmails\"\n\t\t\t\t:key=\"additionalEmail.key\"\n\t\t\t\t:index=\"index\"\n\t\t\t\t:scope.sync=\"additionalEmail.scope\"\n\t\t\t\t:email.sync=\"additionalEmail.value\"\n\t\t\t\t:local-verification-state=\"parseInt(additionalEmail.locallyVerified, 10)\"\n\t\t\t\t:active-notification-email.sync=\"notificationEmail\"\n\t\t\t\t@update:email=\"onUpdateEmail\"\n\t\t\t\t@update:notification-email=\"onUpdateNotificationEmail\"\n\t\t\t\t@delete-additional-email=\"onDeleteAdditionalEmail(index)\" />\n\t\t</template>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\n\nimport Email from './Email.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM, DEFAULT_ADDITIONAL_EMAIL_SCOPE, NAME_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryEmail, savePrimaryEmailScope, removeAdditionalEmail } from '../../../service/PersonalInfo/EmailService.js'\nimport { validateEmail } from '../../../utils/validate.js'\nimport logger from '../../../logger.js'\n\nconst { emailMap: { additionalEmails, primaryEmail, notificationEmail } } = loadState('settings', 'personalInfoParameters', {})\nconst { displayNameChangeSupported } = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'EmailSection',\n\n\tcomponents: {\n\t\tHeaderBar,\n\t\tEmail,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\taccountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t\t\tadditionalEmails: additionalEmails.map(properties => ({ ...properties, key: this.generateUniqueKey() })),\n\t\t\tdisplayNameChangeSupported,\n\t\t\tprimaryEmail: { ...primaryEmail, readable: NAME_READABLE_ENUM[primaryEmail.name] },\n\t\t\tsavePrimaryEmailScope,\n\t\t\tnotificationEmail,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tfirstAdditionalEmail() {\n\t\t\tif (this.additionalEmails.length) {\n\t\t\t\treturn this.additionalEmails[0].value\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\n\t\tinputId() {\n\t\t\treturn `account-property-${this.primaryEmail.name}`\n\t\t},\n\n\t\tisValidSection() {\n\t\t\treturn validateEmail(this.primaryEmail.value)\n\t\t\t\t&& this.additionalEmails.map(({ value }) => value).every(validateEmail)\n\t\t},\n\n\t\tprimaryEmailValue: {\n\t\t\tget() {\n\t\t\t\treturn this.primaryEmail.value\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tthis.primaryEmail.value = value\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonAddAdditionalEmail() {\n\t\t\tif (this.isValidSection) {\n\t\t\t\tthis.additionalEmails.push({ value: '', scope: DEFAULT_ADDITIONAL_EMAIL_SCOPE, key: this.generateUniqueKey() })\n\t\t\t}\n\t\t},\n\n\t\tonDeleteAdditionalEmail(index) {\n\t\t\tthis.$delete(this.additionalEmails, index)\n\t\t},\n\n\t\tasync onUpdateEmail() {\n\t\t\tif (this.primaryEmailValue === '' && this.firstAdditionalEmail) {\n\t\t\t\tconst deletedEmail = this.firstAdditionalEmail\n\t\t\t\tawait this.deleteFirstAdditionalEmail()\n\t\t\t\tthis.primaryEmailValue = deletedEmail\n\t\t\t\tawait this.updatePrimaryEmail()\n\t\t\t}\n\t\t},\n\n\t\tasync onUpdateNotificationEmail(email) {\n\t\t\tthis.notificationEmail = email\n\t\t},\n\n\t\tasync updatePrimaryEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryEmail(this.primaryEmailValue)\n\t\t\t\tthis.handleResponse(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to update primary email address'),\n\t\t\t\t\te\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\tasync deleteFirstAdditionalEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await removeAdditionalEmail(this.firstAdditionalEmail)\n\t\t\t\tthis.handleDeleteFirstAdditionalEmail(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to delete additional email address'),\n\t\t\t\t\te\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\thandleDeleteFirstAdditionalEmail(status) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.$delete(this.additionalEmails, 0)\n\t\t\t} else {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to delete additional email address'),\n\t\t\t\t\t{}\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\thandleResponse(status, errorMessage, error) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tlogger.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\n\t\tgenerateUniqueKey() {\n\t\t\treturn Math.random().toString(36).substring(2)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.additional-emails-label {\n\t\tdisplay: block;\n\t\tmargin-top: 16px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailSection.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!./EmailSection.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!./EmailSection.vue?vue&type=style&index=0&id=3b8501a7&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailSection.vue?vue&type=style&index=0&id=3b8501a7&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EmailSection.vue?vue&type=template&id=3b8501a7&scoped=true&\"\nimport script from \"./EmailSection.vue?vue&type=script&lang=js&\"\nexport * from \"./EmailSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EmailSection.vue?vue&type=style&index=0&id=3b8501a7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b8501a7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.primaryEmail.readable,\"handle-scope-change\":_vm.savePrimaryEmailScope,\"is-editable\":true,\"is-multi-value-supported\":true,\"is-valid-section\":_vm.isValidSection,\"scope\":_vm.primaryEmail.scope},on:{\"update:scope\":function($event){return _vm.$set(_vm.primaryEmail, \"scope\", $event)},\"add-additional\":_vm.onAddAdditionalEmail}}),_vm._v(\" \"),(_vm.displayNameChangeSupported)?[_c('Email',{attrs:{\"primary\":true,\"scope\":_vm.primaryEmail.scope,\"email\":_vm.primaryEmail.value,\"active-notification-email\":_vm.notificationEmail},on:{\"update:scope\":function($event){return _vm.$set(_vm.primaryEmail, \"scope\", $event)},\"update:email\":[function($event){return _vm.$set(_vm.primaryEmail, \"value\", $event)},_vm.onUpdateEmail],\"update:activeNotificationEmail\":function($event){_vm.notificationEmail=$event},\"update:active-notification-email\":function($event){_vm.notificationEmail=$event},\"update:notification-email\":_vm.onUpdateNotificationEmail}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.primaryEmail.value || _vm.t('settings', 'No email address set'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.additionalEmails.length)?[_c('em',{staticClass:\"additional-emails-label\"},[_vm._v(_vm._s(_vm.t('settings', 'Additional emails')))]),_vm._v(\" \"),_vm._l((_vm.additionalEmails),function(additionalEmail,index){return _c('Email',{key:additionalEmail.key,attrs:{\"index\":index,\"scope\":additionalEmail.scope,\"email\":additionalEmail.value,\"local-verification-state\":parseInt(additionalEmail.locallyVerified, 10),\"active-notification-email\":_vm.notificationEmail},on:{\"update:scope\":function($event){return _vm.$set(additionalEmail, \"scope\", $event)},\"update:email\":[function($event){return _vm.$set(additionalEmail, \"value\", $event)},_vm.onUpdateEmail],\"update:activeNotificationEmail\":function($event){_vm.notificationEmail=$event},\"update:active-notification-email\":function($event){_vm.notificationEmail=$event},\"update:notification-email\":_vm.onUpdateNotificationEmail,\"delete-additional-email\":function($event){return _vm.onDeleteAdditionalEmail(index)}}})})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"phone\"\n\t\t:placeholder=\"t('settings', 'Your phone number')\"\n\t\ttype=\"tel\"\n\t\t:on-validate=\"onValidate\" />\n</template>\n\n<script>\nimport { isValidPhoneNumber } from 'libphonenumber-js'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst {\n\tdefaultPhoneRegion,\n\tphone,\n} = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'PhoneSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tphone: { ...phone, readable: NAME_READABLE_ENUM[phone.name] },\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\tif (defaultPhoneRegion) {\n\t\t\t\treturn isValidPhoneNumber(value, defaultPhoneRegion)\n\t\t\t}\n\t\t\treturn isValidPhoneNumber(value)\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhoneSection.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!./PhoneSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PhoneSection.vue?vue&type=template&id=4a6cc7c9&\"\nimport script from \"./PhoneSection.vue?vue&type=script&lang=js&\"\nexport * from \"./PhoneSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your phone number'),\"type\":\"tel\",\"on-validate\":_vm.onValidate}},'AccountPropertySection',_vm.phone,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"location\"\n\t\t:placeholder=\"t('settings', 'Your location')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { location } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LocationSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlocation: { ...location, readable: NAME_READABLE_ENUM[location.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationSection.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!./LocationSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LocationSection.vue?vue&type=template&id=3b6d0ee7&\"\nimport script from \"./LocationSection.vue?vue&type=script&lang=js&\"\nexport * from \"./LocationSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your location')}},'AccountPropertySection',_vm.location,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"website\"\n\t\t:placeholder=\"t('settings', 'Your website')\"\n\t\ttype=\"url\"\n\t\t:on-validate=\"onValidate\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\nimport { validateUrl } from '../../utils/validate.js'\n\nconst { website } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'WebsiteSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\twebsite: { ...website, readable: NAME_READABLE_ENUM[website.name] },\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\treturn validateUrl(value)\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebsiteSection.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!./WebsiteSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WebsiteSection.vue?vue&type=template&id=b18d14ae&\"\nimport script from \"./WebsiteSection.vue?vue&type=script&lang=js&\"\nexport * from \"./WebsiteSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your website'),\"type\":\"url\",\"on-validate\":_vm.onValidate}},'AccountPropertySection',_vm.website,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"twitter\"\n\t\t:placeholder=\"t('settings', 'Your Twitter handle')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { twitter } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'TwitterSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttwitter: { ...twitter, readable: NAME_READABLE_ENUM[twitter.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TwitterSection.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!./TwitterSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TwitterSection.vue?vue&type=template&id=203feaef&\"\nimport script from \"./TwitterSection.vue?vue&type=script&lang=js&\"\nexport * from \"./TwitterSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your Twitter handle')}},'AccountPropertySection',_vm.twitter,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"fediverse\"\n\t\t:placeholder=\"t('settings', 'Your handle')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { fediverse } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'FediverseSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfediverse: { ...fediverse, readable: NAME_READABLE_ENUM[fediverse.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FediverseSection.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!./FediverseSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FediverseSection.vue?vue&type=template&id=78433a38&\"\nimport script from \"./FediverseSection.vue?vue&type=script&lang=js&\"\nexport * from \"./FediverseSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your handle')}},'AccountPropertySection',_vm.fediverse,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"language\">\n\t\t<select :id=\"inputId\"\n\t\t\t:placeholder=\"t('settings', 'Language')\"\n\t\t\t@change=\"onLanguageChange\">\n\t\t\t<option v-for=\"commonLanguage in commonLanguages\"\n\t\t\t\t:key=\"commonLanguage.code\"\n\t\t\t\t:selected=\"language.code === commonLanguage.code\"\n\t\t\t\t:value=\"commonLanguage.code\">\n\t\t\t\t{{ commonLanguage.name }}\n\t\t\t</option>\n\t\t\t<option disabled>\n\t\t\t\t──────────\n\t\t\t</option>\n\t\t\t<option v-for=\"otherLanguage in otherLanguages\"\n\t\t\t\t:key=\"otherLanguage.code\"\n\t\t\t\t:selected=\"language.code === otherLanguage.code\"\n\t\t\t\t:value=\"otherLanguage.code\">\n\t\t\t\t{{ otherLanguage.name }}\n\t\t\t</option>\n\t\t</select>\n\n\t\t<a href=\"https://www.transifex.com/nextcloud/nextcloud/\"\n\t\t\ttarget=\"_blank\"\n\t\t\trel=\"noreferrer noopener\">\n\t\t\t<em>{{ t('settings', 'Help translate') }}</em>\n\t\t</a>\n\t</div>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { validateLanguage } from '../../../utils/validate.js'\nimport logger from '../../../logger.js'\n\nexport default {\n\tname: 'Language',\n\n\tprops: {\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tcommonLanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\totherLanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tlanguage: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialLanguage: this.language,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tallLanguages() {\n\t\t\treturn Object.freeze(\n\t\t\t\t[...this.commonLanguages, ...this.otherLanguages]\n\t\t\t\t\t.reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {})\n\t\t\t)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync onLanguageChange(e) {\n\t\t\tconst language = this.constructLanguage(e.target.value)\n\t\t\tthis.$emit('update:language', language)\n\n\t\t\tif (validateLanguage(language)) {\n\t\t\t\tawait this.updateLanguage(language)\n\t\t\t}\n\t\t},\n\n\t\tasync updateLanguage(language) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_SETTING_PROPERTY_ENUM.LANGUAGE, language.code)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tlanguage,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t\tthis.reloadPage()\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update language'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tconstructLanguage(languageCode) {\n\t\t\treturn {\n\t\t\t\tcode: languageCode,\n\t\t\t\tname: this.allLanguages[languageCode],\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ language, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tthis.initialLanguage = language\n\t\t\t} else {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tlogger.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\n\t\treloadPage() {\n\t\t\tlocation.reload()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.language {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n\n\ta {\n\t\tcolor: var(--color-main-text);\n\t\ttext-decoration: none;\n\t\twidth: max-content;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Language.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!./Language.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!./Language.vue?vue&type=style&index=0&id=6e196b5c&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Language.vue?vue&type=style&index=0&id=6e196b5c&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Language.vue?vue&type=template&id=6e196b5c&scoped=true&\"\nimport script from \"./Language.vue?vue&type=script&lang=js&\"\nexport * from \"./Language.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Language.vue?vue&type=style&index=0&id=6e196b5c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e196b5c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"language\"},[_c('select',{attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.t('settings', 'Language')},on:{\"change\":_vm.onLanguageChange}},[_vm._l((_vm.commonLanguages),function(commonLanguage){return _c('option',{key:commonLanguage.code,domProps:{\"selected\":_vm.language.code === commonLanguage.code,\"value\":commonLanguage.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(commonLanguage.name)+\"\\n\\t\\t\")])}),_vm._v(\" \"),_c('option',{attrs:{\"disabled\":\"\"}},[_vm._v(\"\\n\\t\\t\\t──────────\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.otherLanguages),function(otherLanguage){return _c('option',{key:otherLanguage.code,domProps:{\"selected\":_vm.language.code === otherLanguage.code,\"value\":otherLanguage.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(otherLanguage.name)+\"\\n\\t\\t\")])})],2),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://www.transifex.com/nextcloud/nextcloud/\",\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_c('em',[_vm._v(_vm._s(_vm.t('settings', 'Help translate')))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"propertyReadable\" />\n\n\t\t<template v-if=\"isEditable\">\n\t\t\t<Language :input-id=\"inputId\"\n\t\t\t\t:common-languages=\"commonLanguages\"\n\t\t\t\t:other-languages=\"otherLanguages\"\n\t\t\t\t:language.sync=\"language\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ t('settings', 'No language set') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Language from './Language.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM, ACCOUNT_SETTING_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { languageMap: { activeLanguage, commonLanguages, otherLanguages } } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LanguageSection',\n\n\tcomponents: {\n\t\tLanguage,\n\t\tHeaderBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_SETTING_PROPERTY_READABLE_ENUM.LANGUAGE,\n\t\t\tcommonLanguages,\n\t\t\totherLanguages,\n\t\t\tlanguage: activeLanguage,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-setting-${ACCOUNT_SETTING_PROPERTY_ENUM.LANGUAGE}`\n\t\t},\n\n\t\tisEditable() {\n\t\t\treturn Boolean(this.language)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSection.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!./LanguageSection.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!./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LanguageSection.vue?vue&type=template&id=92685b76&scoped=true&\"\nimport script from \"./LanguageSection.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"92685b76\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),(_vm.isEditable)?[_c('Language',{attrs:{\"input-id\":_vm.inputId,\"common-languages\":_vm.commonLanguages,\"other-languages\":_vm.otherLanguages,\"language\":_vm.language},on:{\"update:language\":function($event){_vm.language=$event}}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'No language set'))+\"\\n\\t\")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"locale\">\n\t\t<select :id=\"inputId\"\n\t\t\t:placeholder=\"t('settings', 'Locale')\"\n\t\t\t@change=\"onLocaleChange\">\n\t\t\t<option v-for=\"currentLocale in localesForLanguage\"\n\t\t\t\t:key=\"currentLocale.code\"\n\t\t\t\t:selected=\"locale.code === currentLocale.code\"\n\t\t\t\t:value=\"currentLocale.code\">\n\t\t\t\t{{ currentLocale.name }}\n\t\t\t</option>\n\t\t\t<option disabled>\n\t\t\t\t──────────\n\t\t\t</option>\n\t\t\t<option v-for=\"currentLocale in otherLocales\"\n\t\t\t\t:key=\"currentLocale.code\"\n\t\t\t\t:selected=\"locale.code === currentLocale.code\"\n\t\t\t\t:value=\"currentLocale.code\">\n\t\t\t\t{{ currentLocale.name }}\n\t\t\t</option>\n\t\t</select>\n\n\t\t<div class=\"example\">\n\t\t\t<Web :size=\"20\" />\n\t\t\t<div class=\"example__text\">\n\t\t\t\t<p>\n\t\t\t\t\t<span>{{ example.date }}</span>\n\t\t\t\t\t<span>{{ example.time }}</span>\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{{ t('settings', 'Week starts on {firstDayOfWeek}', { firstDayOfWeek: this.example.firstDayOfWeek }) }}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\nimport Web from 'vue-material-design-icons/Web.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { validateLocale } from '../../../utils/validate.js'\nimport logger from '../../../logger.js'\n\nexport default {\n\tname: 'Locale',\n\n\tcomponents: {\n\t\tWeb,\n\t},\n\n\tprops: {\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tlocale: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tlocalesForLanguage: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\totherLocales: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialLocale: this.locale,\n\t\t\texample: {\n\t\t\t\tdate: moment().format('L'),\n\t\t\t\ttime: moment().format('LTS'),\n\t\t\t\tfirstDayOfWeek: window.dayNames[window.firstDay],\n\t\t\t},\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tallLocales() {\n\t\t\treturn Object.freeze(\n\t\t\t\t[...this.localesForLanguage, ...this.otherLocales]\n\t\t\t\t\t.reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {})\n\t\t\t)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tsetInterval(this.refreshExample, 1000)\n\t},\n\n\tmethods: {\n\t\tasync onLocaleChange(e) {\n\t\t\tconst locale = this.constructLocale(e.target.value)\n\t\t\tthis.$emit('update:locale', locale)\n\n\t\t\tif (validateLocale(locale)) {\n\t\t\t\tawait this.updateLocale(locale)\n\t\t\t}\n\t\t},\n\n\t\tasync updateLocale(locale) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_SETTING_PROPERTY_ENUM.LOCALE, locale.code)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tlocale,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t\tthis.reloadPage()\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update locale'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tconstructLocale(localeCode) {\n\t\t\treturn {\n\t\t\t\tcode: localeCode,\n\t\t\t\tname: this.allLocales[localeCode],\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ locale, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialLocale = locale\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:locale', this.initialLocale)\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tlogger.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\n\t\trefreshExample() {\n\t\t\tthis.example = {\n\t\t\t\tdate: moment().format('L'),\n\t\t\t\ttime: moment().format('LTS'),\n\t\t\t\tfirstDayOfWeek: window.dayNames[window.firstDay],\n\t\t\t}\n\t\t},\n\n\t\treloadPage() {\n\t\t\tlocation.reload()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.locale {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n}\n\n.example {\n\tmargin: 10px 0;\n\tdisplay: flex;\n\tgap: 0 10px;\n\tcolor: var(--color-text-lighter);\n\n\t&::v-deep .material-design-icon {\n\t\talign-self: flex-start;\n\t\tmargin-top: 2px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Locale.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!./Locale.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!./Locale.vue?vue&type=style&index=0&id=ea9ccb08&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Locale.vue?vue&type=style&index=0&id=ea9ccb08&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Locale.vue?vue&type=template&id=ea9ccb08&scoped=true&\"\nimport script from \"./Locale.vue?vue&type=script&lang=js&\"\nexport * from \"./Locale.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Locale.vue?vue&type=style&index=0&id=ea9ccb08&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea9ccb08\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"locale\"},[_c('select',{attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.t('settings', 'Locale')},on:{\"change\":_vm.onLocaleChange}},[_vm._l((_vm.localesForLanguage),function(currentLocale){return _c('option',{key:currentLocale.code,domProps:{\"selected\":_vm.locale.code === currentLocale.code,\"value\":currentLocale.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(currentLocale.name)+\"\\n\\t\\t\")])}),_vm._v(\" \"),_c('option',{attrs:{\"disabled\":\"\"}},[_vm._v(\"\\n\\t\\t\\t──────────\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.otherLocales),function(currentLocale){return _c('option',{key:currentLocale.code,domProps:{\"selected\":_vm.locale.code === currentLocale.code,\"value\":currentLocale.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(currentLocale.name)+\"\\n\\t\\t\")])})],2),_vm._v(\" \"),_c('div',{staticClass:\"example\"},[_c('Web',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"example__text\"},[_c('p',[_c('span',[_vm._v(_vm._s(_vm.example.date))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.example.time))])]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Week starts on {firstDayOfWeek}', { firstDayOfWeek: this.example.firstDayOfWeek }))+\"\\n\\t\\t\\t\")])])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"propertyReadable\" />\n\n\t\t<template v-if=\"isEditable\">\n\t\t\t<Locale :input-id=\"inputId\"\n\t\t\t\t:locales-for-language=\"localesForLanguage\"\n\t\t\t\t:other-locales=\"otherLocales\"\n\t\t\t\t:locale.sync=\"locale\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ t('settings', 'No locale set') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Locale from './Locale.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM, ACCOUNT_SETTING_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { localeMap: { activeLocale, localesForLanguage, otherLocales } } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LocaleSection',\n\n\tcomponents: {\n\t\tLocale,\n\t\tHeaderBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_SETTING_PROPERTY_READABLE_ENUM.LOCALE,\n\t\t\tlocalesForLanguage,\n\t\t\totherLocales,\n\t\t\tlocale: activeLocale,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-setting-${ACCOUNT_SETTING_PROPERTY_ENUM.LOCALE}`\n\t\t},\n\n\t\tisEditable() {\n\t\t\treturn Boolean(this.locale)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocaleSection.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!./LocaleSection.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!./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LocaleSection.vue?vue&type=template&id=84fca724&scoped=true&\"\nimport script from \"./LocaleSection.vue?vue&type=script&lang=js&\"\nexport * from \"./LocaleSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"84fca724\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),(_vm.isEditable)?[_c('Locale',{attrs:{\"input-id\":_vm.inputId,\"locales-for-language\":_vm.localesForLanguage,\"other-locales\":_vm.otherLocales,\"locale\":_vm.locale},on:{\"update:locale\":function($event){_vm.locale=$event}}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'No locale set'))+\"\\n\\t\")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.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!./EditProfileAnchorLink.vue?vue&type=script&lang=js&\"","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<a :class=\"{ disabled }\"\n\t\thref=\"#profile-visibility\"\n\t\tv-on=\"$listeners\">\n\t\t<ChevronDownIcon class=\"anchor-icon\"\n\t\t\t:size=\"22\" />\n\t\t{{ t('settings', 'Edit your Profile visibility') }}\n\t</a>\n</template>\n\n<script>\nimport ChevronDownIcon from 'vue-material-design-icons/ChevronDown.vue'\n\nexport default {\n\tname: 'EditProfileAnchorLink',\n\n\tcomponents: {\n\t\tChevronDownIcon,\n\t},\n\n\tprops: {\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\nhtml {\n\tscroll-behavior: smooth;\n\n\t@media screen and (prefers-reduced-motion: reduce) {\n\t\tscroll-behavior: auto;\n\t}\n}\n</style>\n\n<style lang=\"scss\" scoped>\na {\n\tdisplay: block;\n\theight: 44px;\n\twidth: 290px;\n\tline-height: 44px;\n\tpadding: 0 16px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-pill);\n\topacity: 0.4;\n\tbackground-color: transparent;\n\n\t.anchor-icon {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tmargin-top: 6px;\n\t\tmargin-right: 8px;\n\t}\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\topacity: 0.8;\n\t\tbackground-color: rgba(127, 127, 127, .25);\n\t}\n\n\t&.disabled {\n\t\tpointer-events: none;\n\t}\n}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=style&index=0&id=1caba458&prod&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!./EditProfileAnchorLink.vue?vue&type=style&index=0&id=1caba458&prod&lang=scss&\";\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!./EditProfileAnchorLink.vue?vue&type=style&index=1&id=1caba458&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=style&index=1&id=1caba458&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditProfileAnchorLink.vue?vue&type=template&id=1caba458&scoped=true&\"\nimport script from \"./EditProfileAnchorLink.vue?vue&type=script&lang=js&\"\nexport * from \"./EditProfileAnchorLink.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditProfileAnchorLink.vue?vue&type=style&index=0&id=1caba458&prod&lang=scss&\"\nimport style1 from \"./EditProfileAnchorLink.vue?vue&type=style&index=1&id=1caba458&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1caba458\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',_vm._g({class:{ disabled: _vm.disabled },attrs:{\"href\":\"#profile-visibility\"}},_vm.$listeners),[_c('ChevronDownIcon',{staticClass:\"anchor-icon\",attrs:{\"size\":22}}),_vm._v(\"\\n\\t\"+_vm._s(_vm.t('settings', 'Edit your Profile visibility'))+\"\\n\")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"checkbox-container\">\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"isProfileEnabled\"\n\t\t\t:loading=\"loading\"\n\t\t\t@update:checked=\"saveEnableProfile\">\n\t\t\t{{ t('settings', 'Enable Profile') }}\n\t\t</NcCheckboxRadioSwitch>\n\t</div>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\n\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { ACCOUNT_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport logger from '../../../logger.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\n\nexport default {\n\tname: 'ProfileCheckbox',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t},\n\n\tprops: {\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tisProfileEnabled: this.profileEnabled,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync saveEnableProfile() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED, this.isProfileEnabled)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tisProfileEnabled: this.isProfileEnabled,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update profile enabled state'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ isProfileEnabled, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\temit('settings:profile-enabled:updated', isProfileEnabled)\n\t\t\t} else {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tlogger.error(errorMessage, error)\n\t\t\t}\n\t\t\tthis.loading = false\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileCheckbox.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!./ProfileCheckbox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileCheckbox.vue?vue&type=template&id=1dec8338&\"\nimport script from \"./ProfileCheckbox.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileCheckbox.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"checkbox-container\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.isProfileEnabled,\"loading\":_vm.loading},on:{\"update:checked\":[function($event){_vm.isProfileEnabled=$event},_vm.saveEnableProfile]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Enable Profile'))+\"\\n\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.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!./ProfilePreviewCard.vue?vue&type=script&lang=js&\"","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<a class=\"preview-card\"\n\t\t:class=\"{ disabled }\"\n\t\t:href=\"profilePageLink\">\n\t\t<NcAvatar class=\"preview-card__avatar\"\n\t\t\t:user=\"userId\"\n\t\t\t:size=\"48\"\n\t\t\t:show-user-status=\"true\"\n\t\t\t:show-user-status-compact=\"false\"\n\t\t\t:disable-menu=\"true\"\n\t\t\t:disable-tooltip=\"true\" />\n\t\t<div class=\"preview-card__header\">\n\t\t\t<span>{{ displayName }}</span>\n\t\t</div>\n\t\t<div class=\"preview-card__footer\">\n\t\t\t<span>{{ organisation }}</span>\n\t\t</div>\n\t</a>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl } from '@nextcloud/router'\n\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\n\nexport default {\n\tname: 'ProfilePreviewCard',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t},\n\n\tprops: {\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\torganisation: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tuserId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\tprofilePageLink() {\n\t\t\tif (this.profileEnabled) {\n\t\t\t\treturn generateUrl('/u/{userId}', { userId: getCurrentUser().uid })\n\t\t\t}\n\t\t\t// Since an anchor element is used rather than a button for better UX,\n\t\t\t// this hack removes href if the profile is disabled so that disabling pointer-events is not needed to prevent a click from opening a page\n\t\t\t// and to allow the hover event (which disabling pointer-events wouldn't allow) for styling\n\t\t\treturn null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.preview-card {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: relative;\n\twidth: 290px;\n\theight: 116px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: var(--color-main-background);\n\tfont-weight: bold;\n\tbox-shadow: 0 2px 9px var(--color-box-shadow);\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbox-shadow: 0 2px 12px var(--color-box-shadow);\n\t}\n\n\t&:focus-visible {\n\t\toutline: var(--color-main-text) solid 1px;\n\t\toutline-offset: 3px;\n\t}\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tbox-shadow: 0 0 3px var(--color-box-shadow);\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\t// Override Avatar component position to fix positioning on rerender\n\t\tposition: absolute !important;\n\t\ttop: 40px;\n\t\tleft: 18px;\n\t\tz-index: 1;\n\n\t\t&:not(.avatardiv--unknown) {\n\t\t\tbox-shadow: 0 0 0 3px var(--color-main-background) !important;\n\t\t}\n\t}\n\n\t&__header,\n\t&__footer {\n\t\tposition: relative;\n\t\twidth: auto;\n\n\t\tspan {\n\t\t\tposition: absolute;\n\t\t\tleft: 78px;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow-wrap: anywhere;\n\n\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__header {\n\t\theight: 70px;\n\t\tborder-radius: var(--border-radius-large) var(--border-radius-large) 0 0;\n\t\tbackground-color: var(--color-primary);\n\t\tbackground-image: var(--gradient-primary-background);\n\n\t\tspan {\n\t\t\tbottom: 0;\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tfont-size: 18px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: 0 4px 8px 0;\n\t\t}\n\t}\n\n\t&__footer {\n\t\theight: 46px;\n\n\t\tspan {\n\t\t\ttop: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: normal;\n\t\t\tmargin: 4px 4px 0 0;\n\t\t\tline-height: 1.3;\n\t\t}\n\t}\n}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.vue?vue&type=style&index=0&id=61586aa5&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.vue?vue&type=style&index=0&id=61586aa5&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfilePreviewCard.vue?vue&type=template&id=61586aa5&scoped=true&\"\nimport script from \"./ProfilePreviewCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfilePreviewCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProfilePreviewCard.vue?vue&type=style&index=0&id=61586aa5&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61586aa5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"preview-card\",class:{ disabled: _vm.disabled },attrs:{\"href\":_vm.profilePageLink}},[_c('NcAvatar',{staticClass:\"preview-card__avatar\",attrs:{\"user\":_vm.userId,\"size\":48,\"show-user-status\":true,\"show-user-status-compact\":false,\"disable-menu\":true,\"disable-tooltip\":true}}),_vm._v(\" \"),_c('div',{staticClass:\"preview-card__header\"},[_c('span',[_vm._v(_vm._s(_vm.displayName))])]),_vm._v(\" \"),_c('div',{staticClass:\"preview-card__footer\"},[_c('span',[_vm._v(_vm._s(_vm.organisation))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :readable=\"propertyReadable\" />\n\n\t\t<ProfileCheckbox :profile-enabled.sync=\"profileEnabled\" />\n\n\t\t<ProfilePreviewCard :organisation=\"organisation\"\n\t\t\t:display-name=\"displayName\"\n\t\t\t:profile-enabled=\"profileEnabled\"\n\t\t\t:user-id=\"userId\" />\n\n\t\t<EditProfileAnchorLink :profile-enabled=\"profileEnabled\" />\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport EditProfileAnchorLink from './EditProfileAnchorLink.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\nimport ProfileCheckbox from './ProfileCheckbox.vue'\nimport ProfilePreviewCard from './ProfilePreviewCard.vue'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst {\n\torganisation: { value: organisation },\n\tdisplayName: { value: displayName },\n\tprofileEnabled,\n\tuserId,\n} = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'ProfileSection',\n\n\tcomponents: {\n\t\tEditProfileAnchorLink,\n\t\tHeaderBar,\n\t\tProfileCheckbox,\n\t\tProfilePreviewCard,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED,\n\t\t\torganisation,\n\t\t\tdisplayName,\n\t\t\tprofileEnabled,\n\t\t\tuserId,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tsubscribe('settings:organisation:updated', this.handleOrganisationUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tunsubscribe('settings:organisation:updated', this.handleOrganisationUpdate)\n\t},\n\n\tmethods: {\n\t\thandleDisplayNameUpdate(displayName) {\n\t\t\tthis.displayName = displayName\n\t\t},\n\n\t\thandleOrganisationUpdate(organisation) {\n\t\t\tthis.organisation = organisation\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSection.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!./ProfileSection.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!./ProfileSection.vue?vue&type=style&index=0&id=cf64d964&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSection.vue?vue&type=style&index=0&id=cf64d964&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfileSection.vue?vue&type=template&id=cf64d964&scoped=true&\"\nimport script from \"./ProfileSection.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProfileSection.vue?vue&type=style&index=0&id=cf64d964&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf64d964\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),_c('ProfileCheckbox',{attrs:{\"profile-enabled\":_vm.profileEnabled},on:{\"update:profileEnabled\":function($event){_vm.profileEnabled=$event},\"update:profile-enabled\":function($event){_vm.profileEnabled=$event}}}),_vm._v(\" \"),_c('ProfilePreviewCard',{attrs:{\"organisation\":_vm.organisation,\"display-name\":_vm.displayName,\"profile-enabled\":_vm.profileEnabled,\"user-id\":_vm.userId}}),_vm._v(\" \"),_c('EditProfileAnchorLink',{attrs:{\"profile-enabled\":_vm.profileEnabled}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"organisation\"\n\t\t:placeholder=\"t('settings', 'Your organisation')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { organisation } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'OrganisationSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\torganisation: { ...organisation, readable: NAME_READABLE_ENUM[organisation.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrganisationSection.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!./OrganisationSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OrganisationSection.vue?vue&type=template&id=50ddf4bd&\"\nimport script from \"./OrganisationSection.vue?vue&type=script&lang=js&\"\nexport * from \"./OrganisationSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your organisation')}},'AccountPropertySection',_vm.organisation,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"role\"\n\t\t:placeholder=\"t('settings', 'Your role')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { role } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'RoleSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\trole: { ...role, readable: NAME_READABLE_ENUM[role.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleSection.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!./RoleSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoleSection.vue?vue&type=template&id=3dbe0705&\"\nimport script from \"./RoleSection.vue?vue&type=script&lang=js&\"\nexport * from \"./RoleSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your role')}},'AccountPropertySection',_vm.role,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"headline\"\n\t\t:placeholder=\"t('settings', 'Your headline')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { headline } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'HeadlineSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\theadline: { ...headline, readable: NAME_READABLE_ENUM[headline.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeadlineSection.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!./HeadlineSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HeadlineSection.vue?vue&type=template&id=0f3859ee&\"\nimport script from \"./HeadlineSection.vue?vue&type=script&lang=js&\"\nexport * from \"./HeadlineSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your headline')}},'AccountPropertySection',_vm.headline,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"biography\"\n\t\t:placeholder=\"t('settings', 'Your biography')\"\n\t\t:multi-line=\"true\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { biography } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'BiographySection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tbiography: { ...biography, readable: NAME_READABLE_ENUM[biography.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiographySection.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!./BiographySection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BiographySection.vue?vue&type=template&id=a916ca60&\"\nimport script from \"./BiographySection.vue?vue&type=script&lang=js&\"\nexport * from \"./BiographySection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your biography'),\"multi-line\":true}},'AccountPropertySection',_vm.biography,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\n/**\n * Save the visibility of the profile parameter\n *\n * @param {string} paramId the profile parameter ID\n * @param {string} visibility the visibility\n * @return {object}\n */\nexport const saveProfileParameterVisibility = async (paramId, visibility) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('/profile/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tparamId,\n\t\tvisibility,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save profile default\n *\n * @param {boolean} isEnabled the default\n * @return {object}\n */\nexport const saveProfileDefault = async (isEnabled) => {\n\t// Convert to string for compatibility\n\tisEnabled = isEnabled ? '1' : '0'\n\n\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\tappId: 'settings',\n\t\tkey: 'profile_enabled_by_default',\n\t})\n\n\tawait confirmPassword()\n\n\tconst res = await axios.post(url, {\n\t\tvalue: isEnabled,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2021 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * SYNC to be kept in sync with `core/Db/ProfileConfig.php`\n */\n\n/** Enum of profile visibility constants */\nexport const VISIBILITY_ENUM = Object.freeze({\n\tSHOW: 'show',\n\tSHOW_USERS_ONLY: 'show_users_only',\n\tHIDE: 'hide',\n})\n\n/**\n * Enum of profile visibility constants to properties\n */\nexport const VISIBILITY_PROPERTY_ENUM = Object.freeze({\n\t[VISIBILITY_ENUM.SHOW]: {\n\t\tname: VISIBILITY_ENUM.SHOW,\n\t\tlabel: t('settings', 'Show to everyone'),\n\t},\n\t[VISIBILITY_ENUM.SHOW_USERS_ONLY]: {\n\t\tname: VISIBILITY_ENUM.SHOW_USERS_ONLY,\n\t\tlabel: t('settings', 'Show to logged in users only'),\n\t},\n\t[VISIBILITY_ENUM.HIDE]: {\n\t\tname: VISIBILITY_ENUM.HIDE,\n\t\tlabel: t('settings', 'Hide'),\n\t},\n})\n","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"visibility-container\"\n\t\t:class=\"{ disabled }\">\n\t\t<label :for=\"inputId\">\n\t\t\t{{ displayId }}\n\t\t</label>\n\t\t<NcSelect :input-id=\"inputId\"\n\t\t\tclass=\"visibility-container__select\"\n\t\t\t:clearable=\"false\"\n\t\t\t:options=\"visibilityOptions\"\n\t\t\t:value=\"visibilityObject\"\n\t\t\t@option:selected=\"onVisibilityChange\" />\n\t</div>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport { saveProfileParameterVisibility } from '../../../service/ProfileService.js'\nimport { VISIBILITY_PROPERTY_ENUM } from '../../../constants/ProfileConstants.js'\nimport logger from '../../../logger.js'\n\nconst { profileEnabled } = loadState('settings', 'personalInfoParameters', false)\n\nexport default {\n\tname: 'VisibilityDropdown',\n\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\tparamId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tdisplayId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvisibility: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialVisibility: this.visibility,\n\t\t\tprofileEnabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\tinputId() {\n\t\t\treturn `profile-visibility-${this.paramId}`\n\t\t},\n\n\t\tvisibilityObject() {\n\t\t\treturn VISIBILITY_PROPERTY_ENUM[this.visibility]\n\t\t},\n\n\t\tvisibilityOptions() {\n\t\t\treturn Object.values(VISIBILITY_PROPERTY_ENUM)\n\t\t},\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tmethods: {\n\t\tasync onVisibilityChange(visibilityObject) {\n\t\t\t// This check is needed as the argument is null when selecting the same option\n\t\t\tif (visibilityObject !== null) {\n\t\t\t\tconst { name: visibility } = visibilityObject\n\t\t\t\tthis.$emit('update:visibility', visibility)\n\n\t\t\t\tif (visibility !== '') {\n\t\t\t\t\tawait this.updateVisibility(visibility)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync updateVisibility(visibility) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await saveProfileParameterVisibility(this.paramId, visibility)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tvisibility,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update visibility of {displayId}', { displayId: this.displayId }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ visibility, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tthis.initialVisibility = visibility\n\t\t\t} else {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tlogger.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\n\t\thandleProfileEnabledUpdate(profileEnabled) {\n\t\t\tthis.profileEnabled = profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.visibility-container {\n\tdisplay: flex;\n\twidth: max-content;\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tpointer-events: none;\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n\n\tlabel {\n\t\tcolor: var(--color-text-lighter);\n\t\twidth: 150px;\n\t\tline-height: 50px;\n\t}\n\n\t&__select {\n\t\twidth: 270px;\n\t\tmax-width: 40vw;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisibilityDropdown.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!./VisibilityDropdown.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!./VisibilityDropdown.vue?vue&type=style&index=0&id=c4a4afde&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisibilityDropdown.vue?vue&type=style&index=0&id=c4a4afde&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VisibilityDropdown.vue?vue&type=template&id=c4a4afde&scoped=true&\"\nimport script from \"./VisibilityDropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./VisibilityDropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VisibilityDropdown.vue?vue&type=style&index=0&id=c4a4afde&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c4a4afde\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"visibility-container\",class:{ disabled: _vm.disabled }},[_c('label',{attrs:{\"for\":_vm.inputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.displayId)+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"visibility-container__select\",attrs:{\"input-id\":_vm.inputId,\"clearable\":false,\"options\":_vm.visibilityOptions,\"value\":_vm.visibilityObject},on:{\"option:selected\":_vm.onVisibilityChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<!-- TODO remove this inline margin placeholder once the settings layout is updated -->\n\t<section id=\"profile-visibility\"\n\t\t:style=\"{ marginLeft }\">\n\t\t<HeaderBar :is-heading=\"true\" :readable=\"heading\" />\n\n\t\t<em :class=\"{ disabled }\">\n\t\t\t{{ t('settings', 'The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.') }}\n\t\t</em>\n\n\t\t<div class=\"visibility-dropdowns\"\n\t\t\t:style=\"{\n\t\t\t\tgridTemplateRows: `repeat(${rows}, 44px)`,\n\t\t\t}\">\n\t\t\t<VisibilityDropdown v-for=\"param in visibilityParams\"\n\t\t\t\t:key=\"param.id\"\n\t\t\t\t:param-id=\"param.id\"\n\t\t\t\t:display-id=\"param.displayId\"\n\t\t\t\t:visibility.sync=\"param.visibility\" />\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport HeaderBar from '../shared/HeaderBar.vue'\nimport VisibilityDropdown from './VisibilityDropdown.vue'\nimport { PROFILE_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { profileConfig } = loadState('settings', 'profileParameters', {})\nconst { profileEnabled } = loadState('settings', 'personalInfoParameters', false)\n\nconst compareParams = (a, b) => {\n\tif (a.appId === b.appId || (a.appId !== 'core' && b.appId !== 'core')) {\n\t\treturn a.displayId.localeCompare(b.displayId)\n\t} else if (a.appId === 'core') {\n\t\treturn 1\n\t} else {\n\t\treturn -1\n\t}\n}\n\nexport default {\n\tname: 'ProfileVisibilitySection',\n\n\tcomponents: {\n\t\tHeaderBar,\n\t\tVisibilityDropdown,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\theading: PROFILE_READABLE_ENUM.PROFILE_VISIBILITY,\n\t\t\tprofileEnabled,\n\t\t\tvisibilityParams: Object.entries(profileConfig)\n\t\t\t\t.map(([paramId, { appId, displayId, visibility }]) => ({ id: paramId, appId, displayId, visibility }))\n\t\t\t\t.sort(compareParams),\n\t\t\t// TODO remove this when not used once the settings layout is updated\n\t\t\tmarginLeft: window.matchMedia('(min-width: 1600px)').matches\n\t\t\t\t? window.getComputedStyle(document.getElementById('vue-avatar-section')).getPropertyValue('width').trim()\n\t\t\t\t: '0px',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\trows() {\n\t\t\treturn Math.ceil(this.visibilityParams.length / 2)\n\t\t},\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t\t// TODO remove this when not used once the settings layout is updated\n\t\twindow.onresize = () => {\n\t\t\tthis.marginLeft = window.matchMedia('(min-width: 1600px)').matches\n\t\t\t\t? window.getComputedStyle(document.getElementById('vue-avatar-section')).getPropertyValue('width').trim()\n\t\t\t\t: '0px'\n\t\t}\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tmethods: {\n\t\thandleProfileEnabledUpdate(profileEnabled) {\n\t\t\tthis.profileEnabled = profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 30px;\n\tmax-width: 900px;\n\twidth: 100%;\n\n\tem {\n\t\tdisplay: block;\n\t\tmargin: 16px 0;\n\n\t\t&.disabled {\n\t\t\tfilter: grayscale(1);\n\t\t\topacity: 0.5;\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\n\t\t\t& *,\n\t\t\t&::v-deep * {\n\t\t\t\tcursor: default;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t.visibility-dropdowns {\n\t\tdisplay: grid;\n\t\tgap: 10px 40px;\n\t}\n\n\t@media (min-width: 1200px) {\n\t\twidth: 940px;\n\n\t\t.visibility-dropdowns {\n\t\t\tgrid-auto-flow: column;\n\t\t}\n\t}\n\n\t@media (max-width: 1200px) {\n\t\twidth: 470px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileVisibilitySection.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!./ProfileVisibilitySection.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!./ProfileVisibilitySection.vue?vue&type=style&index=0&id=a07dbf96&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileVisibilitySection.vue?vue&type=style&index=0&id=a07dbf96&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfileVisibilitySection.vue?vue&type=template&id=a07dbf96&scoped=true&\"\nimport script from \"./ProfileVisibilitySection.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileVisibilitySection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProfileVisibilitySection.vue?vue&type=style&index=0&id=a07dbf96&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a07dbf96\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{style:({ marginLeft: _vm.marginLeft }),attrs:{\"id\":\"profile-visibility\"}},[_c('HeaderBar',{attrs:{\"is-heading\":true,\"readable\":_vm.heading}}),_vm._v(\" \"),_c('em',{class:{ disabled: _vm.disabled }},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"visibility-dropdowns\",style:({\n\t\t\tgridTemplateRows: `repeat(${_vm.rows}, 44px)`,\n\t\t})},_vm._l((_vm.visibilityParams),function(param){return _c('VisibilityDropdown',{key:param.id,attrs:{\"param-id\":param.id,\"display-id\":param.displayId,\"visibility\":param.visibility},on:{\"update:visibility\":function($event){return _vm.$set(param, \"visibility\", $event)}}})}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport '@nextcloud/dialogs/dist/index.css'\n\nimport AvatarSection from './components/PersonalInfo/AvatarSection.vue'\nimport DetailsSection from './components/PersonalInfo/DetailsSection.vue'\nimport DisplayNameSection from './components/PersonalInfo/DisplayNameSection.vue'\nimport EmailSection from './components/PersonalInfo/EmailSection/EmailSection.vue'\nimport PhoneSection from './components/PersonalInfo/PhoneSection.vue'\nimport LocationSection from './components/PersonalInfo/LocationSection.vue'\nimport WebsiteSection from './components/PersonalInfo/WebsiteSection.vue'\nimport TwitterSection from './components/PersonalInfo/TwitterSection.vue'\nimport FediverseSection from './components/PersonalInfo/FediverseSection.vue'\nimport LanguageSection from './components/PersonalInfo/LanguageSection/LanguageSection.vue'\nimport LocaleSection from './components/PersonalInfo/LocaleSection/LocaleSection.vue'\nimport ProfileSection from './components/PersonalInfo/ProfileSection/ProfileSection.vue'\nimport OrganisationSection from './components/PersonalInfo/OrganisationSection.vue'\nimport RoleSection from './components/PersonalInfo/RoleSection.vue'\nimport HeadlineSection from './components/PersonalInfo/HeadlineSection.vue'\nimport BiographySection from './components/PersonalInfo/BiographySection.vue'\nimport ProfileVisibilitySection from './components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nconst profileEnabledGlobally = loadState('settings', 'profileEnabledGlobally', true)\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst AvatarView = Vue.extend(AvatarSection)\nconst DetailsView = Vue.extend(DetailsSection)\nconst DisplayNameView = Vue.extend(DisplayNameSection)\nconst EmailView = Vue.extend(EmailSection)\nconst PhoneView = Vue.extend(PhoneSection)\nconst LocationView = Vue.extend(LocationSection)\nconst WebsiteView = Vue.extend(WebsiteSection)\nconst TwitterView = Vue.extend(TwitterSection)\nconst FediverseView = Vue.extend(FediverseSection)\nconst LanguageView = Vue.extend(LanguageSection)\nconst LocaleView = Vue.extend(LocaleSection)\n\nnew AvatarView().$mount('#vue-avatar-section')\nnew DetailsView().$mount('#vue-details-section')\nnew DisplayNameView().$mount('#vue-displayname-section')\nnew EmailView().$mount('#vue-email-section')\nnew PhoneView().$mount('#vue-phone-section')\nnew LocationView().$mount('#vue-location-section')\nnew WebsiteView().$mount('#vue-website-section')\nnew TwitterView().$mount('#vue-twitter-section')\nnew FediverseView().$mount('#vue-fediverse-section')\nnew LanguageView().$mount('#vue-language-section')\nnew LocaleView().$mount('#vue-locale-section')\n\nif (profileEnabledGlobally) {\n\tconst ProfileView = Vue.extend(ProfileSection)\n\tconst OrganisationView = Vue.extend(OrganisationSection)\n\tconst RoleView = Vue.extend(RoleSection)\n\tconst HeadlineView = Vue.extend(HeadlineSection)\n\tconst BiographyView = Vue.extend(BiographySection)\n\tconst ProfileVisibilityView = Vue.extend(ProfileVisibilitySection)\n\n\tnew ProfileView().$mount('#vue-profile-section')\n\tnew OrganisationView().$mount('#vue-organisation-section')\n\tnew RoleView().$mount('#vue-role-section')\n\tnew HeadlineView().$mount('#vue-headline-section')\n\tnew BiographyView().$mount('#vue-biography-section')\n\tnew ProfileVisibilityView().$mount('#vue-profile-visibility-section')\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, \"section[data-v-04cca3b6]{grid-row:1/3}.avatar__container[data-v-04cca3b6]{margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px 0;width:300px}.avatar__container span[data-v-04cca3b6]{color:var(--color-text-lighter)}.avatar__preview[data-v-04cca3b6]{display:flex;justify-content:center;align-items:center;width:180px;height:180px}.avatar__buttons[data-v-04cca3b6]{display:flex;gap:0 10px}.avatar__cropper[data-v-04cca3b6]{width:300px;height:300px;overflow:hidden}.avatar__cropper-buttons[data-v-04cca3b6]{width:100%;display:flex;justify-content:space-between}.avatar__cropper[data-v-04cca3b6] .cropper-view-box{border-radius:50%}input[type=file][data-v-04cca3b6]{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/AvatarSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CAGA,oCACC,aAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CAEA,yCACC,+BAAA,CAIF,kCACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,YAAA,CAGD,kCACC,YAAA,CACA,UAAA,CAGD,kCACC,WAAA,CACA,YAAA,CACA,eAAA,CAEA,0CACC,UAAA,CACA,YAAA,CACA,6BAAA,CAGD,oDACC,iBAAA,CAKH,kCACC,YAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tgrid-row: 1/3;\\n}\\n.avatar {\\n\\t&__container {\\n\\t\\tmargin: 0 auto;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\tgap: 16px 0;\\n\\t\\twidth: 300px;\\n\\n\\t\\tspan {\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\twidth: 180px;\\n\\t\\theight: 180px;\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 10px;\\n\\t}\\n\\n\\t&__cropper {\\n\\t\\twidth: 300px;\\n\\t\\theight: 300px;\\n\\t\\toverflow: hidden;\\n\\n\\t\\t&-buttons {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .cropper-view-box {\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\\ninput[type=\\\"file\\\"] {\\n\\tdisplay: none;\\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, \".details[data-v-1ab46e68]{display:flex;flex-direction:column;margin:10px 32px 10px 0;gap:16px 0;color:var(--color-text-lighter)}.details__groups[data-v-1ab46e68],.details__quota[data-v-1ab46e68]{display:flex;gap:0 10px}.details__groups-info[data-v-1ab46e68],.details__quota-info[data-v-1ab46e68]{display:flex;flex-direction:column;width:100%;gap:4px 0}.details__groups-list[data-v-1ab46e68],.details__quota-list[data-v-1ab46e68]{font-weight:bold}.details__groups[data-v-1ab46e68] .material-design-icon,.details__quota[data-v-1ab46e68] .material-design-icon{align-self:flex-start;margin-top:2px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/DetailsSection.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,qBAAA,CACA,uBAAA,CACA,UAAA,CACA,+BAAA,CAEA,mEAEC,YAAA,CACA,UAAA,CAEA,6EACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6EACC,gBAAA,CAGD,+GACC,qBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.details {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin: 10px 32px 10px 0;\\n\\tgap: 16px 0;\\n\\tcolor: var(--color-text-lighter);\\n\\n\\t&__groups,\\n\\t&__quota {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 10px;\\n\\n\\t\\t&-info {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tgap: 4px 0;\\n\\t\\t}\\n\\n\\t\\t&-list {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .material-design-icon {\\n\\t\\t\\talign-self: flex-start;\\n\\t\\t\\tmargin-top: 2px;\\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, \".email[data-v-367c6830]{display:grid;align-items:center}.email input[data-v-367c6830]{grid-area:1/1;width:100%}.email .email__actions-container[data-v-367c6830]{grid-area:1/1;justify-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px}.email .email__actions-container .email__actions[data-v-367c6830]{opacity:.4 !important}.email .email__actions-container .email__actions[data-v-367c6830]:hover,.email .email__actions-container .email__actions[data-v-367c6830]:focus,.email .email__actions-container .email__actions[data-v-367c6830]:active{opacity:.8 !important}.email .email__actions-container .email__actions[data-v-367c6830] button{height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}.email__helper-text-message[data-v-367c6830]{padding:4px 0;display:flex;align-items:center}.email__helper-text-message__icon[data-v-367c6830]{margin-right:8px;align-self:start;margin-top:4px}.email__helper-text-message--error[data-v-367c6830]{color:var(--color-error)}.fade-enter[data-v-367c6830],.fade-leave-to[data-v-367c6830]{opacity:0}.fade-enter-active[data-v-367c6830]{transition:opacity 200ms ease-out}.fade-leave-active[data-v-367c6830]{transition:opacity 300ms ease-out}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,YAAA,CACA,kBAAA,CAEA,8BACC,aAAA,CACA,UAAA,CAGD,kDACC,aAAA,CACA,qBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CAEA,kEACC,qBAAA,CAEA,yNAGC,qBAAA,CAGD,yEACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAKH,6CACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,mDACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,oDACC,wBAAA,CAKH,6DAEC,SAAA,CAGD,oCACC,iCAAA,CAGD,oCACC,iCAAA\",\"sourcesContent\":[\"\\n.email {\\n\\tdisplay: grid;\\n\\talign-items: center;\\n\\n\\tinput {\\n\\t\\tgrid-area: 1 / 1;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t.email__actions-container {\\n\\t\\tgrid-area: 1 / 1;\\n\\t\\tjustify-self: flex-end;\\n\\t\\theight: 30px;\\n\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 2px;\\n\\t\\tmargin-right: 5px;\\n\\n\\t\\t.email__actions {\\n\\t\\t\\topacity: 0.4 !important;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\topacity: 0.8 !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&::v-deep button {\\n\\t\\t\\t\\theight: 30px !important;\\n\\t\\t\\t\\tmin-height: 30px !important;\\n\\t\\t\\t\\twidth: 30px !important;\\n\\t\\t\\t\\tmin-width: 30px !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__helper-text-message {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\talign-self: start;\\n\\t\\t\\tmargin-top: 4px;\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tcolor: var(--color-error);\\n\\t\\t}\\n\\t}\\n}\\n\\n.fade-enter,\\n.fade-leave-to {\\n\\topacity: 0;\\n}\\n\\n.fade-enter-active {\\n\\ttransition: opacity 200ms ease-out;\\n}\\n\\n.fade-leave-active {\\n\\ttransition: opacity 300ms ease-out;\\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, \"section[data-v-3b8501a7]{padding:10px 10px}section[data-v-3b8501a7] button:disabled{cursor:default}section .additional-emails-label[data-v-3b8501a7]{display:block;margin-top:16px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,kDACC,aAAA,CACA,eAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.additional-emails-label {\\n\\t\\tdisplay: block;\\n\\t\\tmargin-top: 16px;\\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, \".language[data-v-6e196b5c]{display:grid}.language select[data-v-6e196b5c]{width:100%}.language a[data-v-6e196b5c]{color:var(--color-main-text);text-decoration:none;width:max-content}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,YAAA,CAEA,kCACC,UAAA,CAGD,6BACC,4BAAA,CACA,oBAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n.language {\\n\\tdisplay: grid;\\n\\n\\tselect {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\ta {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\ttext-decoration: none;\\n\\t\\twidth: max-content;\\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, \"section[data-v-92685b76]{padding:10px 10px}section[data-v-92685b76] button:disabled{cursor:default}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\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, \".locale[data-v-ea9ccb08]{display:grid}.locale select[data-v-ea9ccb08]{width:100%}.example[data-v-ea9ccb08]{margin:10px 0;display:flex;gap:0 10px;color:var(--color-text-lighter)}.example[data-v-ea9ccb08] .material-design-icon{align-self:flex-start;margin-top:2px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CAEA,gCACC,UAAA,CAIF,0BACC,aAAA,CACA,YAAA,CACA,UAAA,CACA,+BAAA,CAEA,gDACC,qBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.locale {\\n\\tdisplay: grid;\\n\\n\\tselect {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n.example {\\n\\tmargin: 10px 0;\\n\\tdisplay: flex;\\n\\tgap: 0 10px;\\n\\tcolor: var(--color-text-lighter);\\n\\n\\t&::v-deep .material-design-icon {\\n\\t\\talign-self: flex-start;\\n\\t\\tmargin-top: 2px;\\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, \"section[data-v-84fca724]{padding:10px 10px}section[data-v-84fca724] button:disabled{cursor:default}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\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, \"html{scroll-behavior:smooth}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue\"],\"names\":[],\"mappings\":\"AACA,KACC,sBAAA,CAEA,mDAHD,KAIE,oBAAA,CAAA\",\"sourcesContent\":[\"\\nhtml {\\n\\tscroll-behavior: smooth;\\n\\n\\t@media screen and (prefers-reduced-motion: reduce) {\\n\\t\\tscroll-behavior: auto;\\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, \"a[data-v-1caba458]{display:block;height:44px;width:290px;line-height:44px;padding:0 16px;margin:14px auto;border-radius:var(--border-radius-pill);opacity:.4;background-color:rgba(0,0,0,0)}a .anchor-icon[data-v-1caba458]{display:inline-block;vertical-align:middle;margin-top:6px;margin-right:8px}a[data-v-1caba458]:hover,a[data-v-1caba458]:focus,a[data-v-1caba458]:active{opacity:.8;background-color:rgba(127,127,127,.25)}a.disabled[data-v-1caba458]{pointer-events:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue\"],\"names\":[],\"mappings\":\"AACA,mBACC,aAAA,CACA,WAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,uCAAA,CACA,UAAA,CACA,8BAAA,CAEA,gCACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,gBAAA,CAGD,4EAGC,UAAA,CACA,sCAAA,CAGD,4BACC,mBAAA\",\"sourcesContent\":[\"\\na {\\n\\tdisplay: block;\\n\\theight: 44px;\\n\\twidth: 290px;\\n\\tline-height: 44px;\\n\\tpadding: 0 16px;\\n\\tmargin: 14px auto;\\n\\tborder-radius: var(--border-radius-pill);\\n\\topacity: 0.4;\\n\\tbackground-color: transparent;\\n\\n\\t.anchor-icon {\\n\\t\\tdisplay: inline-block;\\n\\t\\tvertical-align: middle;\\n\\t\\tmargin-top: 6px;\\n\\t\\tmargin-right: 8px;\\n\\t}\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\topacity: 0.8;\\n\\t\\tbackground-color: rgba(127, 127, 127, .25);\\n\\t}\\n\\n\\t&.disabled {\\n\\t\\tpointer-events: none;\\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, \".preview-card[data-v-61586aa5]{display:flex;flex-direction:column;position:relative;width:290px;height:116px;margin:14px auto;border-radius:var(--border-radius-large);background-color:var(--color-main-background);font-weight:bold;box-shadow:0 2px 9px var(--color-box-shadow)}.preview-card[data-v-61586aa5]:hover,.preview-card[data-v-61586aa5]:focus,.preview-card[data-v-61586aa5]:active{box-shadow:0 2px 12px var(--color-box-shadow)}.preview-card[data-v-61586aa5]:focus-visible{outline:var(--color-main-text) solid 1px;outline-offset:3px}.preview-card.disabled[data-v-61586aa5]{filter:grayscale(1);opacity:.5;cursor:default;box-shadow:0 0 3px var(--color-box-shadow)}.preview-card.disabled *[data-v-61586aa5],.preview-card.disabled[data-v-61586aa5] *{cursor:default}.preview-card__avatar[data-v-61586aa5]{position:absolute !important;top:40px;left:18px;z-index:1}.preview-card__avatar[data-v-61586aa5]:not(.avatardiv--unknown){box-shadow:0 0 0 3px var(--color-main-background) !important}.preview-card__header[data-v-61586aa5],.preview-card__footer[data-v-61586aa5]{position:relative;width:auto}.preview-card__header span[data-v-61586aa5],.preview-card__footer span[data-v-61586aa5]{position:absolute;left:78px;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}@supports(-webkit-line-clamp: 2){.preview-card__header span[data-v-61586aa5],.preview-card__footer span[data-v-61586aa5]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.preview-card__header[data-v-61586aa5]{height:70px;border-radius:var(--border-radius-large) var(--border-radius-large) 0 0;background-color:var(--color-primary);background-image:var(--gradient-primary-background)}.preview-card__header span[data-v-61586aa5]{bottom:0;color:var(--color-primary-text);font-size:18px;font-weight:bold;margin:0 4px 8px 0}.preview-card__footer[data-v-61586aa5]{height:46px}.preview-card__footer span[data-v-61586aa5]{top:0;color:var(--color-text-maxcontrast);font-size:14px;font-weight:normal;margin:4px 4px 0 0;line-height:1.3}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,WAAA,CACA,YAAA,CACA,gBAAA,CACA,wCAAA,CACA,6CAAA,CACA,gBAAA,CACA,4CAAA,CAEA,gHAGC,6CAAA,CAGD,6CACC,wCAAA,CACA,kBAAA,CAGD,wCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,0CAAA,CAEA,oFAEC,cAAA,CAIF,uCAEC,4BAAA,CACA,QAAA,CACA,SAAA,CACA,SAAA,CAEA,gEACC,4DAAA,CAIF,8EAEC,iBAAA,CACA,UAAA,CAEA,wFACC,iBAAA,CACA,SAAA,CACA,eAAA,CACA,sBAAA,CACA,sBAAA,CAEA,iCAPD,wFAQE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,uCACC,WAAA,CACA,uEAAA,CACA,qCAAA,CACA,mDAAA,CAEA,4CACC,QAAA,CACA,+BAAA,CACA,cAAA,CACA,gBAAA,CACA,kBAAA,CAIF,uCACC,WAAA,CAEA,4CACC,KAAA,CACA,mCAAA,CACA,cAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.preview-card {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tposition: relative;\\n\\twidth: 290px;\\n\\theight: 116px;\\n\\tmargin: 14px auto;\\n\\tborder-radius: var(--border-radius-large);\\n\\tbackground-color: var(--color-main-background);\\n\\tfont-weight: bold;\\n\\tbox-shadow: 0 2px 9px var(--color-box-shadow);\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbox-shadow: 0 2px 12px var(--color-box-shadow);\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\toutline: var(--color-main-text) solid 1px;\\n\\t\\toutline-offset: 3px;\\n\\t}\\n\\n\\t&.disabled {\\n\\t\\tfilter: grayscale(1);\\n\\t\\topacity: 0.5;\\n\\t\\tcursor: default;\\n\\t\\tbox-shadow: 0 0 3px var(--color-box-shadow);\\n\\n\\t\\t& *,\\n\\t\\t&::v-deep * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t}\\n\\n\\t&__avatar {\\n\\t\\t// Override Avatar component position to fix positioning on rerender\\n\\t\\tposition: absolute !important;\\n\\t\\ttop: 40px;\\n\\t\\tleft: 18px;\\n\\t\\tz-index: 1;\\n\\n\\t\\t&:not(.avatardiv--unknown) {\\n\\t\\t\\tbox-shadow: 0 0 0 3px var(--color-main-background) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: relative;\\n\\t\\twidth: auto;\\n\\n\\t\\tspan {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: 78px;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\n\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__header {\\n\\t\\theight: 70px;\\n\\t\\tborder-radius: var(--border-radius-large) var(--border-radius-large) 0 0;\\n\\t\\tbackground-color: var(--color-primary);\\n\\t\\tbackground-image: var(--gradient-primary-background);\\n\\n\\t\\tspan {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\tfont-size: 18px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin: 0 4px 8px 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&__footer {\\n\\t\\theight: 46px;\\n\\n\\t\\tspan {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tfont-size: 14px;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tmargin: 4px 4px 0 0;\\n\\t\\t\\tline-height: 1.3;\\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, \"section[data-v-cf64d964]{padding:10px 10px}section[data-v-cf64d964] button:disabled{cursor:default}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\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, \"section[data-v-a07dbf96]{padding:30px;max-width:900px;width:100%}section em[data-v-a07dbf96]{display:block;margin:16px 0}section em.disabled[data-v-a07dbf96]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}section em.disabled *[data-v-a07dbf96],section em.disabled[data-v-a07dbf96] *{cursor:default;pointer-events:none}section .visibility-dropdowns[data-v-a07dbf96]{display:grid;gap:10px 40px}@media(min-width: 1200px){section[data-v-a07dbf96]{width:940px}section .visibility-dropdowns[data-v-a07dbf96]{grid-auto-flow:column}}@media(max-width: 1200px){section[data-v-a07dbf96]{width:470px}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CACA,eAAA,CACA,UAAA,CAEA,4BACC,aAAA,CACA,aAAA,CAEA,qCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,8EAEC,cAAA,CACA,mBAAA,CAKH,+CACC,YAAA,CACA,aAAA,CAGD,0BA5BD,yBA6BE,WAAA,CAEA,+CACC,qBAAA,CAAA,CAIF,0BApCD,yBAqCE,WAAA,CAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 30px;\\n\\tmax-width: 900px;\\n\\twidth: 100%;\\n\\n\\tem {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: 16px 0;\\n\\n\\t\\t&.disabled {\\n\\t\\t\\tfilter: grayscale(1);\\n\\t\\t\\topacity: 0.5;\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tpointer-events: none;\\n\\n\\t\\t\\t& *,\\n\\t\\t\\t&::v-deep * {\\n\\t\\t\\t\\tcursor: default;\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.visibility-dropdowns {\\n\\t\\tdisplay: grid;\\n\\t\\tgap: 10px 40px;\\n\\t}\\n\\n\\t@media (min-width: 1200px) {\\n\\t\\twidth: 940px;\\n\\n\\t\\t.visibility-dropdowns {\\n\\t\\t\\tgrid-auto-flow: column;\\n\\t\\t}\\n\\t}\\n\\n\\t@media (max-width: 1200px) {\\n\\t\\twidth: 470px;\\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, \".visibility-container[data-v-c4a4afde]{display:flex;width:max-content}.visibility-container.disabled[data-v-c4a4afde]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}.visibility-container.disabled *[data-v-c4a4afde],.visibility-container.disabled[data-v-c4a4afde] *{cursor:default;pointer-events:none}.visibility-container label[data-v-c4a4afde]{color:var(--color-text-lighter);width:150px;line-height:50px}.visibility-container__select[data-v-c4a4afde]{width:270px;max-width:40vw}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,YAAA,CACA,iBAAA,CAEA,gDACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,oGAEC,cAAA,CACA,mBAAA,CAIF,6CACC,+BAAA,CACA,WAAA,CACA,gBAAA,CAGD,+CACC,WAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.visibility-container {\\n\\tdisplay: flex;\\n\\twidth: max-content;\\n\\n\\t&.disabled {\\n\\t\\tfilter: grayscale(1);\\n\\t\\topacity: 0.5;\\n\\t\\tcursor: default;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t& *,\\n\\t\\t&::v-deep * {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tpointer-events: none;\\n\\t\\t}\\n\\t}\\n\\n\\tlabel {\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\twidth: 150px;\\n\\t\\tline-height: 50px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 270px;\\n\\t\\tmax-width: 40vw;\\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, \"section[data-v-4ef6bbf8]{padding:10px 10px}section[data-v-4ef6bbf8] button:disabled{cursor:default}section .property[data-v-4ef6bbf8]{display:grid;align-items:center}section .property textarea[data-v-4ef6bbf8]{resize:vertical;grid-area:1/1;width:100%}section .property input[data-v-4ef6bbf8]{grid-area:1/1;width:100%}section .property .property__actions-container[data-v-4ef6bbf8]{grid-area:1/1;justify-self:flex-end;align-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px;margin-bottom:5px}section .property__helper-text-message[data-v-4ef6bbf8]{padding:4px 0;display:flex;align-items:center}section .property__helper-text-message__icon[data-v-4ef6bbf8]{margin-right:8px;align-self:start;margin-top:4px}section .property__helper-text-message--error[data-v-4ef6bbf8]{color:var(--color-error)}section .fade-enter[data-v-4ef6bbf8],section .fade-leave-to[data-v-4ef6bbf8]{opacity:0}section .fade-enter-active[data-v-4ef6bbf8]{transition:opacity 200ms ease-out}section .fade-leave-active[data-v-4ef6bbf8]{transition:opacity 300ms ease-out}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,mCACC,YAAA,CACA,kBAAA,CAEA,4CACC,eAAA,CACA,aAAA,CACA,UAAA,CAGD,yCACC,aAAA,CACA,UAAA,CAGD,gEACC,aAAA,CACA,qBAAA,CACA,mBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CACA,iBAAA,CAIF,wDACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,8DACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,+DACC,wBAAA,CAIF,6EAEC,SAAA,CAGD,4CACC,iCAAA,CAGD,4CACC,iCAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.property {\\n\\t\\tdisplay: grid;\\n\\t\\talign-items: center;\\n\\n\\t\\ttextarea {\\n\\t\\t\\tresize: vertical;\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\tinput {\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t.property__actions-container {\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\tjustify-self: flex-end;\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\theight: 30px;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tgap: 0 2px;\\n\\t\\t\\tmargin-right: 5px;\\n\\t\\t\\tmargin-bottom: 5px;\\n\\t\\t}\\n\\t}\\n\\n\\t.property__helper-text-message {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\talign-self: start;\\n\\t\\t\\tmargin-top: 4px;\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tcolor: var(--color-error);\\n\\t\\t}\\n\\t}\\n\\n\\t.fade-enter,\\n\\t.fade-leave-to {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t.fade-enter-active {\\n\\t\\ttransition: opacity 200ms ease-out;\\n\\t}\\n\\n\\t.fade-leave-active {\\n\\t\\ttransition: opacity 300ms ease-out;\\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, \".federation-actions[data-v-05031b91],.federation-actions--additional[data-v-05031b91]{opacity:.4 !important}.federation-actions[data-v-05031b91]:hover,.federation-actions[data-v-05031b91]:focus,.federation-actions[data-v-05031b91]:active,.federation-actions--additional[data-v-05031b91]:hover,.federation-actions--additional[data-v-05031b91]:focus,.federation-actions--additional[data-v-05031b91]:active{opacity:.8 !important}.federation-actions--additional[data-v-05031b91] button{padding-bottom:7px;height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue\"],\"names\":[],\"mappings\":\"AACA,sFAEC,qBAAA,CAEA,wSAGC,qBAAA,CAKD,wDAEC,kBAAA,CACA,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA\",\"sourcesContent\":[\"\\n.federation-actions,\\n.federation-actions--additional {\\n\\topacity: 0.4 !important;\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\topacity: 0.8 !important;\\n\\t}\\n}\\n\\n.federation-actions--additional {\\n\\t&::v-deep button {\\n\\t\\t// TODO remove this hack\\n\\t\\tpadding-bottom: 7px;\\n\\t\\theight: 30px !important;\\n\\t\\tmin-height: 30px !important;\\n\\t\\twidth: 30px !important;\\n\\t\\tmin-width: 30px !important;\\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, \".federation-actions__btn[data-v-d426ed04] p{width:150px !important;padding:8px 0 !important;color:var(--color-main-text) !important;font-size:12.8px !important;line-height:1.5em !important}.federation-actions__btn--active[data-v-d426ed04]{background-color:var(--color-primary-light) !important;box-shadow:inset 2px 0 var(--color-primary) !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue\"],\"names\":[],\"mappings\":\"AAEC,4CACC,sBAAA,CACA,wBAAA,CACA,uCAAA,CACA,2BAAA,CACA,4BAAA,CAIF,kDACC,sDAAA,CACA,sDAAA\",\"sourcesContent\":[\"\\n.federation-actions__btn {\\n\\t&::v-deep p {\\n\\t\\twidth: 150px !important;\\n\\t\\tpadding: 8px 0 !important;\\n\\t\\tcolor: var(--color-main-text) !important;\\n\\t\\tfont-size: 12.8px !important;\\n\\t\\tline-height: 1.5em !important;\\n\\t}\\n}\\n\\n.federation-actions__btn--active {\\n\\tbackground-color: var(--color-primary-light) !important;\\n\\tbox-shadow: inset 2px 0 var(--color-primary) !important;\\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, \".headerbar-label[data-v-b43fcc0c]{font-weight:normal;display:inline-flex;width:100%;margin:12px 0 0 0;gap:8px;align-items:center;font-size:16px;color:var(--color-text-light)}.headerbar-label.profile-property[data-v-b43fcc0c]{height:38px}.headerbar-label.setting-property[data-v-b43fcc0c]{height:44px}.headerbar-label label[data-v-b43fcc0c]{cursor:pointer}.federation-control[data-v-b43fcc0c]{margin:0}.button-vue[data-v-b43fcc0c]{margin:0 0 0 auto !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,kBAAA,CACA,mBAAA,CACA,UAAA,CACA,iBAAA,CACA,OAAA,CACA,kBAAA,CACA,cAAA,CACA,6BAAA,CAEA,mDACC,WAAA,CAGD,mDACC,WAAA,CAGD,wCACC,cAAA,CAIF,qCACC,QAAA,CAGD,6BACC,4BAAA\",\"sourcesContent\":[\"\\n.headerbar-label {\\n\\tfont-weight: normal;\\n\\tdisplay: inline-flex;\\n\\twidth: 100%;\\n\\tmargin: 12px 0 0 0;\\n\\tgap: 8px;\\n\\talign-items: center;\\n\\tfont-size: 16px;\\n\\tcolor: var(--color-text-light);\\n\\n\\t&.profile-property {\\n\\t\\theight: 38px;\\n\\t}\\n\\n\\t&.setting-property {\\n\\t\\theight: 44px;\\n\\t}\\n\\n\\tlabel {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n.federation-control {\\n\\tmargin: 0;\\n}\\n\\n.button-vue {\\n\\tmargin: 0 0 0 auto !important;\\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","// 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 = 4418;","__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\t4418: 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));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(24185); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","components","NcActionButton","props","activeScope","type","required","displayName","handleScopeChange","default","iconClass","isSupportedScope","tooltipDisabled","tooltip","methods","updateScope","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","component","_vm","this","_c","_self","staticClass","class","attrs","on","$event","stopPropagation","preventDefault","apply","arguments","_v","_s","ACCOUNT_PROPERTY_ENUM","Object","freeze","ADDRESS","AVATAR","BIOGRAPHY","DISPLAYNAME","EMAIL_COLLECTION","EMAIL","HEADLINE","NOTIFICATION_EMAIL","FEDIVERSE","ORGANISATION","PHONE","PROFILE_ENABLED","ROLE","TWITTER","WEBSITE","ACCOUNT_PROPERTY_READABLE_ENUM","t","NAME_READABLE_ENUM","PROFILE_READABLE_ENUM","PROFILE_VISIBILITY","PROPERTY_READABLE_KEYS_ENUM","ACCOUNT_SETTING_PROPERTY_ENUM","LANGUAGE","LOCALE","ACCOUNT_SETTING_PROPERTY_READABLE_ENUM","SCOPE_ENUM","PRIVATE","LOCAL","FEDERATED","PUBLISHED","PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM","UNPUBLISHED_READABLE_PROPERTIES","SCOPE_SUFFIX","SCOPE_PROPERTY_ENUM","DEFAULT_ADDITIONAL_EMAIL_SCOPE","VERIFICATION_ENUM","NOT_VERIFIED","VERIFICATION_IN_PROGRESS","VERIFIED","VALIDATE_EMAIL_REGEX","savePrimaryAccountProperty","accountProperty","value","userId","getCurrentUser","uid","url","generateOcsUrl","confirmPassword","axios","key","res","data","savePrimaryAccountPropertyScope","scope","getLoggerBuilder","setApp","detectUser","build","loadState","federationEnabled","lookupServerUploadEnabled","NcActions","FederationControlAction","readable","validator","additional","additionalValue","disabled","handleAdditionalScopeChange","readableLowerCase","initialScope","computed","ariaLabel","property","scopeDisplayNameLowerCase","scopeIcon","federationScopes","supportedScopes","scopes","changeScope","updatePrimaryScope","responseData","status","errorMessage","error","updateAdditionalScope","handleResponse","showError","logger","_l","federationScope","includes","FederationControl","NcButton","Plus","inputId","isEditable","isMultiValueSupported","isValidSection","isHeading","localScope","isProfileProperty","isSettingProperty","onAddAdditional","onScopeChange","tag","_e","scopedSlots","_u","fn","proxy","avatar","avatarChangeSupported","setMultiSelect","setMimeTypeFilter","setModal","setType","allowDirectories","Delete","Folder","HeaderBar","NcAvatar","Upload","VueCropper","showCropper","loading","version","isGenerated","validMimeTypes","cropperOptions","aspectRatio","viewMode","guides","center","highlight","autoCropArea","minContainerWidth","minContainerHeight","created","subscribe","beforeDestroy","unsubscribe","activateLocalFilePicker","onChange","reader","openFilePicker","picker","path","tempAvatar","saveAvatar","blob","formData","removeAvatar","cancel","handleAvatarUpdate","emit","handleDisplayNameUpdate","$set","ref","join","directives","rawName","expression","_b","groups","quota","totalSpace","usage","usageRelative","Account","CircleSlice","NcProgressBar","quotaText","domProps","AlertCircle","AlertOctagon","Check","placeholder","multiLine","onValidate","onSave","initialValue","helperText","showCheckmarkIcon","showErrorIcon","onPropertyChange","debouncePropertyChange","updateProperty","setTimeout","toLocaleLowerCase","displayNameChangeSupported","AccountPropertySection","oc_userconfig","savePrimaryEmail","email","saveAdditionalEmail","saveNotificationEmail","removeAdditionalEmail","collection","updateAdditionalEmail","prevEmail","newEmail","savePrimaryEmailScope","saveAdditionalEmailScope","collectionScope","validateEmail","input","test","slice","length","encodeURIComponent","replace","index","primary","activeNotificationEmail","localVerificationState","propertyReadable","initialEmail","deleteDisabled","deleteEmailLabel","setNotificationMailDisabled","setNotificationMailLabel","federationDisabled","inputPlaceholder","isNotificationEmail","mounted","onEmailChange","debounceEmailChange","deleteEmail","updatePrimaryEmail","addAdditionalEmail","setNotificationMail","newNotificationMailValue","notificationEmail","deleteAdditionalEmail","handleDeleteAdditionalEmail","additionalEmails","primaryEmail","Email","firstAdditionalEmail","primaryEmailValue","get","set","onAddAdditionalEmail","onDeleteAdditionalEmail","onUpdateEmail","deletedEmail","onUpdateNotificationEmail","deleteFirstAdditionalEmail","handleDeleteFirstAdditionalEmail","generateUniqueKey","additionalEmail","parseInt","locallyVerified","defaultPhoneRegion","phone","location","website","URL","e","twitter","fediverse","commonLanguages","otherLanguages","language","initialLanguage","allLanguages","reduce","onLanguageChange","validateLanguage","code","undefined","updateLanguage","constructLanguage","reloadPage","commonLanguage","otherLanguage","activeLanguage","Language","Web","locale","localesForLanguage","otherLocales","initialLocale","example","date","time","firstDayOfWeek","allLocales","setInterval","onLocaleChange","validateLocale","updateLocale","constructLocale","refreshExample","currentLocale","activeLocale","Locale","ChevronDownIcon","profileEnabled","_g","$listeners","NcCheckboxRadioSwitch","isProfileEnabled","saveEnableProfile","organisation","profilePageLink","EditProfileAnchorLink","ProfileCheckbox","ProfilePreviewCard","handleOrganisationUpdate","role","headline","biography","saveProfileParameterVisibility","paramId","visibility","VISIBILITY_ENUM","SHOW","SHOW_USERS_ONLY","HIDE","VISIBILITY_PROPERTY_ENUM","label","NcSelect","displayId","initialVisibility","visibilityObject","visibilityOptions","onVisibilityChange","updateVisibility","handleProfileEnabledUpdate","profileConfig","VisibilityDropdown","heading","visibilityParams","map","id","appId","sort","marginLeft","window","rows","style","gridTemplateRows","param","__webpack_nonce__","btoa","getRequestToken","profileEnabledGlobally","Vue","AvatarView","AvatarSection","DetailsView","DetailsSection","DisplayNameView","DisplayNameSection","EmailView","EmailSection","PhoneView","PhoneSection","LocationView","LocationSection","WebsiteView","WebsiteSection","TwitterView","TwitterSection","FediverseView","FediverseSection","LanguageView","LanguageSection","LocaleView","LocaleSection","$mount","ProfileView","ProfileSection","OrganisationView","OrganisationSection","RoleView","RoleSection","HeadlineView","HeadlineSection","BiographyView","BiographySection","ProfileVisibilityView","ProfileVisibilitySection","___CSS_LOADER_EXPORT___","push","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","keys","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","document","baseURI","self","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"settings-vue-settings-personal-info.js?v=2c78efa6559027375118","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?0b38","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?90b5","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?02db","webpack:///nextcloud/apps/settings/src/constants/AccountPropertyConstants.js","webpack:///nextcloud/apps/settings/src/service/PersonalInfo/PersonalInfoService.js","webpack:///nextcloud/apps/settings/src/logger.js","webpack:///nextcloud/apps/settings/src/utils/handlers.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?b9f2","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?e342","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?d068","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?c843","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?feed","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?e65f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?6af7","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?5014","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/AvatarSection.vue?5282","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?e7aa","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?295f","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DetailsSection.vue?08e9","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?096a","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?ac46","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?d38d","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?bde5","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/DisplayNameSection.vue?3162","webpack:///nextcloud/apps/settings/src/service/PersonalInfo/EmailService.js","webpack:///nextcloud/apps/settings/src/utils/validate.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?7a13","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?bd2c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?04df","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?b77b","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?1258","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?3dd6","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/PhoneSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/PhoneSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/PhoneSection.vue?d5e3","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/PhoneSection.vue?8b50","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocationSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocationSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocationSection.vue?fdc7","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocationSection.vue?414f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/WebsiteSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/WebsiteSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/WebsiteSection.vue?897b","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/WebsiteSection.vue?4b20","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/TwitterSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/TwitterSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/TwitterSection.vue?7e82","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/TwitterSection.vue?8ae2","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/FediverseSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/FediverseSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/FediverseSection.vue?e202","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/FediverseSection.vue?4a92","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?22ad","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?6358","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?94ab","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?6762","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?a350","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?41aa","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?16dc","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?9b6c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?8511","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?1e8d","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?fafb","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?6463","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?f65d","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?fb42","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?7d4b","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?253f","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?7612","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileCheckbox.vue?9b34","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?2aa0","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?240c","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?564e","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?accf","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?c85f","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?3f25","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/OrganisationSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/OrganisationSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/OrganisationSection.vue?5684","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/OrganisationSection.vue?adaf","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/RoleSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/RoleSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/RoleSection.vue?a7b4","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/RoleSection.vue?49db","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/HeadlineSection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/HeadlineSection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/HeadlineSection.vue?9d73","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/HeadlineSection.vue?d565","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/BiographySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/BiographySection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/BiographySection.vue?a6b2","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/BiographySection.vue?7384","webpack:///nextcloud/apps/settings/src/service/ProfileService.js","webpack:///nextcloud/apps/settings/src/constants/ProfileConstants.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?1509","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?c222","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?5e5d","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?1d28","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?7729","webpack://nextcloud/./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?d7f0","webpack:///nextcloud/apps/settings/src/main-personal-info.js","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/AvatarSection.vue?vue&type=style&index=0&id=04cca3b6&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/DetailsSection.vue?vue&type=style&index=0&id=1ab46e68&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue?vue&type=style&index=0&id=5ff85d38&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue?vue&type=style&index=0&id=46c7eb7e&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue?vue&type=style&index=0&id=5c847b3a&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue?vue&type=style&index=0&id=1ac456dc&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=style&index=0&id=1caba458&prod&lang=scss&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue?vue&type=style&index=1&id=1caba458&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue?vue&type=style&index=0&id=61586aa5&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue?vue&type=style&index=0&id=cf64d964&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue?vue&type=style&index=0&id=a07dbf96&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue?vue&type=style&index=0&id=b13d20da&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue?vue&type=style&index=0&id=6eb7d8e0&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControl.vue?vue&type=style&index=0&id=4ea07669&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue?vue&type=style&index=0&id=d426ed04&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue?vue&type=style&index=0&id=b43fcc0c&prod&lang=scss&scoped=true&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","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/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControlAction.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!./FederationControlAction.vue?vue&type=script&lang=js&\"","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<NcActionButton :aria-label=\"isSupportedScope ? tooltip : tooltipDisabled\"\n\t\tclass=\"federation-actions__btn\"\n\t\t:class=\"{ 'federation-actions__btn--active': activeScope === name }\"\n\t\t:close-after-click=\"true\"\n\t\t:disabled=\"!isSupportedScope\"\n\t\t:icon=\"iconClass\"\n\t\t:title=\"isSupportedScope ? tooltip : tooltipDisabled\"\n\t\t@click.stop.prevent=\"updateScope\">\n\t\t{{ isSupportedScope ? tooltip : tooltipDisabled }}\n\t</NcActionButton>\n</template>\n\n<script>\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\n\nexport default {\n\tname: 'FederationControlAction',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\tactiveScope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\thandleScopeChange: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t\ticonClass: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tisSupportedScope: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ttooltipDisabled: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\ttooltip: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tmethods: {\n\t\tupdateScope() {\n\t\t\tthis.handleScopeChange(this.name)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\t.federation-actions__btn {\n\t\t&::v-deep p {\n\t\t\twidth: 150px !important;\n\t\t\tpadding: 8px 0 !important;\n\t\t\tcolor: var(--color-main-text) !important;\n\t\t\tfont-size: 12.8px !important;\n\t\t\tline-height: 1.5em !important;\n\t\t}\n\t}\n\n\t.federation-actions__btn--active {\n\t\tbackground-color: var(--color-primary-light) !important;\n\t\tbox-shadow: inset 2px 0 var(--color-primary) !important;\n\t}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControlAction.vue?vue&type=style&index=0&id=d426ed04&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControlAction.vue?vue&type=style&index=0&id=d426ed04&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FederationControlAction.vue?vue&type=template&id=d426ed04&scoped=true&\"\nimport script from \"./FederationControlAction.vue?vue&type=script&lang=js&\"\nexport * from \"./FederationControlAction.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FederationControlAction.vue?vue&type=style&index=0&id=d426ed04&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d426ed04\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActionButton',{staticClass:\"federation-actions__btn\",class:{ 'federation-actions__btn--active': _vm.activeScope === _vm.name },attrs:{\"aria-label\":_vm.isSupportedScope ? _vm.tooltip : _vm.tooltipDisabled,\"close-after-click\":true,\"disabled\":!_vm.isSupportedScope,\"icon\":_vm.iconClass,\"title\":_vm.isSupportedScope ? _vm.tooltip : _vm.tooltipDisabled},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.updateScope.apply(null, arguments)}}},[_vm._v(\"\\n\\t\"+_vm._s(_vm.isSupportedScope ? _vm.tooltip : _vm.tooltipDisabled)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * SYNC to be kept in sync with `lib/public/Accounts/IAccountManager.php`\n */\n\nimport { translate as t } from '@nextcloud/l10n'\n\n/** Enum of account properties */\nexport const ACCOUNT_PROPERTY_ENUM = Object.freeze({\n\tADDRESS: 'address',\n\tAVATAR: 'avatar',\n\tBIOGRAPHY: 'biography',\n\tDISPLAYNAME: 'displayname',\n\tEMAIL_COLLECTION: 'additional_mail',\n\tEMAIL: 'email',\n\tHEADLINE: 'headline',\n\tNOTIFICATION_EMAIL: 'notify_email',\n\tFEDIVERSE: 'fediverse',\n\tORGANISATION: 'organisation',\n\tPHONE: 'phone',\n\tPROFILE_ENABLED: 'profile_enabled',\n\tROLE: 'role',\n\tTWITTER: 'twitter',\n\tWEBSITE: 'website',\n})\n\n/** Enum of account properties to human readable account property names */\nexport const ACCOUNT_PROPERTY_READABLE_ENUM = Object.freeze({\n\tADDRESS: t('settings', 'Location'),\n\tAVATAR: t('settings', 'Profile picture'),\n\tBIOGRAPHY: t('settings', 'About'),\n\tDISPLAYNAME: t('settings', 'Full name'),\n\tEMAIL_COLLECTION: t('settings', 'Additional email'),\n\tEMAIL: t('settings', 'Email'),\n\tHEADLINE: t('settings', 'Headline'),\n\tORGANISATION: t('settings', 'Organisation'),\n\tPHONE: t('settings', 'Phone number'),\n\tPROFILE_ENABLED: t('settings', 'Profile'),\n\tROLE: t('settings', 'Role'),\n\tTWITTER: t('settings', 'Twitter'),\n\tFEDIVERSE: t('settings', 'Fediverse (e.g. Mastodon)'),\n\tWEBSITE: t('settings', 'Website'),\n})\n\nexport const NAME_READABLE_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_ENUM.ADDRESS]: ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS,\n\t[ACCOUNT_PROPERTY_ENUM.AVATAR]: ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR,\n\t[ACCOUNT_PROPERTY_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,\n\t[ACCOUNT_PROPERTY_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME,\n\t[ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION,\n\t[ACCOUNT_PROPERTY_ENUM.EMAIL]: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t[ACCOUNT_PROPERTY_ENUM.HEADLINE]: ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,\n\t[ACCOUNT_PROPERTY_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,\n\t[ACCOUNT_PROPERTY_ENUM.PHONE]: ACCOUNT_PROPERTY_READABLE_ENUM.PHONE,\n\t[ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED,\n\t[ACCOUNT_PROPERTY_ENUM.ROLE]: ACCOUNT_PROPERTY_READABLE_ENUM.ROLE,\n\t[ACCOUNT_PROPERTY_ENUM.TWITTER]: ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER,\n\t[ACCOUNT_PROPERTY_ENUM.FEDIVERSE]: ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE,\n\t[ACCOUNT_PROPERTY_ENUM.WEBSITE]: ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE,\n})\n\n/** Enum of profile specific sections to human readable names */\nexport const PROFILE_READABLE_ENUM = Object.freeze({\n\tPROFILE_VISIBILITY: t('settings', 'Profile visibility'),\n})\n\n/** Enum of readable account properties to account property keys used by the server */\nexport const PROPERTY_READABLE_KEYS_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: ACCOUNT_PROPERTY_ENUM.ADDRESS,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: ACCOUNT_PROPERTY_ENUM.AVATAR,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: ACCOUNT_PROPERTY_ENUM.BIOGRAPHY,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: ACCOUNT_PROPERTY_ENUM.DISPLAYNAME,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: ACCOUNT_PROPERTY_ENUM.EMAIL,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: ACCOUNT_PROPERTY_ENUM.HEADLINE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: ACCOUNT_PROPERTY_ENUM.ORGANISATION,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: ACCOUNT_PROPERTY_ENUM.PHONE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: ACCOUNT_PROPERTY_ENUM.ROLE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: ACCOUNT_PROPERTY_ENUM.TWITTER,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE]: ACCOUNT_PROPERTY_ENUM.FEDIVERSE,\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: ACCOUNT_PROPERTY_ENUM.WEBSITE,\n})\n\n/**\n * Enum of account setting properties\n *\n * Account setting properties unlike account properties do not support scopes*\n */\nexport const ACCOUNT_SETTING_PROPERTY_ENUM = Object.freeze({\n\tLANGUAGE: 'language',\n\tLOCALE: 'locale',\n})\n\n/** Enum of account setting properties to human readable setting properties */\nexport const ACCOUNT_SETTING_PROPERTY_READABLE_ENUM = Object.freeze({\n\tLANGUAGE: t('settings', 'Language'),\n\tLOCALE: t('settings', 'Locale'),\n})\n\n/** Enum of scopes */\nexport const SCOPE_ENUM = Object.freeze({\n\tPRIVATE: 'v2-private',\n\tLOCAL: 'v2-local',\n\tFEDERATED: 'v2-federated',\n\tPUBLISHED: 'v2-published',\n})\n\n/** Enum of readable account properties to supported scopes */\nexport const PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM = Object.freeze({\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ADDRESS]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.AVATAR]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL_COLLECTION]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL]: [SCOPE_ENUM.LOCAL],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PHONE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.ROLE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.TWITTER]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.FEDIVERSE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n\t[ACCOUNT_PROPERTY_READABLE_ENUM.WEBSITE]: [SCOPE_ENUM.LOCAL, SCOPE_ENUM.PRIVATE],\n})\n\n/** List of readable account properties which aren't published to the lookup server */\nexport const UNPUBLISHED_READABLE_PROPERTIES = Object.freeze([\n\tACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,\n\tACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,\n\tACCOUNT_PROPERTY_READABLE_ENUM.ROLE,\n])\n\n/** Scope suffix */\nexport const SCOPE_SUFFIX = 'Scope'\n\n/**\n * Enum of scope names to properties\n *\n * Used for federation control*\n */\nexport const SCOPE_PROPERTY_ENUM = Object.freeze({\n\t[SCOPE_ENUM.PRIVATE]: {\n\t\tname: SCOPE_ENUM.PRIVATE,\n\t\tdisplayName: t('settings', 'Private'),\n\t\ttooltip: t('settings', 'Only visible to people matched via phone number integration through Talk on mobile'),\n\t\ttooltipDisabled: t('settings', 'Not available as this property is required for core functionality including file sharing and calendar invitations'),\n\t\ticonClass: 'icon-phone',\n\t},\n\t[SCOPE_ENUM.LOCAL]: {\n\t\tname: SCOPE_ENUM.LOCAL,\n\t\tdisplayName: t('settings', 'Local'),\n\t\ttooltip: t('settings', 'Only visible to people on this instance and guests'),\n\t\t// tooltipDisabled is not required here as this scope is supported by all account properties\n\t\ticonClass: 'icon-password',\n\t},\n\t[SCOPE_ENUM.FEDERATED]: {\n\t\tname: SCOPE_ENUM.FEDERATED,\n\t\tdisplayName: t('settings', 'Federated'),\n\t\ttooltip: t('settings', 'Only synchronize to trusted servers'),\n\t\ttooltipDisabled: t('settings', 'Not available as federation has been disabled for your account, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-contacts-dark',\n\t},\n\t[SCOPE_ENUM.PUBLISHED]: {\n\t\tname: SCOPE_ENUM.PUBLISHED,\n\t\tdisplayName: t('settings', 'Published'),\n\t\ttooltip: t('settings', 'Synchronize to trusted servers and the global and public address book'),\n\t\ttooltipDisabled: t('settings', 'Not available as publishing user specific data to the lookup server is not allowed, contact your system administrator if you have any questions'),\n\t\ticonClass: 'icon-link',\n\t},\n})\n\n/** Default additional email scope */\nexport const DEFAULT_ADDITIONAL_EMAIL_SCOPE = SCOPE_ENUM.LOCAL\n\n/** Enum of verification constants, according to IAccountManager */\nexport const VERIFICATION_ENUM = Object.freeze({\n\tNOT_VERIFIED: 0,\n\tVERIFICATION_IN_PROGRESS: 1,\n\tVERIFIED: 2,\n})\n\n/**\n * Email validation regex\n *\n * Sourced from https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/regexp/ascii.ts*\n */\n// eslint-disable-next-line no-control-regex\nexport const VALIDATE_EMAIL_REGEX = /^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/i\n","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nimport { SCOPE_SUFFIX } from '../../constants/AccountPropertyConstants.js'\n\n/**\n * Save the primary account property value for the user\n *\n * @param {string} accountProperty the account property\n * @param {string|boolean} value the primary value\n * @return {object}\n */\nexport const savePrimaryAccountProperty = async (accountProperty, value) => {\n\t// TODO allow boolean values on backend route handler\n\t// Convert boolean to string for compatibility\n\tif (typeof value === 'boolean') {\n\t\tvalue = value ? '1' : '0'\n\t}\n\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: accountProperty,\n\t\tvalue,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the federation scope of the primary account property for the user\n *\n * @param {string} accountProperty the account property\n * @param {string} scope the federation scope\n * @return {object}\n */\nexport const savePrimaryAccountPropertyScope = async (accountProperty, scope) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: `${accountProperty}${SCOPE_SUFFIX}`,\n\t\tvalue: scope,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Roeland Jago Douma <roeland@famdouma.nl>\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 { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('settings')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport logger from '../logger.js'\n\n/**\n * @param {import('axios').AxiosError} error the error\n * @param {string?} message the message to display\n */\nexport const handleError = (error, message) => {\n\tlet fullMessage = ''\n\n\tif (message) {\n\t\tfullMessage += message\n\t}\n\n\tif (error.response?.status === 429) {\n\t\tif (fullMessage) {\n\t\t\tfullMessage += '\\n'\n\t\t}\n\t\tfullMessage += t('settings', 'There were too many requests from your network. Retry later or contact your administrator if this is an error.')\n\t}\n\n\tshowError(fullMessage)\n\tlogger.error(fullMessage || t('Error'), error)\n}\n","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<NcActions :class=\"{ 'federation-actions': !additional, 'federation-actions--additional': additional }\"\n\t\t:aria-label=\"ariaLabel\"\n\t\t:default-icon=\"scopeIcon\"\n\t\t:disabled=\"disabled\">\n\t\t<FederationControlAction v-for=\"federationScope in federationScopes\"\n\t\t\t:key=\"federationScope.name\"\n\t\t\t:active-scope=\"scope\"\n\t\t\t:display-name=\"federationScope.displayName\"\n\t\t\t:handle-scope-change=\"changeScope\"\n\t\t\t:icon-class=\"federationScope.iconClass\"\n\t\t\t:is-supported-scope=\"supportedScopes.includes(federationScope.name)\"\n\t\t\t:name=\"federationScope.name\"\n\t\t\t:tooltip-disabled=\"federationScope.tooltipDisabled\"\n\t\t\t:tooltip=\"federationScope.tooltip\"\n\t\t\t:aria-label=\"federationScope.tooltip\" />\n\t</NcActions>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport FederationControlAction from './FederationControlAction.vue'\n\nimport {\n\tACCOUNT_PROPERTY_READABLE_ENUM,\n\tACCOUNT_SETTING_PROPERTY_READABLE_ENUM,\n\tPROFILE_READABLE_ENUM,\n\tPROPERTY_READABLE_KEYS_ENUM,\n\tPROPERTY_READABLE_SUPPORTED_SCOPES_ENUM,\n\tSCOPE_ENUM, SCOPE_PROPERTY_ENUM,\n\tUNPUBLISHED_READABLE_PROPERTIES,\n} from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountPropertyScope } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nconst {\n\tfederationEnabled,\n\tlookupServerUploadEnabled,\n} = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'FederationControl',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tFederationControlAction,\n\t},\n\n\tprops: {\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tvalidator: (value) => Object.values(ACCOUNT_PROPERTY_READABLE_ENUM).includes(value) || Object.values(ACCOUNT_SETTING_PROPERTY_READABLE_ENUM).includes(value) || value === PROFILE_READABLE_ENUM.PROFILE_VISIBILITY,\n\t\t},\n\t\tadditional: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tadditionalValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\thandleAdditionalScopeChange: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\treadableLowerCase: this.readable.toLocaleLowerCase(),\n\t\t\tinitialScope: this.scope,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tariaLabel() {\n\t\t\treturn t('settings', 'Change scope level of {property}, current scope is {scope}', { property: this.readableLowerCase, scope: this.scopeDisplayNameLowerCase })\n\t\t},\n\n\t\tscopeDisplayNameLowerCase() {\n\t\t\treturn SCOPE_PROPERTY_ENUM[this.scope].displayName.toLocaleLowerCase()\n\t\t},\n\n\t\tscopeIcon() {\n\t\t\treturn SCOPE_PROPERTY_ENUM[this.scope].iconClass\n\t\t},\n\n\t\tfederationScopes() {\n\t\t\treturn Object.values(SCOPE_PROPERTY_ENUM)\n\t\t},\n\n\t\tsupportedScopes() {\n\t\t\tconst scopes = PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM[this.readable]\n\n\t\t\tif (UNPUBLISHED_READABLE_PROPERTIES.includes(this.readable)) {\n\t\t\t\treturn scopes\n\t\t\t}\n\n\t\t\tif (federationEnabled) {\n\t\t\t\tscopes.push(SCOPE_ENUM.FEDERATED)\n\t\t\t}\n\n\t\t\tif (lookupServerUploadEnabled) {\n\t\t\t\tscopes.push(SCOPE_ENUM.PUBLISHED)\n\t\t\t}\n\n\t\t\treturn scopes\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync changeScope(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\n\t\t\tif (!this.additional) {\n\t\t\t\tawait this.updatePrimaryScope(scope)\n\t\t\t} else {\n\t\t\t\tawait this.updateAdditionalScope(scope)\n\t\t\t}\n\t\t},\n\n\t\tasync updatePrimaryScope(scope) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountPropertyScope(PROPERTY_READABLE_KEYS_ENUM[this.readable], scope)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tscope,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update federation scope of the primary {property}', { property: this.readableLowerCase }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync updateAdditionalScope(scope) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await this.handleAdditionalScopeChange(this.additionalValue, scope)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tscope,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update federation scope of additional {property}', { property: this.readableLowerCase }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ scope, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialScope = scope\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:scope', this.initialScope)\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\t.federation-actions,\n\t.federation-actions--additional {\n\t\topacity: 0.4 !important;\n\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\topacity: 0.8 !important;\n\t\t}\n\t}\n\n\t.federation-actions--additional {\n\t\t&::v-deep button {\n\t\t\t// TODO remove this hack\n\t\t\tpadding-bottom: 7px;\n\t\t\theight: 30px !important;\n\t\t\tmin-height: 30px !important;\n\t\t\twidth: 30px !important;\n\t\t\tmin-width: 30px !important;\n\t\t}\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!./FederationControl.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!./FederationControl.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!./FederationControl.vue?vue&type=style&index=0&id=4ea07669&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FederationControl.vue?vue&type=style&index=0&id=4ea07669&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FederationControl.vue?vue&type=template&id=4ea07669&scoped=true&\"\nimport script from \"./FederationControl.vue?vue&type=script&lang=js&\"\nexport * from \"./FederationControl.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FederationControl.vue?vue&type=style&index=0&id=4ea07669&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ea07669\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{class:{ 'federation-actions': !_vm.additional, 'federation-actions--additional': _vm.additional },attrs:{\"aria-label\":_vm.ariaLabel,\"default-icon\":_vm.scopeIcon,\"disabled\":_vm.disabled}},_vm._l((_vm.federationScopes),function(federationScope){return _c('FederationControlAction',{key:federationScope.name,attrs:{\"active-scope\":_vm.scope,\"display-name\":federationScope.displayName,\"handle-scope-change\":_vm.changeScope,\"icon-class\":federationScope.iconClass,\"is-supported-scope\":_vm.supportedScopes.includes(federationScope.name),\"name\":federationScope.name,\"tooltip-disabled\":federationScope.tooltipDisabled,\"tooltip\":federationScope.tooltip,\"aria-label\":federationScope.tooltip}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.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!./HeaderBar.vue?vue&type=script&lang=js&\"","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<component :is=\"isHeading ? `h3` : `div`\" class=\"headerbar-label\" :class=\"{ 'setting-property': isSettingProperty, 'profile-property': isProfileProperty }\">\n\t\t<span v-if=\"isHeading\">\n\t\t\t<!-- Already translated as required by prop validator -->\n\t\t\t{{ readable }}\n\t\t</span>\n\t\t<label v-else :for=\"inputId\">\n\t\t\t<!-- Already translated as required by prop validator -->\n\t\t\t{{ readable }}\n\t\t</label>\n\n\t\t<template v-if=\"scope\">\n\t\t\t<FederationControl class=\"federation-control\"\n\t\t\t\t:readable=\"readable\"\n\t\t\t\t:scope.sync=\"localScope\"\n\t\t\t\t@update:scope=\"onScopeChange\" />\n\t\t</template>\n\n\t\t<template v-if=\"isEditable && isMultiValueSupported\">\n\t\t\t<NcButton type=\"tertiary\"\n\t\t\t\t:disabled=\"!isValidSection\"\n\t\t\t\t:aria-label=\"t('settings', 'Add additional email')\"\n\t\t\t\t@click.stop.prevent=\"onAddAdditional\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('settings', 'Add') }}\n\t\t\t</NcButton>\n\t\t</template>\n\t</component>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Plus from 'vue-material-design-icons/Plus.vue'\n\nimport FederationControl from './FederationControl.vue'\n\nimport {\n\tACCOUNT_PROPERTY_READABLE_ENUM,\n\tPROFILE_READABLE_ENUM,\n} from '../../../constants/AccountPropertyConstants.js'\n\nexport default {\n\tname: 'HeaderBar',\n\n\tcomponents: {\n\t\tFederationControl,\n\t\tNcButton,\n\t\tPlus,\n\t},\n\n\tprops: {\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tisMultiValueSupported: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tisValidSection: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tisHeading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlocalScope: this.scope,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisProfileProperty() {\n\t\t\treturn this.readable === ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED\n\t\t},\n\n\t\tisSettingProperty() {\n\t\t\treturn !Object.values(ACCOUNT_PROPERTY_READABLE_ENUM).includes(this.readable) && !Object.values(PROFILE_READABLE_ENUM).includes(this.readable)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonAddAdditional() {\n\t\t\tthis.$emit('add-additional')\n\t\t},\n\n\t\tonScopeChange(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\t.headerbar-label {\n\t\tfont-weight: normal;\n\t\tdisplay: inline-flex;\n\t\twidth: 100%;\n\t\tmargin: 12px 0 0 0;\n\t\tgap: 8px;\n\t\talign-items: center;\n\t\tfont-size: 16px;\n\t\tcolor: var(--color-text-light);\n\n\t\t&.profile-property {\n\t\t\theight: 38px;\n\t\t}\n\n\t\t&.setting-property {\n\t\t\theight: 44px;\n\t\t}\n\n\t\tlabel {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t.federation-control {\n\t\tmargin: 0;\n\t}\n\n\t.button-vue {\n\t\tmargin: 0 0 0 auto !important;\n\t}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=style&index=0&id=b43fcc0c&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=style&index=0&id=b43fcc0c&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./HeaderBar.vue?vue&type=template&id=b43fcc0c&scoped=true&\"\nimport script from \"./HeaderBar.vue?vue&type=script&lang=js&\"\nexport * from \"./HeaderBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HeaderBar.vue?vue&type=style&index=0&id=b43fcc0c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b43fcc0c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.isHeading ? `h3` : `div`,{tag:\"component\",staticClass:\"headerbar-label\",class:{ 'setting-property': _vm.isSettingProperty, 'profile-property': _vm.isProfileProperty }},[(_vm.isHeading)?_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.readable)+\"\\n\\t\")]):_c('label',{attrs:{\"for\":_vm.inputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.readable)+\"\\n\\t\")]),_vm._v(\" \"),(_vm.scope)?[_c('FederationControl',{staticClass:\"federation-control\",attrs:{\"readable\":_vm.readable,\"scope\":_vm.localScope},on:{\"update:scope\":[function($event){_vm.localScope=$event},_vm.onScopeChange]}})]:_vm._e(),_vm._v(\" \"),(_vm.isEditable && _vm.isMultiValueSupported)?[_c('NcButton',{attrs:{\"type\":\"tertiary\",\"disabled\":!_vm.isValidSection,\"aria-label\":_vm.t('settings', 'Add additional email')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onAddAdditional.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Plus',{attrs:{\"size\":20}})]},proxy:true}],null,false,32235154)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add'))+\"\\n\\t\\t\")])]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section id=\"vue-avatar-section\">\n\t\t<h3 class=\"hidden-visually\"> {{ t('settings', 'Your profile information') }} </h3>\n\t\t<HeaderBar :input-id=\"avatarChangeSupported ? inputId : null\"\n\t\t\t:readable=\"avatar.readable\"\n\t\t\t:scope.sync=\"avatar.scope\" />\n\n\t\t<div v-if=\"!showCropper\" class=\"avatar__container\">\n\t\t\t<div class=\"avatar__preview\">\n\t\t\t\t<NcAvatar v-if=\"!loading\"\n\t\t\t\t\t:user=\"userId\"\n\t\t\t\t\t:aria-label=\"t('settings', 'Your profile picture')\"\n\t\t\t\t\t:disabled-menu=\"true\"\n\t\t\t\t\t:disabled-tooltip=\"true\"\n\t\t\t\t\t:show-user-status=\"false\"\n\t\t\t\t\t:size=\"180\"\n\t\t\t\t\t:key=\"version\" />\n\t\t\t\t<div v-else class=\"icon-loading\" />\n\t\t\t</div>\n\t\t\t<template v-if=\"avatarChangeSupported\">\n\t\t\t\t<div class=\"avatar__buttons\">\n\t\t\t\t\t<NcButton :aria-label=\"t('settings', 'Upload profile picture')\"\n\t\t\t\t\t\t@click=\"activateLocalFilePicker\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Upload :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton :aria-label=\"t('settings', 'Choose profile picture from Files')\"\n\t\t\t\t\t\t@click=\"openFilePicker\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Folder :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton v-if=\"!isGenerated\"\n\t\t\t\t\t\t:aria-label=\"t('settings', 'Remove profile picture')\"\n\t\t\t\t\t\t@click=\"removeAvatar\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t\t<span>{{ t('settings', 'png or jpg, max. 20 MB') }}</span>\n\t\t\t\t<input ref=\"input\"\n\t\t\t\t\t:id=\"inputId\"\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t:accept=\"validMimeTypes.join(',')\"\n\t\t\t\t\t@change=\"onChange\">\n\t\t\t</template>\n\t\t\t<span v-else>\n\t\t\t\t{{ t('settings', 'Picture provided by original account') }}\n\t\t\t</span>\n\t\t</div>\n\n\t\t<!-- Use v-show to ensure early cropper ref availability -->\n\t\t<div v-show=\"showCropper\" class=\"avatar__container\">\n\t\t\t<VueCropper ref=\"cropper\"\n\t\t\t\tclass=\"avatar__cropper\"\n\t\t\t\tv-bind=\"cropperOptions\" />\n\t\t\t<div class=\"avatar__cropper-buttons\">\n\t\t\t\t<NcButton @click=\"cancel\">\n\t\t\t\t\t{{ t('settings', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\t@click=\"saveAvatar\">\n\t\t\t\t\t{{ t('settings', 'Set as profile picture') }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<span>{{ t('settings', 'Please note that it can take up to 24 hours for your profile picture to be updated everywhere.') }}</span>\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getFilePickerBuilder, showError } from '@nextcloud/dialogs'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport VueCropper from 'vue-cropperjs'\n// eslint-disable-next-line n/no-extraneous-import\nimport 'cropperjs/dist/cropper.css'\n\nimport Upload from 'vue-material-design-icons/Upload.vue'\nimport Folder from 'vue-material-design-icons/Folder.vue'\nimport Delete from 'vue-material-design-icons/Delete.vue'\n\nimport HeaderBar from './shared/HeaderBar.vue'\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { avatar } = loadState('settings', 'personalInfoParameters', {})\nconst { avatarChangeSupported } = loadState('settings', 'accountParameters', {})\n\nconst VALID_MIME_TYPES = ['image/png', 'image/jpeg']\n\nconst picker = getFilePickerBuilder(t('settings', 'Choose your profile picture'))\n\t.setMultiSelect(false)\n\t.setMimeTypeFilter(VALID_MIME_TYPES)\n\t.setModal(true)\n\t.setType(1)\n\t.allowDirectories(false)\n\t.build()\n\nexport default {\n\tname: 'AvatarSection',\n\n\tcomponents: {\n\t\tDelete,\n\t\tFolder,\n\t\tHeaderBar,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tUpload,\n\t\tVueCropper,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tavatar: { ...avatar, readable: NAME_READABLE_ENUM[avatar.name] },\n\t\t\tavatarChangeSupported,\n\t\t\tshowCropper: false,\n\t\t\tloading: false,\n\t\t\tuserId: getCurrentUser().uid,\n\t\t\tdisplayName: getCurrentUser().displayName,\n\t\t\tversion: oc_userconfig.avatar.version,\n\t\t\tisGenerated: oc_userconfig.avatar.generated,\n\t\t\tvalidMimeTypes: VALID_MIME_TYPES,\n\t\t\tcropperOptions: {\n\t\t\t\taspectRatio: 1 / 1,\n\t\t\t\tviewMode: 1,\n\t\t\t\tguides: false,\n\t\t\t\tcenter: false,\n\t\t\t\thighlight: false,\n\t\t\t\tautoCropArea: 1,\n\t\t\t\tminContainerWidth: 300,\n\t\t\t\tminContainerHeight: 300,\n\t\t\t},\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-property-${this.avatar.name}`\n\t\t},\n\t},\n\n\tcreated() {\n\t\tsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t},\n\n\tmethods: {\n\t\tactivateLocalFilePicker() {\n\t\t\t// Set to null so that selecting the same file will trigger the change event\n\t\t\tthis.$refs.input.value = null\n\t\t\tthis.$refs.input.click()\n\t\t},\n\n\t\tonChange(e) {\n\t\t\tthis.loading = true\n\t\t\tconst file = e.target.files[0]\n\t\t\tif (!this.validMimeTypes.includes(file.type)) {\n\t\t\t\tshowError(t('settings', 'Please select a valid png or jpg file'))\n\t\t\t\tthis.cancel()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst reader = new FileReader()\n\t\t\treader.onload = (e) => {\n\t\t\t\tthis.$refs.cropper.replace(e.target.result)\n\t\t\t\tthis.showCropper = true\n\t\t\t}\n\t\t\treader.readAsDataURL(file)\n\t\t},\n\n\t\tasync openFilePicker() {\n\t\t\tconst path = await picker.pick()\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(generateUrl('/avatar'), { path })\n\t\t\t\tif (data.status === 'success') {\n\t\t\t\t\tthis.handleAvatarUpdate(false)\n\t\t\t\t} else if (data.data === 'notsquare') {\n\t\t\t\t\tconst tempAvatar = generateUrl('/avatar/tmp') + '?requesttoken=' + encodeURIComponent(OC.requestToken) + '#' + Math.floor(Math.random() * 1000)\n\t\t\t\t\tthis.$refs.cropper.replace(tempAvatar)\n\t\t\t\t\tthis.showCropper = true\n\t\t\t\t} else {\n\t\t\t\t\tshowError(data.data.message)\n\t\t\t\t\tthis.cancel()\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tshowError(t('settings', 'Error setting profile picture'))\n\t\t\t\tthis.cancel()\n\t\t\t}\n\t\t},\n\n\t\tsaveAvatar() {\n\t\t\tthis.showCropper = false\n\t\t\tthis.loading = true\n\n\t\t\tthis.$refs.cropper.getCroppedCanvas().toBlob(async (blob) => {\n\t\t\t\tif (blob === null) {\n\t\t\t\t\tshowError(t('settings', 'Error cropping profile picture'))\n\t\t\t\t\tthis.cancel()\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tconst formData = new FormData()\n\t\t\t\tformData.append('files[]', blob)\n\t\t\t\ttry {\n\t\t\t\t\tawait axios.post(generateUrl('/avatar'), formData)\n\t\t\t\t\tthis.handleAvatarUpdate(false)\n\t\t\t\t} catch (e) {\n\t\t\t\t\tshowError(t('settings', 'Error saving profile picture'))\n\t\t\t\t\tthis.handleAvatarUpdate(this.isGenerated)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tasync removeAvatar() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait axios.delete(generateUrl('/avatar'))\n\t\t\t\tthis.handleAvatarUpdate(true)\n\t\t\t} catch (e) {\n\t\t\t\tshowError(t('settings', 'Error removing profile picture'))\n\t\t\t\tthis.handleAvatarUpdate(this.isGenerated)\n\t\t\t}\n\t\t},\n\n\t\tcancel() {\n\t\t\tthis.showCropper = false\n\t\t\tthis.loading = false\n\t\t},\n\n\t\thandleAvatarUpdate(isGenerated) {\n\t\t\t// Update the avatar version so that avatar update handlers refresh correctly\n\t\t\tthis.version = oc_userconfig.avatar.version = Date.now()\n\t\t\tthis.isGenerated = oc_userconfig.avatar.generated = isGenerated\n\t\t\tthis.loading = false\n\t\t\temit('settings:avatar:updated', oc_userconfig.avatar.version)\n\t\t},\n\n\t\thandleDisplayNameUpdate() {\n\t\t\tthis.version = oc_userconfig.avatar.version\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tgrid-row: 1/3;\n}\n.avatar {\n\t&__container {\n\t\tmargin: 0 auto;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tgap: 16px 0;\n\t\twidth: 300px;\n\n\t\tspan {\n\t\t\tcolor: var(--color-text-lighter);\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 180px;\n\t\theight: 180px;\n\t}\n\n\t&__buttons {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\t}\n\n\t&__cropper {\n\t\twidth: 300px;\n\t\theight: 300px;\n\t\toverflow: hidden;\n\n\t\t&-buttons {\n\t\t\twidth: 100%;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\n\t\t&::v-deep .cropper-view-box {\n\t\t\tborder-radius: 50%;\n\t\t}\n\t}\n}\n\ninput[type=\"file\"] {\n\tdisplay: 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!./AvatarSection.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!./AvatarSection.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!./AvatarSection.vue?vue&type=style&index=0&id=04cca3b6&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarSection.vue?vue&type=style&index=0&id=04cca3b6&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AvatarSection.vue?vue&type=template&id=04cca3b6&scoped=true&\"\nimport script from \"./AvatarSection.vue?vue&type=script&lang=js&\"\nexport * from \"./AvatarSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AvatarSection.vue?vue&type=style&index=0&id=04cca3b6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04cca3b6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{attrs:{\"id\":\"vue-avatar-section\"}},[_c('h3',{staticClass:\"hidden-visually\"},[_vm._v(\" \"+_vm._s(_vm.t('settings', 'Your profile information'))+\" \")]),_vm._v(\" \"),_c('HeaderBar',{attrs:{\"input-id\":_vm.avatarChangeSupported ? _vm.inputId : null,\"readable\":_vm.avatar.readable,\"scope\":_vm.avatar.scope},on:{\"update:scope\":function($event){return _vm.$set(_vm.avatar, \"scope\", $event)}}}),_vm._v(\" \"),(!_vm.showCropper)?_c('div',{staticClass:\"avatar__container\"},[_c('div',{staticClass:\"avatar__preview\"},[(!_vm.loading)?_c('NcAvatar',{key:_vm.version,attrs:{\"user\":_vm.userId,\"aria-label\":_vm.t('settings', 'Your profile picture'),\"disabled-menu\":true,\"disabled-tooltip\":true,\"show-user-status\":false,\"size\":180}}):_c('div',{staticClass:\"icon-loading\"})],1),_vm._v(\" \"),(_vm.avatarChangeSupported)?[_c('div',{staticClass:\"avatar__buttons\"},[_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Upload profile picture')},on:{\"click\":_vm.activateLocalFilePicker},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Upload',{attrs:{\"size\":20}})]},proxy:true}],null,false,1329850251)}),_vm._v(\" \"),_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Choose profile picture from Files')},on:{\"click\":_vm.openFilePicker},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Folder',{attrs:{\"size\":20}})]},proxy:true}],null,false,4270628382)}),_vm._v(\" \"),(!_vm.isGenerated)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('settings', 'Remove profile picture')},on:{\"click\":_vm.removeAvatar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)}):_vm._e()],1),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.t('settings', 'png or jpg, max. 20 MB')))]),_vm._v(\" \"),_c('input',{ref:\"input\",attrs:{\"id\":_vm.inputId,\"type\":\"file\",\"accept\":_vm.validMimeTypes.join(',')},on:{\"change\":_vm.onChange}})]:_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Picture provided by original account'))+\"\\n\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCropper),expression:\"showCropper\"}],staticClass:\"avatar__container\"},[_c('VueCropper',_vm._b({ref:\"cropper\",staticClass:\"avatar__cropper\"},'VueCropper',_vm.cropperOptions,false)),_vm._v(\" \"),_c('div',{staticClass:\"avatar__cropper-buttons\"},[_c('NcButton',{on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.saveAvatar}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Set as profile picture'))+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Please note that it can take up to 24 hours for your profile picture to be updated everywhere.')))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :is-heading=\"true\" :readable=\"t('settings', 'Details')\" />\n\n\t\t<div class=\"details\">\n\t\t\t<div class=\"details__groups\">\n\t\t\t\t<Account :size=\"20\" />\n\t\t\t\t<div class=\"details__groups-info\">\n\t\t\t\t\t<p>{{ t('settings', 'You are a member of the following groups:') }}</p>\n\t\t\t\t\t<p class=\"details__groups-list\">{{ groups.join(', ') }}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"details__quota\">\n\t\t\t\t<CircleSlice :size=\"20\" />\n\t\t\t\t<div class=\"details__quota-info\">\n\t\t\t\t\t<p class=\"details__quota-text\" v-html=\"quotaText\" />\n\t\t\t\t\t<NcProgressBar size=\"medium\"\n\t\t\t\t\t\t:value=\"usageRelative\"\n\t\t\t\t\t\t:error=\"usageRelative > 80\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js'\n\nimport Account from 'vue-material-design-icons/Account.vue'\nimport CircleSlice from 'vue-material-design-icons/CircleSlice3.vue'\n\nimport HeaderBar from './shared/HeaderBar.vue'\n\n/** SYNC to be kept in sync with `lib/public/Files/FileInfo.php` */\nconst SPACE_UNLIMITED = -3\n\nconst { groups, quota, totalSpace, usage, usageRelative } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'DetailsSection',\n\n\tcomponents: {\n\t\tAccount,\n\t\tCircleSlice,\n\t\tHeaderBar,\n\t\tNcProgressBar,\n\t},\n\n\tcomputed: {\n\t\tquotaText() {\n\t\t\tif (quota === SPACE_UNLIMITED) {\n\t\t\t\treturn t('settings', 'You are using <strong>{usage}</strong>', { usage })\n\t\t\t}\n\t\t\treturn t(\n\t\t\t\t'settings',\n\t\t\t\t'You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)',\n\t\t\t\t{ usage, totalSpace, usageRelative },\n\t\t\t)\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tgroups,\n\t\t\tusageRelative,\n\t\t}\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.details {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 10px 32px 10px 0;\n\tgap: 16px 0;\n\tcolor: var(--color-text-lighter);\n\n\t&__groups,\n\t&__quota {\n\t\tdisplay: flex;\n\t\tgap: 0 10px;\n\n\t\t&-info {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tgap: 4px 0;\n\t\t}\n\n\t\t&-list {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t&::v-deep .material-design-icon {\n\t\t\talign-self: flex-start;\n\t\t\tmargin-top: 2px;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailsSection.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!./DetailsSection.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!./DetailsSection.vue?vue&type=style&index=0&id=1ab46e68&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DetailsSection.vue?vue&type=style&index=0&id=1ab46e68&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DetailsSection.vue?vue&type=template&id=1ab46e68&scoped=true&\"\nimport script from \"./DetailsSection.vue?vue&type=script&lang=js&\"\nexport * from \"./DetailsSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DetailsSection.vue?vue&type=style&index=0&id=1ab46e68&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ab46e68\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"is-heading\":true,\"readable\":_vm.t('settings', 'Details')}}),_vm._v(\" \"),_c('div',{staticClass:\"details\"},[_c('div',{staticClass:\"details__groups\"},[_c('Account',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"details__groups-info\"},[_c('p',[_vm._v(_vm._s(_vm.t('settings', 'You are a member of the following groups:')))]),_vm._v(\" \"),_c('p',{staticClass:\"details__groups-list\"},[_vm._v(_vm._s(_vm.groups.join(', ')))])])],1),_vm._v(\" \"),_c('div',{staticClass:\"details__quota\"},[_c('CircleSlice',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"details__quota-info\"},[_c('p',{staticClass:\"details__quota-text\",domProps:{\"innerHTML\":_vm._s(_vm.quotaText)}}),_vm._v(\" \"),_c('NcProgressBar',{attrs:{\"size\":\"medium\",\"value\":_vm.usageRelative,\"error\":_vm.usageRelative > 80}})],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :scope.sync=\"scope\"\n\t\t\t:readable.sync=\"readable\"\n\t\t\t:input-id=\"inputId\"\n\t\t\t:is-editable=\"isEditable\" />\n\n\t\t<div v-if=\"isEditable\" class=\"property\">\n\t\t\t<textarea v-if=\"multiLine\"\n\t\t\t\t:id=\"inputId\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:value=\"value\"\n\t\t\t\trows=\"8\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tautocorrect=\"off\"\n\t\t\t\t@input=\"onPropertyChange\" />\n\t\t\t<input v-else\n\t\t\t\tref=\"input\"\n\t\t\t\t:id=\"inputId\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:type=\"type\"\n\t\t\t\t:value=\"value\"\n\t\t\t\t:aria-describedby=\"helperText ? `${name}-helper-text` : ''\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"on\"\n\t\t\t\tautocorrect=\"off\"\n\t\t\t\t@input=\"onPropertyChange\">\n\n\t\t\t<div class=\"property__actions-container\">\n\t\t\t\t<transition name=\"fade\">\n\t\t\t\t\t<Check v-if=\"showCheckmarkIcon\" :size=\"20\" />\n\t\t\t\t\t<AlertOctagon v-else-if=\"showErrorIcon\" :size=\"20\" />\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t</div>\n\t\t<span v-else>\n\t\t\t{{ value || t('settings', 'No {property} set', { property: readable.toLocaleLowerCase() }) }}\n\t\t</span>\n\n\t\t<p v-if=\"helperText\"\n\t\t\t:id=\"`${name}-helper-text`\"\n\t\t\tclass=\"property__helper-text-message property__helper-text-message--error\">\n\t\t\t<AlertCircle class=\"property__helper-text-message__icon\" :size=\"18\" />\n\t\t\t{{ helperText }}\n\t\t</p>\n\t</section>\n</template>\n\n<script>\nimport debounce from 'debounce'\n\nimport AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport AlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\n\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nexport default {\n\tname: 'AccountPropertySection',\n\n\tcomponents: {\n\t\tAlertCircle,\n\t\tAlertOctagon,\n\t\tCheck,\n\t\tHeaderBar,\n\t},\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\treadable: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'text',\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tmultiLine: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tonValidate: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t\tonSave: {\n\t\t\ttype: Function,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialValue: this.value,\n\t\t\thelperText: null,\n\t\t\tshowCheckmarkIcon: false,\n\t\t\tshowErrorIcon: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-property-${this.name}`\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonPropertyChange(e) {\n\t\t\tthis.$emit('update:value', e.target.value)\n\t\t\tthis.debouncePropertyChange(e.target.value.trim())\n\t\t},\n\n\t\tdebouncePropertyChange: debounce(async function(value) {\n\t\t\tthis.helperText = null\n\t\t\tif (this.$refs.input && this.$refs.input.validationMessage) {\n\t\t\t\tthis.helperText = this.$refs.input.validationMessage\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (this.onValidate && !this.onValidate(value)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tawait this.updateProperty(value)\n\t\t}, 500),\n\n\t\tasync updateProperty(value) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(\n\t\t\t\t\tthis.name,\n\t\t\t\t\tvalue,\n\t\t\t\t)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tvalue,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update {property}', { property: this.readable.toLocaleLowerCase() }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ value, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialValue = value\n\t\t\t\tif (this.onSave) {\n\t\t\t\t\tthis.onSave(value)\n\t\t\t\t}\n\t\t\t\tthis.showCheckmarkIcon = true\n\t\t\t\tsetTimeout(() => { this.showCheckmarkIcon = false }, 2000)\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:value', this.initialValue)\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t\tthis.showErrorIcon = true\n\t\t\t\tsetTimeout(() => { this.showErrorIcon = false }, 2000)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.property {\n\t\tdisplay: grid;\n\t\talign-items: center;\n\n\t\ttextarea {\n\t\t\tresize: vertical;\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\tinput {\n\t\t\tgrid-area: 1 / 1;\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.property__actions-container {\n\t\t\tgrid-area: 1 / 1;\n\t\t\tjustify-self: flex-end;\n\t\t\talign-self: flex-end;\n\t\t\theight: 30px;\n\n\t\t\tdisplay: flex;\n\t\t\tgap: 0 2px;\n\t\t\tmargin-right: 5px;\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t}\n\n\t.property__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n\n\t.fade-enter,\n\t.fade-leave-to {\n\t\topacity: 0;\n\t}\n\n\t.fade-enter-active {\n\t\ttransition: opacity 200ms ease-out;\n\t}\n\n\t.fade-leave-active {\n\t\ttransition: opacity 300ms ease-out;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountPropertySection.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!./AccountPropertySection.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!./AccountPropertySection.vue?vue&type=style&index=0&id=6eb7d8e0&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccountPropertySection.vue?vue&type=style&index=0&id=6eb7d8e0&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AccountPropertySection.vue?vue&type=template&id=6eb7d8e0&scoped=true&\"\nimport script from \"./AccountPropertySection.vue?vue&type=script&lang=js&\"\nexport * from \"./AccountPropertySection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AccountPropertySection.vue?vue&type=style&index=0&id=6eb7d8e0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6eb7d8e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"scope\":_vm.scope,\"readable\":_vm.readable,\"input-id\":_vm.inputId,\"is-editable\":_vm.isEditable},on:{\"update:scope\":function($event){_vm.scope=$event},\"update:readable\":function($event){_vm.readable=$event}}}),_vm._v(\" \"),(_vm.isEditable)?_c('div',{staticClass:\"property\"},[(_vm.multiLine)?_c('textarea',{attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.placeholder,\"rows\":\"8\",\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"autocorrect\":\"off\"},domProps:{\"value\":_vm.value},on:{\"input\":_vm.onPropertyChange}}):_c('input',{ref:\"input\",attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.placeholder,\"type\":_vm.type,\"aria-describedby\":_vm.helperText ? `${_vm.name}-helper-text` : '',\"autocapitalize\":\"none\",\"autocomplete\":\"on\",\"autocorrect\":\"off\"},domProps:{\"value\":_vm.value},on:{\"input\":_vm.onPropertyChange}}),_vm._v(\" \"),_c('div',{staticClass:\"property__actions-container\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.showCheckmarkIcon)?_c('Check',{attrs:{\"size\":20}}):(_vm.showErrorIcon)?_c('AlertOctagon',{attrs:{\"size\":20}}):_vm._e()],1)],1)]):_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.value || _vm.t('settings', 'No {property} set', { property: _vm.readable.toLocaleLowerCase() }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.helperText)?_c('p',{staticClass:\"property__helper-text-message property__helper-text-message--error\",attrs:{\"id\":`${_vm.name}-helper-text`}},[_c('AlertCircle',{staticClass:\"property__helper-text-message__icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.helperText)+\"\\n\\t\")],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"displayName\"\n\t\t:placeholder=\"t('settings', 'Your full name')\"\n\t\t:is-editable=\"displayNameChangeSupported\"\n\t\t:on-validate=\"onValidate\"\n\t\t:on-save=\"onSave\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { emit } from '@nextcloud/event-bus'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { displayName } = loadState('settings', 'personalInfoParameters', {})\nconst { displayNameChangeSupported } = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'DisplayNameSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdisplayName: { ...displayName, readable: NAME_READABLE_ENUM[displayName.name] },\n\t\t\tdisplayNameChangeSupported,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\treturn value !== ''\n\t\t},\n\n\t\tonSave(value) {\n\t\t\tif (oc_userconfig.avatar.generated) {\n\t\t\t\t// Update the avatar version so that avatar update handlers refresh correctly\n\t\t\t\toc_userconfig.avatar.version = Date.now()\n\t\t\t}\n\t\t\temit('settings:display-name:updated', value)\n\t\t},\n\t}\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisplayNameSection.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!./DisplayNameSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DisplayNameSection.vue?vue&type=template&id=8950c424&\"\nimport script from \"./DisplayNameSection.vue?vue&type=script&lang=js&\"\nexport * from \"./DisplayNameSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your full name'),\"is-editable\":_vm.displayNameChangeSupported,\"on-validate\":_vm.onValidate,\"on-save\":_vm.onSave}},'AccountPropertySection',_vm.displayName,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nimport { ACCOUNT_PROPERTY_ENUM, SCOPE_SUFFIX } from '../../constants/AccountPropertyConstants.js'\n\n/**\n * Save the primary email of the user\n *\n * @param {string} email the primary email\n * @return {object}\n */\nexport const savePrimaryEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.EMAIL,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save an additional email of the user\n *\n * Will be appended to the user's additional emails*\n *\n * @param {string} email the additional email\n * @return {object}\n */\nexport const saveAdditionalEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the notification email of the user\n *\n * @param {string} email the notification email\n * @return {object}\n */\nexport const saveNotificationEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: ACCOUNT_PROPERTY_ENUM.NOTIFICATION_EMAIL,\n\t\tvalue: email,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Remove an additional email of the user\n *\n * @param {string} email the additional email\n * @return {object}\n */\nexport const removeAdditionalEmail = async (email) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collection}', { userId, collection: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: email,\n\t\tvalue: '',\n\t})\n\n\treturn res.data\n}\n\n/**\n * Update an additional email of the user\n *\n * @param {string} prevEmail the additional email to be updated\n * @param {string} newEmail the new additional email\n * @return {object}\n */\nexport const updateAdditionalEmail = async (prevEmail, newEmail) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collection}', { userId, collection: ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: prevEmail,\n\t\tvalue: newEmail,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the federation scope for the primary email of the user\n *\n * @param {string} scope the federation scope\n * @return {object}\n */\nexport const savePrimaryEmailScope = async (scope) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: `${ACCOUNT_PROPERTY_ENUM.EMAIL}${SCOPE_SUFFIX}`,\n\t\tvalue: scope,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save the federation scope for the additional email of the user\n *\n * @param {string} email the additional email\n * @param {string} scope the federation scope\n * @return {object}\n */\nexport const saveAdditionalEmailScope = async (email, scope) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('cloud/users/{userId}/{collectionScope}', { userId, collectionScope: `${ACCOUNT_PROPERTY_ENUM.EMAIL_COLLECTION}${SCOPE_SUFFIX}` })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tkey: email,\n\t\tvalue: scope,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * Frontend validators, less strict than backend validators\n *\n * TODO add nice validation errors for Profile page settings modal\n */\n\nimport { VALIDATE_EMAIL_REGEX } from '../constants/AccountPropertyConstants.js'\n\n/**\n * Validate the email input\n *\n * Compliant with PHP core FILTER_VALIDATE_EMAIL validator*\n *\n * Reference implementation https://github.com/mpyw/FILTER_VALIDATE_EMAIL.js/blob/71e62ca48841d2246a1b531e7e84f5a01f15e615/src/index.ts*\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateEmail(input) {\n\treturn typeof input === 'string'\n\t\t&& VALIDATE_EMAIL_REGEX.test(input)\n\t\t&& input.slice(-1) !== '\\n'\n\t\t&& input.length <= 320\n\t\t&& encodeURIComponent(input).replace(/%../g, 'x').length <= 320\n}\n\n/**\n * Validate the URL input\n *\n * @param {string} input the input\n * @return {boolean}\n */\nexport function validateUrl(input) {\n\ttry {\n\t\t// eslint-disable-next-line no-new\n\t\tnew URL(input)\n\t\treturn true\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\n/**\n * Validate the language input\n *\n * @param {object} input the input\n * @return {boolean}\n */\nexport function validateLanguage(input) {\n\treturn input.code !== ''\n\t\t&& input.name !== ''\n\t\t&& input.name !== undefined\n}\n\n/**\n * Validate the locale input\n *\n * @param {object} input the input\n * @return {boolean}\n */\nexport function validateLocale(input) {\n\treturn input.code !== ''\n\t\t&& input.name !== ''\n\t\t&& input.name !== undefined\n}\n\n/**\n * Validate boolean input\n *\n * @param {boolean} input the input\n * @return {boolean}\n */\nexport function validateBoolean(input) {\n\treturn typeof input === 'boolean'\n}\n","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div>\n\t\t<div class=\"email\">\n\t\t\t<input :id=\"inputId\"\n\t\t\t\tref=\"email\"\n\t\t\t\ttype=\"email\"\n\t\t\t\t:placeholder=\"inputPlaceholder\"\n\t\t\t\t:value=\"email\"\n\t\t\t\t:aria-describedby=\"helperText ? `${inputId}-helper-text` : ''\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"on\"\n\t\t\t\tautocorrect=\"off\"\n\t\t\t\t@input=\"onEmailChange\">\n\n\t\t\t<div class=\"email__actions-container\">\n\t\t\t\t<transition name=\"fade\">\n\t\t\t\t\t<Check v-if=\"showCheckmarkIcon\" :size=\"20\" />\n\t\t\t\t\t<AlertOctagon v-else-if=\"showErrorIcon\" :size=\"20\" />\n\t\t\t\t</transition>\n\n\t\t\t\t<template v-if=\"!primary\">\n\t\t\t\t\t<FederationControl :readable=\"propertyReadable\"\n\t\t\t\t\t\t:additional=\"true\"\n\t\t\t\t\t\t:additional-value=\"email\"\n\t\t\t\t\t\t:disabled=\"federationDisabled\"\n\t\t\t\t\t\t:handle-additional-scope-change=\"saveAdditionalEmailScope\"\n\t\t\t\t\t\t:scope.sync=\"localScope\"\n\t\t\t\t\t\t@update:scope=\"onScopeChange\" />\n\t\t\t\t</template>\n\n\t\t\t\t<NcActions class=\"email__actions\"\n\t\t\t\t\t:aria-label=\"t('settings', 'Email options')\"\n\t\t\t\t\t:force-menu=\"true\">\n\t\t\t\t\t<NcActionButton :aria-label=\"deleteEmailLabel\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t:disabled=\"deleteDisabled\"\n\t\t\t\t\t\ticon=\"icon-delete\"\n\t\t\t\t\t\t@click.stop.prevent=\"deleteEmail\">\n\t\t\t\t\t\t{{ deleteEmailLabel }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton v-if=\"!primary || !isNotificationEmail\"\n\t\t\t\t\t\t:aria-label=\"setNotificationMailLabel\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t:disabled=\"setNotificationMailDisabled\"\n\t\t\t\t\t\ticon=\"icon-favorite\"\n\t\t\t\t\t\t@click.stop.prevent=\"setNotificationMail\">\n\t\t\t\t\t\t{{ setNotificationMailLabel }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<p v-if=\"helperText\"\n\t\t\t:id=\"`${inputId}-helper-text`\"\n\t\t\tclass=\"email__helper-text-message email__helper-text-message--error\">\n\t\t\t<AlertCircle class=\"email__helper-text-message__icon\" :size=\"18\" />\n\t\t\t{{ helperText }}\n\t\t</p>\n\n\t\t<em v-if=\"isNotificationEmail\">\n\t\t\t{{ t('settings', 'Primary email for password reset and notifications') }}\n\t\t</em>\n\t</div>\n</template>\n\n<script>\nimport { NcActions, NcActionButton } from '@nextcloud/vue'\nimport AlertCircle from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport AlertOctagon from 'vue-material-design-icons/AlertOctagon.vue'\nimport Check from 'vue-material-design-icons/Check.vue'\nimport debounce from 'debounce'\n\nimport FederationControl from '../shared/FederationControl.vue'\nimport { handleError } from '../../../utils/handlers.js'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM, VERIFICATION_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport {\n\tremoveAdditionalEmail,\n\tsaveAdditionalEmail,\n\tsaveAdditionalEmailScope,\n\tsaveNotificationEmail,\n\tsavePrimaryEmail,\n\tupdateAdditionalEmail,\n} from '../../../service/PersonalInfo/EmailService.js'\nimport { validateEmail } from '../../../utils/validate.js'\n\nexport default {\n\tname: 'Email',\n\n\tcomponents: {\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tAlertCircle,\n\t\tAlertOctagon,\n\t\tCheck,\n\t\tFederationControl,\n\t},\n\n\tprops: {\n\t\temail: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tscope: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tactiveNotificationEmail: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tlocalVerificationState: {\n\t\t\ttype: Number,\n\t\t\tdefault: VERIFICATION_ENUM.NOT_VERIFIED,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t\t\tinitialEmail: this.email,\n\t\t\tlocalScope: this.scope,\n\t\t\tsaveAdditionalEmailScope,\n\t\t\thelperText: null,\n\t\t\tshowCheckmarkIcon: false,\n\t\t\tshowErrorIcon: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdeleteDisabled() {\n\t\t\tif (this.primary) {\n\t\t\t\t// Disable for empty primary email as there is nothing to delete\n\t\t\t\t// OR when initialEmail (reflects server state) and email (current input) are not the same\n\t\t\t\treturn this.email === '' || this.initialEmail !== this.email\n\t\t\t} else if (this.initialEmail !== '') {\n\t\t\t\treturn this.initialEmail !== this.email\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tdeleteEmailLabel() {\n\t\t\tif (this.primary) {\n\t\t\t\treturn t('settings', 'Remove primary email')\n\t\t\t}\n\t\t\treturn t('settings', 'Delete email')\n\t\t},\n\n\t setNotificationMailDisabled() {\n\t\t\treturn !this.primary && this.localVerificationState !== VERIFICATION_ENUM.VERIFIED\n\t\t},\n\n\t setNotificationMailLabel() {\n\t\t\tif (this.isNotificationEmail) {\n\t\t\t\treturn t('settings', 'Unset as primary email')\n\t\t\t} else if (!this.primary && this.localVerificationState !== VERIFICATION_ENUM.VERIFIED) {\n\t\t\t\treturn t('settings', 'This address is not confirmed')\n\t\t\t}\n\t\t\treturn t('settings', 'Set as primary email')\n\t\t},\n\n\t\tfederationDisabled() {\n\t\t\treturn !this.initialEmail\n\t\t},\n\n\t\tinputId() {\n\t\t\tif (this.primary) {\n\t\t\t\treturn 'email'\n\t\t\t}\n\t\t\treturn `email-${this.index}`\n\t\t},\n\n\t\tinputPlaceholder() {\n\t\t\tif (this.primary) {\n\t\t\t\treturn t('settings', 'Your email address')\n\t\t\t}\n\t\t\treturn t('settings', 'Additional email address {index}', { index: this.index + 1 })\n\t\t},\n\n\t\tisNotificationEmail() {\n\t\t\treturn (this.email && this.email === this.activeNotificationEmail)\n\t\t\t\t|| (this.primary && this.activeNotificationEmail === '')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.primary && this.initialEmail === '') {\n\t\t\t// $nextTick is needed here, otherwise it may not always work https://stackoverflow.com/questions/51922767/autofocus-input-on-mount-vue-ios/63485725#63485725\n\t\t\tthis.$nextTick(() => this.$refs.email?.focus())\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonEmailChange(e) {\n\t\t\tthis.$emit('update:email', e.target.value)\n\t\t\tthis.debounceEmailChange(e.target.value.trim())\n\t\t},\n\n\t\tdebounceEmailChange: debounce(async function(email) {\n\t\t\tthis.helperText = null\n\t\t\tif (this.$refs.email?.validationMessage) {\n\t\t\t\tthis.helperText = this.$refs.email.validationMessage\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (validateEmail(email) || email === '') {\n\t\t\t\tif (this.primary) {\n\t\t\t\t\tawait this.updatePrimaryEmail(email)\n\t\t\t\t} else {\n\t\t\t\t\tif (email) {\n\t\t\t\t\t\tif (this.initialEmail === '') {\n\t\t\t\t\t\t\tawait this.addAdditionalEmail(email)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tawait this.updateAdditionalEmail(email)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 500),\n\n\t\tasync deleteEmail() {\n\t\t\tif (this.primary) {\n\t\t\t\tthis.$emit('update:email', '')\n\t\t\t\tawait this.updatePrimaryEmail('')\n\t\t\t} else {\n\t\t\t\tawait this.deleteAdditionalEmail()\n\t\t\t}\n\t\t},\n\n\t\tasync updatePrimaryEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryEmail(email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tif (email === '') {\n\t\t\t\t\tthis.handleResponse({\n\t\t\t\t\t\terrorMessage: t('settings', 'Unable to delete primary email address'),\n\t\t\t\t\t\terror: e,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tthis.handleResponse({\n\t\t\t\t\t\terrorMessage: t('settings', 'Unable to update primary email address'),\n\t\t\t\t\t\terror: e,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync addAdditionalEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await saveAdditionalEmail(email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to add additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync setNotificationMail() {\n\t\t try {\n\t\t\t const newNotificationMailValue = (this.primary || this.isNotificationEmail) ? '' : this.initialEmail\n\t\t\t const responseData = await saveNotificationEmail(newNotificationMailValue)\n\t\t\t this.handleResponse({\n\t\t\t\t notificationEmail: newNotificationMailValue,\n\t\t\t\t status: responseData.ocs?.meta?.status,\n\t\t\t })\n\t\t } catch (e) {\n\t\t\t this.handleResponse({\n\t\t\t\t errorMessage: 'Unable to choose this email for notifications',\n\t\t\t\t error: e,\n\t\t\t })\n\t\t }\n\t\t},\n\n\t\tasync updateAdditionalEmail(email) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await updateAdditionalEmail(this.initialEmail, email)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\temail,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tasync deleteAdditionalEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await removeAdditionalEmail(this.initialEmail)\n\t\t\t\tthis.handleDeleteAdditionalEmail(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to delete additional email address'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleDeleteAdditionalEmail(status) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.$emit('delete-additional-email')\n\t\t\t} else {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to delete additional email address'),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ email, notificationEmail, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tif (email) {\n\t\t\t\t\tthis.initialEmail = email\n\t\t\t\t} else if (notificationEmail !== undefined) {\n\t\t\t\t\tthis.$emit('update:notification-email', notificationEmail)\n\t\t\t\t}\n\t\t\t\tthis.showCheckmarkIcon = true\n\t\t\t\tsetTimeout(() => { this.showCheckmarkIcon = false }, 2000)\n\t\t\t} else {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t\tthis.showErrorIcon = true\n\t\t\t\tsetTimeout(() => { this.showErrorIcon = false }, 2000)\n\t\t\t}\n\t\t},\n\n\t\tonScopeChange(scope) {\n\t\t\tthis.$emit('update:scope', scope)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.email {\n\tdisplay: grid;\n\talign-items: center;\n\n\tinput {\n\t\tgrid-area: 1 / 1;\n\t\twidth: 100%;\n\t}\n\n\t.email__actions-container {\n\t\tgrid-area: 1 / 1;\n\t\tjustify-self: flex-end;\n\t\theight: 30px;\n\n\t\tdisplay: flex;\n\t\tgap: 0 2px;\n\t\tmargin-right: 5px;\n\n\t\t.email__actions {\n\t\t\topacity: 0.4 !important;\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 0.8 !important;\n\t\t\t}\n\n\t\t\t&::v-deep button {\n\t\t\t\theight: 30px !important;\n\t\t\t\tmin-height: 30px !important;\n\t\t\t\twidth: 30px !important;\n\t\t\t\tmin-width: 30px !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__helper-text-message {\n\t\tpadding: 4px 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\n\t\t&__icon {\n\t\t\tmargin-right: 8px;\n\t\t\talign-self: start;\n\t\t\tmargin-top: 4px;\n\t\t}\n\n\t\t&--error {\n\t\t\tcolor: var(--color-error);\n\t\t}\n\t}\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-enter-active {\n\ttransition: opacity 200ms ease-out;\n}\n\n.fade-leave-active {\n\ttransition: opacity 300ms ease-out;\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.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!./Email.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!./Email.vue?vue&type=style&index=0&id=5ff85d38&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=style&index=0&id=5ff85d38&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=5ff85d38&scoped=true&\"\nimport script from \"./Email.vue?vue&type=script&lang=js&\"\nexport * from \"./Email.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Email.vue?vue&type=style&index=0&id=5ff85d38&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ff85d38\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"email\"},[_c('input',{ref:\"email\",attrs:{\"id\":_vm.inputId,\"type\":\"email\",\"placeholder\":_vm.inputPlaceholder,\"aria-describedby\":_vm.helperText ? `${_vm.inputId}-helper-text` : '',\"autocapitalize\":\"none\",\"autocomplete\":\"on\",\"autocorrect\":\"off\"},domProps:{\"value\":_vm.email},on:{\"input\":_vm.onEmailChange}}),_vm._v(\" \"),_c('div',{staticClass:\"email__actions-container\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.showCheckmarkIcon)?_c('Check',{attrs:{\"size\":20}}):(_vm.showErrorIcon)?_c('AlertOctagon',{attrs:{\"size\":20}}):_vm._e()],1),_vm._v(\" \"),(!_vm.primary)?[_c('FederationControl',{attrs:{\"readable\":_vm.propertyReadable,\"additional\":true,\"additional-value\":_vm.email,\"disabled\":_vm.federationDisabled,\"handle-additional-scope-change\":_vm.saveAdditionalEmailScope,\"scope\":_vm.localScope},on:{\"update:scope\":[function($event){_vm.localScope=$event},_vm.onScopeChange]}})]:_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"email__actions\",attrs:{\"aria-label\":_vm.t('settings', 'Email options'),\"force-menu\":true}},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.deleteEmailLabel,\"close-after-click\":true,\"disabled\":_vm.deleteDisabled,\"icon\":\"icon-delete\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.deleteEmail.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.deleteEmailLabel)+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(!_vm.primary || !_vm.isNotificationEmail)?_c('NcActionButton',{attrs:{\"aria-label\":_vm.setNotificationMailLabel,\"close-after-click\":true,\"disabled\":_vm.setNotificationMailDisabled,\"icon\":\"icon-favorite\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.setNotificationMail.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.setNotificationMailLabel)+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1)],2)]),_vm._v(\" \"),(_vm.helperText)?_c('p',{staticClass:\"email__helper-text-message email__helper-text-message--error\",attrs:{\"id\":`${_vm.inputId}-helper-text`}},[_c('AlertCircle',{staticClass:\"email__helper-text-message__icon\",attrs:{\"size\":18}}),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.helperText)+\"\\n\\t\")],1):_vm._e(),_vm._v(\" \"),(_vm.isNotificationEmail)?_c('em',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Primary email for password reset and notifications'))+\"\\n\\t\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"primaryEmail.readable\"\n\t\t\t:handle-scope-change=\"savePrimaryEmailScope\"\n\t\t\t:is-editable=\"true\"\n\t\t\t:is-multi-value-supported=\"true\"\n\t\t\t:is-valid-section=\"isValidSection\"\n\t\t\t:scope.sync=\"primaryEmail.scope\"\n\t\t\t@add-additional=\"onAddAdditionalEmail\" />\n\n\t\t<template v-if=\"displayNameChangeSupported\">\n\t\t\t<Email :primary=\"true\"\n\t\t\t\t:scope.sync=\"primaryEmail.scope\"\n\t\t\t\t:email.sync=\"primaryEmail.value\"\n\t\t\t\t:active-notification-email.sync=\"notificationEmail\"\n\t\t\t\t@update:email=\"onUpdateEmail\"\n\t\t\t\t@update:notification-email=\"onUpdateNotificationEmail\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ primaryEmail.value || t('settings', 'No email address set') }}\n\t\t</span>\n\n\t\t<template v-if=\"additionalEmails.length\">\n\t\t\t<em class=\"additional-emails-label\">{{ t('settings', 'Additional emails') }}</em>\n\t\t\t<!-- TODO use unique key for additional email when uniqueness can be guaranteed, see https://github.com/nextcloud/server/issues/26866 -->\n\t\t\t<Email v-for=\"(additionalEmail, index) in additionalEmails\"\n\t\t\t\t:key=\"additionalEmail.key\"\n\t\t\t\t:index=\"index\"\n\t\t\t\t:scope.sync=\"additionalEmail.scope\"\n\t\t\t\t:email.sync=\"additionalEmail.value\"\n\t\t\t\t:local-verification-state=\"parseInt(additionalEmail.locallyVerified, 10)\"\n\t\t\t\t:active-notification-email.sync=\"notificationEmail\"\n\t\t\t\t@update:email=\"onUpdateEmail\"\n\t\t\t\t@update:notification-email=\"onUpdateNotificationEmail\"\n\t\t\t\t@delete-additional-email=\"onDeleteAdditionalEmail(index)\" />\n\t\t</template>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Email from './Email.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM, DEFAULT_ADDITIONAL_EMAIL_SCOPE, NAME_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryEmail, savePrimaryEmailScope, removeAdditionalEmail } from '../../../service/PersonalInfo/EmailService.js'\nimport { validateEmail } from '../../../utils/validate.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nconst { emailMap: { additionalEmails, primaryEmail, notificationEmail } } = loadState('settings', 'personalInfoParameters', {})\nconst { displayNameChangeSupported } = loadState('settings', 'accountParameters', {})\n\nexport default {\n\tname: 'EmailSection',\n\n\tcomponents: {\n\t\tHeaderBar,\n\t\tEmail,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\taccountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.EMAIL,\n\t\t\tadditionalEmails: additionalEmails.map(properties => ({ ...properties, key: this.generateUniqueKey() })),\n\t\t\tdisplayNameChangeSupported,\n\t\t\tprimaryEmail: { ...primaryEmail, readable: NAME_READABLE_ENUM[primaryEmail.name] },\n\t\t\tsavePrimaryEmailScope,\n\t\t\tnotificationEmail,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tfirstAdditionalEmail() {\n\t\t\tif (this.additionalEmails.length) {\n\t\t\t\treturn this.additionalEmails[0].value\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\n\t\tinputId() {\n\t\t\treturn `account-property-${this.primaryEmail.name}`\n\t\t},\n\n\t\tisValidSection() {\n\t\t\treturn validateEmail(this.primaryEmail.value)\n\t\t\t\t&& this.additionalEmails.map(({ value }) => value).every(validateEmail)\n\t\t},\n\n\t\tprimaryEmailValue: {\n\t\t\tget() {\n\t\t\t\treturn this.primaryEmail.value\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tthis.primaryEmail.value = value\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonAddAdditionalEmail() {\n\t\t\tif (this.isValidSection) {\n\t\t\t\tthis.additionalEmails.push({ value: '', scope: DEFAULT_ADDITIONAL_EMAIL_SCOPE, key: this.generateUniqueKey() })\n\t\t\t}\n\t\t},\n\n\t\tonDeleteAdditionalEmail(index) {\n\t\t\tthis.$delete(this.additionalEmails, index)\n\t\t},\n\n\t\tasync onUpdateEmail() {\n\t\t\tif (this.primaryEmailValue === '' && this.firstAdditionalEmail) {\n\t\t\t\tconst deletedEmail = this.firstAdditionalEmail\n\t\t\t\tawait this.deleteFirstAdditionalEmail()\n\t\t\t\tthis.primaryEmailValue = deletedEmail\n\t\t\t\tawait this.updatePrimaryEmail()\n\t\t\t}\n\t\t},\n\n\t\tasync onUpdateNotificationEmail(email) {\n\t\t\tthis.notificationEmail = email\n\t\t},\n\n\t\tasync updatePrimaryEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryEmail(this.primaryEmailValue)\n\t\t\t\tthis.handleResponse(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to update primary email address'),\n\t\t\t\t\te\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\tasync deleteFirstAdditionalEmail() {\n\t\t\ttry {\n\t\t\t\tconst responseData = await removeAdditionalEmail(this.firstAdditionalEmail)\n\t\t\t\tthis.handleDeleteFirstAdditionalEmail(responseData.ocs?.meta?.status)\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to delete additional email address'),\n\t\t\t\t\te\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\thandleDeleteFirstAdditionalEmail(status) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.$delete(this.additionalEmails, 0)\n\t\t\t} else {\n\t\t\t\tthis.handleResponse(\n\t\t\t\t\t'error',\n\t\t\t\t\tt('settings', 'Unable to delete additional email address'),\n\t\t\t\t\t{}\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\n\t\thandleResponse(status, errorMessage, error) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\n\t\tgenerateUniqueKey() {\n\t\t\treturn Math.random().toString(36).substring(2)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n\n\t.additional-emails-label {\n\t\tdisplay: block;\n\t\tmargin-top: 16px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailSection.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!./EmailSection.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!./EmailSection.vue?vue&type=style&index=0&id=46c7eb7e&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailSection.vue?vue&type=style&index=0&id=46c7eb7e&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EmailSection.vue?vue&type=template&id=46c7eb7e&scoped=true&\"\nimport script from \"./EmailSection.vue?vue&type=script&lang=js&\"\nexport * from \"./EmailSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EmailSection.vue?vue&type=style&index=0&id=46c7eb7e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"46c7eb7e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.primaryEmail.readable,\"handle-scope-change\":_vm.savePrimaryEmailScope,\"is-editable\":true,\"is-multi-value-supported\":true,\"is-valid-section\":_vm.isValidSection,\"scope\":_vm.primaryEmail.scope},on:{\"update:scope\":function($event){return _vm.$set(_vm.primaryEmail, \"scope\", $event)},\"add-additional\":_vm.onAddAdditionalEmail}}),_vm._v(\" \"),(_vm.displayNameChangeSupported)?[_c('Email',{attrs:{\"primary\":true,\"scope\":_vm.primaryEmail.scope,\"email\":_vm.primaryEmail.value,\"active-notification-email\":_vm.notificationEmail},on:{\"update:scope\":function($event){return _vm.$set(_vm.primaryEmail, \"scope\", $event)},\"update:email\":[function($event){return _vm.$set(_vm.primaryEmail, \"value\", $event)},_vm.onUpdateEmail],\"update:activeNotificationEmail\":function($event){_vm.notificationEmail=$event},\"update:active-notification-email\":function($event){_vm.notificationEmail=$event},\"update:notification-email\":_vm.onUpdateNotificationEmail}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.primaryEmail.value || _vm.t('settings', 'No email address set'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.additionalEmails.length)?[_c('em',{staticClass:\"additional-emails-label\"},[_vm._v(_vm._s(_vm.t('settings', 'Additional emails')))]),_vm._v(\" \"),_vm._l((_vm.additionalEmails),function(additionalEmail,index){return _c('Email',{key:additionalEmail.key,attrs:{\"index\":index,\"scope\":additionalEmail.scope,\"email\":additionalEmail.value,\"local-verification-state\":parseInt(additionalEmail.locallyVerified, 10),\"active-notification-email\":_vm.notificationEmail},on:{\"update:scope\":function($event){return _vm.$set(additionalEmail, \"scope\", $event)},\"update:email\":[function($event){return _vm.$set(additionalEmail, \"value\", $event)},_vm.onUpdateEmail],\"update:activeNotificationEmail\":function($event){_vm.notificationEmail=$event},\"update:active-notification-email\":function($event){_vm.notificationEmail=$event},\"update:notification-email\":_vm.onUpdateNotificationEmail,\"delete-additional-email\":function($event){return _vm.onDeleteAdditionalEmail(index)}}})})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"phone\"\n\t\t:placeholder=\"t('settings', 'Your phone number')\"\n\t\ttype=\"tel\"\n\t\t:on-validate=\"onValidate\" />\n</template>\n\n<script>\nimport { isValidPhoneNumber } from 'libphonenumber-js'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst {\n\tdefaultPhoneRegion,\n\tphone,\n} = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'PhoneSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tphone: { ...phone, readable: NAME_READABLE_ENUM[phone.name] },\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\tif (defaultPhoneRegion) {\n\t\t\t\treturn isValidPhoneNumber(value, defaultPhoneRegion)\n\t\t\t}\n\t\t\treturn isValidPhoneNumber(value)\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhoneSection.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!./PhoneSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PhoneSection.vue?vue&type=template&id=4a6cc7c9&\"\nimport script from \"./PhoneSection.vue?vue&type=script&lang=js&\"\nexport * from \"./PhoneSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your phone number'),\"type\":\"tel\",\"on-validate\":_vm.onValidate}},'AccountPropertySection',_vm.phone,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"location\"\n\t\t:placeholder=\"t('settings', 'Your location')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { location } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LocationSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tlocation: { ...location, readable: NAME_READABLE_ENUM[location.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationSection.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!./LocationSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LocationSection.vue?vue&type=template&id=3b6d0ee7&\"\nimport script from \"./LocationSection.vue?vue&type=script&lang=js&\"\nexport * from \"./LocationSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your location')}},'AccountPropertySection',_vm.location,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"website\"\n\t\t:placeholder=\"t('settings', 'Your website')\"\n\t\ttype=\"url\"\n\t\t:on-validate=\"onValidate\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\nimport { validateUrl } from '../../utils/validate.js'\n\nconst { website } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'WebsiteSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\twebsite: { ...website, readable: NAME_READABLE_ENUM[website.name] },\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonValidate(value) {\n\t\t\treturn validateUrl(value)\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebsiteSection.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!./WebsiteSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WebsiteSection.vue?vue&type=template&id=b18d14ae&\"\nimport script from \"./WebsiteSection.vue?vue&type=script&lang=js&\"\nexport * from \"./WebsiteSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your website'),\"type\":\"url\",\"on-validate\":_vm.onValidate}},'AccountPropertySection',_vm.website,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"twitter\"\n\t\t:placeholder=\"t('settings', 'Your Twitter handle')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { twitter } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'TwitterSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttwitter: { ...twitter, readable: NAME_READABLE_ENUM[twitter.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TwitterSection.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!./TwitterSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TwitterSection.vue?vue&type=template&id=203feaef&\"\nimport script from \"./TwitterSection.vue?vue&type=script&lang=js&\"\nexport * from \"./TwitterSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your Twitter handle')}},'AccountPropertySection',_vm.twitter,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"fediverse\"\n\t\t:placeholder=\"t('settings', 'Your handle')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { fediverse } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'FediverseSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfediverse: { ...fediverse, readable: NAME_READABLE_ENUM[fediverse.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FediverseSection.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!./FediverseSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FediverseSection.vue?vue&type=template&id=78433a38&\"\nimport script from \"./FediverseSection.vue?vue&type=script&lang=js&\"\nexport * from \"./FediverseSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your handle')}},'AccountPropertySection',_vm.fediverse,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"language\">\n\t\t<select :id=\"inputId\"\n\t\t\t:placeholder=\"t('settings', 'Language')\"\n\t\t\t@change=\"onLanguageChange\">\n\t\t\t<option v-for=\"commonLanguage in commonLanguages\"\n\t\t\t\t:key=\"commonLanguage.code\"\n\t\t\t\t:selected=\"language.code === commonLanguage.code\"\n\t\t\t\t:value=\"commonLanguage.code\">\n\t\t\t\t{{ commonLanguage.name }}\n\t\t\t</option>\n\t\t\t<option disabled>\n\t\t\t\t──────────\n\t\t\t</option>\n\t\t\t<option v-for=\"otherLanguage in otherLanguages\"\n\t\t\t\t:key=\"otherLanguage.code\"\n\t\t\t\t:selected=\"language.code === otherLanguage.code\"\n\t\t\t\t:value=\"otherLanguage.code\">\n\t\t\t\t{{ otherLanguage.name }}\n\t\t\t</option>\n\t\t</select>\n\n\t\t<a href=\"https://www.transifex.com/nextcloud/nextcloud/\"\n\t\t\ttarget=\"_blank\"\n\t\t\trel=\"noreferrer noopener\">\n\t\t\t<em>{{ t('settings', 'Help translate') }}</em>\n\t\t</a>\n\t</div>\n</template>\n\n<script>\nimport { ACCOUNT_SETTING_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { validateLanguage } from '../../../utils/validate.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nexport default {\n\tname: 'Language',\n\n\tprops: {\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tcommonLanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\totherLanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tlanguage: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialLanguage: this.language,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tallLanguages() {\n\t\t\treturn Object.freeze(\n\t\t\t\t[...this.commonLanguages, ...this.otherLanguages]\n\t\t\t\t\t.reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {})\n\t\t\t)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync onLanguageChange(e) {\n\t\t\tconst language = this.constructLanguage(e.target.value)\n\t\t\tthis.$emit('update:language', language)\n\n\t\t\tif (validateLanguage(language)) {\n\t\t\t\tawait this.updateLanguage(language)\n\t\t\t}\n\t\t},\n\n\t\tasync updateLanguage(language) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_SETTING_PROPERTY_ENUM.LANGUAGE, language.code)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tlanguage,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t\tthis.reloadPage()\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update language'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tconstructLanguage(languageCode) {\n\t\t\treturn {\n\t\t\t\tcode: languageCode,\n\t\t\t\tname: this.allLanguages[languageCode],\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ language, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tthis.initialLanguage = language\n\t\t\t} else {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\n\t\treloadPage() {\n\t\t\tlocation.reload()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.language {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n\n\ta {\n\t\tcolor: var(--color-main-text);\n\t\ttext-decoration: none;\n\t\twidth: max-content;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Language.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!./Language.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!./Language.vue?vue&type=style&index=0&id=5c847b3a&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Language.vue?vue&type=style&index=0&id=5c847b3a&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Language.vue?vue&type=template&id=5c847b3a&scoped=true&\"\nimport script from \"./Language.vue?vue&type=script&lang=js&\"\nexport * from \"./Language.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Language.vue?vue&type=style&index=0&id=5c847b3a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c847b3a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"language\"},[_c('select',{attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.t('settings', 'Language')},on:{\"change\":_vm.onLanguageChange}},[_vm._l((_vm.commonLanguages),function(commonLanguage){return _c('option',{key:commonLanguage.code,domProps:{\"selected\":_vm.language.code === commonLanguage.code,\"value\":commonLanguage.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(commonLanguage.name)+\"\\n\\t\\t\")])}),_vm._v(\" \"),_c('option',{attrs:{\"disabled\":\"\"}},[_vm._v(\"\\n\\t\\t\\t──────────\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.otherLanguages),function(otherLanguage){return _c('option',{key:otherLanguage.code,domProps:{\"selected\":_vm.language.code === otherLanguage.code,\"value\":otherLanguage.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(otherLanguage.name)+\"\\n\\t\\t\")])})],2),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://www.transifex.com/nextcloud/nextcloud/\",\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_c('em',[_vm._v(_vm._s(_vm.t('settings', 'Help translate')))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"propertyReadable\" />\n\n\t\t<template v-if=\"isEditable\">\n\t\t\t<Language :input-id=\"inputId\"\n\t\t\t\t:common-languages=\"commonLanguages\"\n\t\t\t\t:other-languages=\"otherLanguages\"\n\t\t\t\t:language.sync=\"language\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ t('settings', 'No language set') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Language from './Language.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM, ACCOUNT_SETTING_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { languageMap: { activeLanguage, commonLanguages, otherLanguages } } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LanguageSection',\n\n\tcomponents: {\n\t\tLanguage,\n\t\tHeaderBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_SETTING_PROPERTY_READABLE_ENUM.LANGUAGE,\n\t\t\tcommonLanguages,\n\t\t\totherLanguages,\n\t\t\tlanguage: activeLanguage,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-setting-${ACCOUNT_SETTING_PROPERTY_ENUM.LANGUAGE}`\n\t\t},\n\n\t\tisEditable() {\n\t\t\treturn Boolean(this.language)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSection.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!./LanguageSection.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!./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LanguageSection.vue?vue&type=template&id=92685b76&scoped=true&\"\nimport script from \"./LanguageSection.vue?vue&type=script&lang=js&\"\nexport * from \"./LanguageSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LanguageSection.vue?vue&type=style&index=0&id=92685b76&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"92685b76\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),(_vm.isEditable)?[_c('Language',{attrs:{\"input-id\":_vm.inputId,\"common-languages\":_vm.commonLanguages,\"other-languages\":_vm.otherLanguages,\"language\":_vm.language},on:{\"update:language\":function($event){_vm.language=$event}}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'No language set'))+\"\\n\\t\")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"locale\">\n\t\t<select :id=\"inputId\"\n\t\t\t:placeholder=\"t('settings', 'Locale')\"\n\t\t\t@change=\"onLocaleChange\">\n\t\t\t<option v-for=\"currentLocale in localesForLanguage\"\n\t\t\t\t:key=\"currentLocale.code\"\n\t\t\t\t:selected=\"locale.code === currentLocale.code\"\n\t\t\t\t:value=\"currentLocale.code\">\n\t\t\t\t{{ currentLocale.name }}\n\t\t\t</option>\n\t\t\t<option disabled>\n\t\t\t\t──────────\n\t\t\t</option>\n\t\t\t<option v-for=\"currentLocale in otherLocales\"\n\t\t\t\t:key=\"currentLocale.code\"\n\t\t\t\t:selected=\"locale.code === currentLocale.code\"\n\t\t\t\t:value=\"currentLocale.code\">\n\t\t\t\t{{ currentLocale.name }}\n\t\t\t</option>\n\t\t</select>\n\n\t\t<div class=\"example\">\n\t\t\t<Web :size=\"20\" />\n\t\t\t<div class=\"example__text\">\n\t\t\t\t<p>\n\t\t\t\t\t<span>{{ example.date }}</span>\n\t\t\t\t\t<span>{{ example.time }}</span>\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{{ t('settings', 'Week starts on {firstDayOfWeek}', { firstDayOfWeek: this.example.firstDayOfWeek }) }}\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport moment from '@nextcloud/moment'\nimport Web from 'vue-material-design-icons/Web.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { validateLocale } from '../../../utils/validate.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nexport default {\n\tname: 'Locale',\n\n\tcomponents: {\n\t\tWeb,\n\t},\n\n\tprops: {\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tlocale: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tlocalesForLanguage: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\totherLocales: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialLocale: this.locale,\n\t\t\texample: {\n\t\t\t\tdate: moment().format('L'),\n\t\t\t\ttime: moment().format('LTS'),\n\t\t\t\tfirstDayOfWeek: window.dayNames[window.firstDay],\n\t\t\t},\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tallLocales() {\n\t\t\treturn Object.freeze(\n\t\t\t\t[...this.localesForLanguage, ...this.otherLocales]\n\t\t\t\t\t.reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {})\n\t\t\t)\n\t\t},\n\t},\n\n\tcreated() {\n\t\tsetInterval(this.refreshExample, 1000)\n\t},\n\n\tmethods: {\n\t\tasync onLocaleChange(e) {\n\t\t\tconst locale = this.constructLocale(e.target.value)\n\t\t\tthis.$emit('update:locale', locale)\n\n\t\t\tif (validateLocale(locale)) {\n\t\t\t\tawait this.updateLocale(locale)\n\t\t\t}\n\t\t},\n\n\t\tasync updateLocale(locale) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_SETTING_PROPERTY_ENUM.LOCALE, locale.code)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tlocale,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t\tthis.reloadPage()\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update locale'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\tconstructLocale(localeCode) {\n\t\t\treturn {\n\t\t\t\tcode: localeCode,\n\t\t\t\tname: this.allLocales[localeCode],\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ locale, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\tthis.initialLocale = locale\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:locale', this.initialLocale)\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\n\t\trefreshExample() {\n\t\t\tthis.example = {\n\t\t\t\tdate: moment().format('L'),\n\t\t\t\ttime: moment().format('LTS'),\n\t\t\t\tfirstDayOfWeek: window.dayNames[window.firstDay],\n\t\t\t}\n\t\t},\n\n\t\treloadPage() {\n\t\t\tlocation.reload()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.locale {\n\tdisplay: grid;\n\n\tselect {\n\t\twidth: 100%;\n\t}\n}\n\n.example {\n\tmargin: 10px 0;\n\tdisplay: flex;\n\tgap: 0 10px;\n\tcolor: var(--color-text-lighter);\n\n\t&::v-deep .material-design-icon {\n\t\talign-self: flex-start;\n\t\tmargin-top: 2px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Locale.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!./Locale.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!./Locale.vue?vue&type=style&index=0&id=1ac456dc&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Locale.vue?vue&type=style&index=0&id=1ac456dc&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Locale.vue?vue&type=template&id=1ac456dc&scoped=true&\"\nimport script from \"./Locale.vue?vue&type=script&lang=js&\"\nexport * from \"./Locale.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Locale.vue?vue&type=style&index=0&id=1ac456dc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ac456dc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"locale\"},[_c('select',{attrs:{\"id\":_vm.inputId,\"placeholder\":_vm.t('settings', 'Locale')},on:{\"change\":_vm.onLocaleChange}},[_vm._l((_vm.localesForLanguage),function(currentLocale){return _c('option',{key:currentLocale.code,domProps:{\"selected\":_vm.locale.code === currentLocale.code,\"value\":currentLocale.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(currentLocale.name)+\"\\n\\t\\t\")])}),_vm._v(\" \"),_c('option',{attrs:{\"disabled\":\"\"}},[_vm._v(\"\\n\\t\\t\\t──────────\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.otherLocales),function(currentLocale){return _c('option',{key:currentLocale.code,domProps:{\"selected\":_vm.locale.code === currentLocale.code,\"value\":currentLocale.code}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(currentLocale.name)+\"\\n\\t\\t\")])})],2),_vm._v(\" \"),_c('div',{staticClass:\"example\"},[_c('Web',{attrs:{\"size\":20}}),_vm._v(\" \"),_c('div',{staticClass:\"example__text\"},[_c('p',[_c('span',[_vm._v(_vm._s(_vm.example.date))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.example.time))])]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Week starts on {firstDayOfWeek}', { firstDayOfWeek: this.example.firstDayOfWeek }))+\"\\n\\t\\t\\t\")])])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :input-id=\"inputId\"\n\t\t\t:readable=\"propertyReadable\" />\n\n\t\t<template v-if=\"isEditable\">\n\t\t\t<Locale :input-id=\"inputId\"\n\t\t\t\t:locales-for-language=\"localesForLanguage\"\n\t\t\t\t:other-locales=\"otherLocales\"\n\t\t\t\t:locale.sync=\"locale\" />\n\t\t</template>\n\n\t\t<span v-else>\n\t\t\t{{ t('settings', 'No locale set') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport Locale from './Locale.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\n\nimport { ACCOUNT_SETTING_PROPERTY_ENUM, ACCOUNT_SETTING_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { localeMap: { activeLocale, localesForLanguage, otherLocales } } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'LocaleSection',\n\n\tcomponents: {\n\t\tLocale,\n\t\tHeaderBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_SETTING_PROPERTY_READABLE_ENUM.LOCALE,\n\t\t\tlocalesForLanguage,\n\t\t\totherLocales,\n\t\t\tlocale: activeLocale,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tinputId() {\n\t\t\treturn `account-setting-${ACCOUNT_SETTING_PROPERTY_ENUM.LOCALE}`\n\t\t},\n\n\t\tisEditable() {\n\t\t\treturn Boolean(this.locale)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocaleSection.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!./LocaleSection.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!./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LocaleSection.vue?vue&type=template&id=84fca724&scoped=true&\"\nimport script from \"./LocaleSection.vue?vue&type=script&lang=js&\"\nexport * from \"./LocaleSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LocaleSection.vue?vue&type=style&index=0&id=84fca724&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"84fca724\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"input-id\":_vm.inputId,\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),(_vm.isEditable)?[_c('Locale',{attrs:{\"input-id\":_vm.inputId,\"locales-for-language\":_vm.localesForLanguage,\"other-locales\":_vm.otherLocales,\"locale\":_vm.locale},on:{\"update:locale\":function($event){_vm.locale=$event}}})]:_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'No locale set'))+\"\\n\\t\")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.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!./EditProfileAnchorLink.vue?vue&type=script&lang=js&\"","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<a :class=\"{ disabled }\"\n\t\thref=\"#profile-visibility\"\n\t\tv-on=\"$listeners\">\n\t\t<ChevronDownIcon class=\"anchor-icon\"\n\t\t\t:size=\"22\" />\n\t\t{{ t('settings', 'Edit your Profile visibility') }}\n\t</a>\n</template>\n\n<script>\nimport ChevronDownIcon from 'vue-material-design-icons/ChevronDown.vue'\n\nexport default {\n\tname: 'EditProfileAnchorLink',\n\n\tcomponents: {\n\t\tChevronDownIcon,\n\t},\n\n\tprops: {\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\nhtml {\n\tscroll-behavior: smooth;\n\n\t@media screen and (prefers-reduced-motion: reduce) {\n\t\tscroll-behavior: auto;\n\t}\n}\n</style>\n\n<style lang=\"scss\" scoped>\na {\n\tdisplay: block;\n\theight: 44px;\n\twidth: 290px;\n\tline-height: 44px;\n\tpadding: 0 16px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-pill);\n\topacity: 0.4;\n\tbackground-color: transparent;\n\n\t.anchor-icon {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\tmargin-top: 6px;\n\t\tmargin-right: 8px;\n\t}\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\topacity: 0.8;\n\t\tbackground-color: rgba(127, 127, 127, .25);\n\t}\n\n\t&.disabled {\n\t\tpointer-events: none;\n\t}\n}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=style&index=0&id=1caba458&prod&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!./EditProfileAnchorLink.vue?vue&type=style&index=0&id=1caba458&prod&lang=scss&\";\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!./EditProfileAnchorLink.vue?vue&type=style&index=1&id=1caba458&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditProfileAnchorLink.vue?vue&type=style&index=1&id=1caba458&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditProfileAnchorLink.vue?vue&type=template&id=1caba458&scoped=true&\"\nimport script from \"./EditProfileAnchorLink.vue?vue&type=script&lang=js&\"\nexport * from \"./EditProfileAnchorLink.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditProfileAnchorLink.vue?vue&type=style&index=0&id=1caba458&prod&lang=scss&\"\nimport style1 from \"./EditProfileAnchorLink.vue?vue&type=style&index=1&id=1caba458&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1caba458\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',_vm._g({class:{ disabled: _vm.disabled },attrs:{\"href\":\"#profile-visibility\"}},_vm.$listeners),[_c('ChevronDownIcon',{staticClass:\"anchor-icon\",attrs:{\"size\":22}}),_vm._v(\"\\n\\t\"+_vm._s(_vm.t('settings', 'Edit your Profile visibility'))+\"\\n\")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"checkbox-container\">\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"isProfileEnabled\"\n\t\t\t:loading=\"loading\"\n\t\t\t@update:checked=\"saveEnableProfile\">\n\t\t\t{{ t('settings', 'Enable Profile') }}\n\t\t</NcCheckboxRadioSwitch>\n\t</div>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\n\nimport { savePrimaryAccountProperty } from '../../../service/PersonalInfo/PersonalInfoService.js'\nimport { ACCOUNT_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nexport default {\n\tname: 'ProfileCheckbox',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t},\n\n\tprops: {\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tisProfileEnabled: this.profileEnabled,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync saveEnableProfile() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst responseData = await savePrimaryAccountProperty(ACCOUNT_PROPERTY_ENUM.PROFILE_ENABLED, this.isProfileEnabled)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tisProfileEnabled: this.isProfileEnabled,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update profile enabled state'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ isProfileEnabled, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\temit('settings:profile-enabled:updated', isProfileEnabled)\n\t\t\t} else {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t\tthis.loading = false\n\t\t},\n\t},\n}\n</script>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileCheckbox.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!./ProfileCheckbox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileCheckbox.vue?vue&type=template&id=061ac04c&\"\nimport script from \"./ProfileCheckbox.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileCheckbox.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"checkbox-container\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.isProfileEnabled,\"loading\":_vm.loading},on:{\"update:checked\":[function($event){_vm.isProfileEnabled=$event},_vm.saveEnableProfile]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Enable Profile'))+\"\\n\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.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!./ProfilePreviewCard.vue?vue&type=script&lang=js&\"","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<a class=\"preview-card\"\n\t\t:class=\"{ disabled }\"\n\t\t:href=\"profilePageLink\">\n\t\t<NcAvatar class=\"preview-card__avatar\"\n\t\t\t:user=\"userId\"\n\t\t\t:size=\"48\"\n\t\t\t:show-user-status=\"true\"\n\t\t\t:show-user-status-compact=\"false\"\n\t\t\t:disable-menu=\"true\"\n\t\t\t:disable-tooltip=\"true\" />\n\t\t<div class=\"preview-card__header\">\n\t\t\t<span>{{ displayName }}</span>\n\t\t</div>\n\t\t<div class=\"preview-card__footer\">\n\t\t\t<span>{{ organisation }}</span>\n\t\t</div>\n\t</a>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateUrl } from '@nextcloud/router'\n\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\n\nexport default {\n\tname: 'ProfilePreviewCard',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t},\n\n\tprops: {\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\torganisation: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprofileEnabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tuserId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\tprofilePageLink() {\n\t\t\tif (this.profileEnabled) {\n\t\t\t\treturn generateUrl('/u/{userId}', { userId: getCurrentUser().uid })\n\t\t\t}\n\t\t\t// Since an anchor element is used rather than a button for better UX,\n\t\t\t// this hack removes href if the profile is disabled so that disabling pointer-events is not needed to prevent a click from opening a page\n\t\t\t// and to allow the hover event (which disabling pointer-events wouldn't allow) for styling\n\t\t\treturn null\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.preview-card {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: relative;\n\twidth: 290px;\n\theight: 116px;\n\tmargin: 14px auto;\n\tborder-radius: var(--border-radius-large);\n\tbackground-color: var(--color-main-background);\n\tfont-weight: bold;\n\tbox-shadow: 0 2px 9px var(--color-box-shadow);\n\n\t&:hover,\n\t&:focus,\n\t&:active {\n\t\tbox-shadow: 0 2px 12px var(--color-box-shadow);\n\t}\n\n\t&:focus-visible {\n\t\toutline: var(--color-main-text) solid 1px;\n\t\toutline-offset: 3px;\n\t}\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tbox-shadow: 0 0 3px var(--color-box-shadow);\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\t// Override Avatar component position to fix positioning on rerender\n\t\tposition: absolute !important;\n\t\ttop: 40px;\n\t\tleft: 18px;\n\t\tz-index: 1;\n\n\t\t&:not(.avatardiv--unknown) {\n\t\t\tbox-shadow: 0 0 0 3px var(--color-main-background) !important;\n\t\t}\n\t}\n\n\t&__header,\n\t&__footer {\n\t\tposition: relative;\n\t\twidth: auto;\n\n\t\tspan {\n\t\t\tposition: absolute;\n\t\t\tleft: 78px;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow-wrap: anywhere;\n\n\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__header {\n\t\theight: 70px;\n\t\tborder-radius: var(--border-radius-large) var(--border-radius-large) 0 0;\n\t\tbackground-color: var(--color-primary);\n\t\tbackground-image: var(--gradient-primary-background);\n\n\t\tspan {\n\t\t\tbottom: 0;\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tfont-size: 18px;\n\t\t\tfont-weight: bold;\n\t\t\tmargin: 0 4px 8px 0;\n\t\t}\n\t}\n\n\t&__footer {\n\t\theight: 46px;\n\n\t\tspan {\n\t\t\ttop: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: normal;\n\t\t\tmargin: 4px 4px 0 0;\n\t\t\tline-height: 1.3;\n\t\t}\n\t}\n}\n</style>\n","\n import API from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.vue?vue&type=style&index=0&id=61586aa5&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfilePreviewCard.vue?vue&type=style&index=0&id=61586aa5&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfilePreviewCard.vue?vue&type=template&id=61586aa5&scoped=true&\"\nimport script from \"./ProfilePreviewCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfilePreviewCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProfilePreviewCard.vue?vue&type=style&index=0&id=61586aa5&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61586aa5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"preview-card\",class:{ disabled: _vm.disabled },attrs:{\"href\":_vm.profilePageLink}},[_c('NcAvatar',{staticClass:\"preview-card__avatar\",attrs:{\"user\":_vm.userId,\"size\":48,\"show-user-status\":true,\"show-user-status-compact\":false,\"disable-menu\":true,\"disable-tooltip\":true}}),_vm._v(\" \"),_c('div',{staticClass:\"preview-card__header\"},[_c('span',[_vm._v(_vm._s(_vm.displayName))])]),_vm._v(\" \"),_c('div',{staticClass:\"preview-card__footer\"},[_c('span',[_vm._v(_vm._s(_vm.organisation))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021, Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<section>\n\t\t<HeaderBar :readable=\"propertyReadable\" />\n\n\t\t<ProfileCheckbox :profile-enabled.sync=\"profileEnabled\" />\n\n\t\t<ProfilePreviewCard :organisation=\"organisation\"\n\t\t\t:display-name=\"displayName\"\n\t\t\t:profile-enabled=\"profileEnabled\"\n\t\t\t:user-id=\"userId\" />\n\n\t\t<EditProfileAnchorLink :profile-enabled=\"profileEnabled\" />\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport EditProfileAnchorLink from './EditProfileAnchorLink.vue'\nimport HeaderBar from '../shared/HeaderBar.vue'\nimport ProfileCheckbox from './ProfileCheckbox.vue'\nimport ProfilePreviewCard from './ProfilePreviewCard.vue'\n\nimport { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst {\n\torganisation: { value: organisation },\n\tdisplayName: { value: displayName },\n\tprofileEnabled,\n\tuserId,\n} = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'ProfileSection',\n\n\tcomponents: {\n\t\tEditProfileAnchorLink,\n\t\tHeaderBar,\n\t\tProfileCheckbox,\n\t\tProfilePreviewCard,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tpropertyReadable: ACCOUNT_PROPERTY_READABLE_ENUM.PROFILE_ENABLED,\n\t\t\torganisation,\n\t\t\tdisplayName,\n\t\t\tprofileEnabled,\n\t\t\tuserId,\n\t\t}\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tsubscribe('settings:organisation:updated', this.handleOrganisationUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:display-name:updated', this.handleDisplayNameUpdate)\n\t\tunsubscribe('settings:organisation:updated', this.handleOrganisationUpdate)\n\t},\n\n\tmethods: {\n\t\thandleDisplayNameUpdate(displayName) {\n\t\t\tthis.displayName = displayName\n\t\t},\n\n\t\thandleOrganisationUpdate(organisation) {\n\t\t\tthis.organisation = organisation\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 10px 10px;\n\n\t&::v-deep button:disabled {\n\t\tcursor: default;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSection.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!./ProfileSection.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!./ProfileSection.vue?vue&type=style&index=0&id=cf64d964&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileSection.vue?vue&type=style&index=0&id=cf64d964&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfileSection.vue?vue&type=template&id=cf64d964&scoped=true&\"\nimport script from \"./ProfileSection.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileSection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProfileSection.vue?vue&type=style&index=0&id=cf64d964&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf64d964\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('HeaderBar',{attrs:{\"readable\":_vm.propertyReadable}}),_vm._v(\" \"),_c('ProfileCheckbox',{attrs:{\"profile-enabled\":_vm.profileEnabled},on:{\"update:profileEnabled\":function($event){_vm.profileEnabled=$event},\"update:profile-enabled\":function($event){_vm.profileEnabled=$event}}}),_vm._v(\" \"),_c('ProfilePreviewCard',{attrs:{\"organisation\":_vm.organisation,\"display-name\":_vm.displayName,\"profile-enabled\":_vm.profileEnabled,\"user-id\":_vm.userId}}),_vm._v(\" \"),_c('EditProfileAnchorLink',{attrs:{\"profile-enabled\":_vm.profileEnabled}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"organisation\"\n\t\t:placeholder=\"t('settings', 'Your organisation')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { organisation } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'OrganisationSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\torganisation: { ...organisation, readable: NAME_READABLE_ENUM[organisation.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrganisationSection.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!./OrganisationSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OrganisationSection.vue?vue&type=template&id=50ddf4bd&\"\nimport script from \"./OrganisationSection.vue?vue&type=script&lang=js&\"\nexport * from \"./OrganisationSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your organisation')}},'AccountPropertySection',_vm.organisation,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"role\"\n\t\t:placeholder=\"t('settings', 'Your role')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { role } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'RoleSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\trole: { ...role, readable: NAME_READABLE_ENUM[role.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleSection.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!./RoleSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoleSection.vue?vue&type=template&id=3dbe0705&\"\nimport script from \"./RoleSection.vue?vue&type=script&lang=js&\"\nexport * from \"./RoleSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your role')}},'AccountPropertySection',_vm.role,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"headline\"\n\t\t:placeholder=\"t('settings', 'Your headline')\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { headline } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'HeadlineSection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\theadline: { ...headline, readable: NAME_READABLE_ENUM[headline.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeadlineSection.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!./HeadlineSection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HeadlineSection.vue?vue&type=template&id=0f3859ee&\"\nimport script from \"./HeadlineSection.vue?vue&type=script&lang=js&\"\nexport * from \"./HeadlineSection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your headline')}},'AccountPropertySection',_vm.headline,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2022 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<AccountPropertySection v-bind.sync=\"biography\"\n\t\t:placeholder=\"t('settings', 'Your biography')\"\n\t\t:multi-line=\"true\" />\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AccountPropertySection from './shared/AccountPropertySection.vue'\n\nimport { NAME_READABLE_ENUM } from '../../constants/AccountPropertyConstants.js'\n\nconst { biography } = loadState('settings', 'personalInfoParameters', {})\n\nexport default {\n\tname: 'BiographySection',\n\n\tcomponents: {\n\t\tAccountPropertySection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tbiography: { ...biography, readable: NAME_READABLE_ENUM[biography.name] },\n\t\t}\n\t},\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiographySection.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!./BiographySection.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BiographySection.vue?vue&type=template&id=a916ca60&\"\nimport script from \"./BiographySection.vue?vue&type=script&lang=js&\"\nexport * from \"./BiographySection.vue?vue&type=script&lang=js&\"\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 render(){var _vm=this,_c=_vm._self._c;return _c('AccountPropertySection',_vm._b({attrs:{\"placeholder\":_vm.t('settings', 'Your biography'),\"multi-line\":true}},'AccountPropertySection',_vm.biography,false,true))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\n/**\n * Save the visibility of the profile parameter\n *\n * @param {string} paramId the profile parameter ID\n * @param {string} visibility the visibility\n * @return {object}\n */\nexport const saveProfileParameterVisibility = async (paramId, visibility) => {\n\tconst userId = getCurrentUser().uid\n\tconst url = generateOcsUrl('/profile/{userId}', { userId })\n\n\tawait confirmPassword()\n\n\tconst res = await axios.put(url, {\n\t\tparamId,\n\t\tvisibility,\n\t})\n\n\treturn res.data\n}\n\n/**\n * Save profile default\n *\n * @param {boolean} isEnabled the default\n * @return {object}\n */\nexport const saveProfileDefault = async (isEnabled) => {\n\t// Convert to string for compatibility\n\tisEnabled = isEnabled ? '1' : '0'\n\n\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\tappId: 'settings',\n\t\tkey: 'profile_enabled_by_default',\n\t})\n\n\tawait confirmPassword()\n\n\tconst res = await axios.post(url, {\n\t\tvalue: isEnabled,\n\t})\n\n\treturn res.data\n}\n","/**\n * @copyright 2021 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/*\n * SYNC to be kept in sync with `core/Db/ProfileConfig.php`\n */\n\n/** Enum of profile visibility constants */\nexport const VISIBILITY_ENUM = Object.freeze({\n\tSHOW: 'show',\n\tSHOW_USERS_ONLY: 'show_users_only',\n\tHIDE: 'hide',\n})\n\n/**\n * Enum of profile visibility constants to properties\n */\nexport const VISIBILITY_PROPERTY_ENUM = Object.freeze({\n\t[VISIBILITY_ENUM.SHOW]: {\n\t\tname: VISIBILITY_ENUM.SHOW,\n\t\tlabel: t('settings', 'Show to everyone'),\n\t},\n\t[VISIBILITY_ENUM.SHOW_USERS_ONLY]: {\n\t\tname: VISIBILITY_ENUM.SHOW_USERS_ONLY,\n\t\tlabel: t('settings', 'Show to logged in users only'),\n\t},\n\t[VISIBILITY_ENUM.HIDE]: {\n\t\tname: VISIBILITY_ENUM.HIDE,\n\t\tlabel: t('settings', 'Hide'),\n\t},\n})\n","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<div class=\"visibility-container\"\n\t\t:class=\"{ disabled }\">\n\t\t<label :for=\"inputId\">\n\t\t\t{{ displayId }}\n\t\t</label>\n\t\t<NcSelect :input-id=\"inputId\"\n\t\t\tclass=\"visibility-container__select\"\n\t\t\t:clearable=\"false\"\n\t\t\t:options=\"visibilityOptions\"\n\t\t\t:value=\"visibilityObject\"\n\t\t\t@option:selected=\"onVisibilityChange\" />\n\t</div>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport { saveProfileParameterVisibility } from '../../../service/ProfileService.js'\nimport { VISIBILITY_PROPERTY_ENUM } from '../../../constants/ProfileConstants.js'\nimport { handleError } from '../../../utils/handlers.js'\n\nconst { profileEnabled } = loadState('settings', 'personalInfoParameters', false)\n\nexport default {\n\tname: 'VisibilityDropdown',\n\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\tparamId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tdisplayId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvisibility: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tinitialVisibility: this.visibility,\n\t\t\tprofileEnabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\tinputId() {\n\t\t\treturn `profile-visibility-${this.paramId}`\n\t\t},\n\n\t\tvisibilityObject() {\n\t\t\treturn VISIBILITY_PROPERTY_ENUM[this.visibility]\n\t\t},\n\n\t\tvisibilityOptions() {\n\t\t\treturn Object.values(VISIBILITY_PROPERTY_ENUM)\n\t\t},\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tmethods: {\n\t\tasync onVisibilityChange(visibilityObject) {\n\t\t\t// This check is needed as the argument is null when selecting the same option\n\t\t\tif (visibilityObject !== null) {\n\t\t\t\tconst { name: visibility } = visibilityObject\n\t\t\t\tthis.$emit('update:visibility', visibility)\n\n\t\t\t\tif (visibility !== '') {\n\t\t\t\t\tawait this.updateVisibility(visibility)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync updateVisibility(visibility) {\n\t\t\ttry {\n\t\t\t\tconst responseData = await saveProfileParameterVisibility(this.paramId, visibility)\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tvisibility,\n\t\t\t\t\tstatus: responseData.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('settings', 'Unable to update visibility of {displayId}', { displayId: this.displayId }),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\thandleResponse({ visibility, status, errorMessage, error }) {\n\t\t\tif (status === 'ok') {\n\t\t\t\t// Ensure that local state reflects server state\n\t\t\t\tthis.initialVisibility = visibility\n\t\t\t} else {\n\t\t\t\thandleError(error, errorMessage)\n\t\t\t}\n\t\t},\n\n\t\thandleProfileEnabledUpdate(profileEnabled) {\n\t\t\tthis.profileEnabled = profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.visibility-container {\n\tdisplay: flex;\n\twidth: max-content;\n\n\t&.disabled {\n\t\tfilter: grayscale(1);\n\t\topacity: 0.5;\n\t\tcursor: default;\n\t\tpointer-events: none;\n\n\t\t& *,\n\t\t&::v-deep * {\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n\n\tlabel {\n\t\tcolor: var(--color-text-lighter);\n\t\twidth: 150px;\n\t\tline-height: 50px;\n\t}\n\n\t&__select {\n\t\twidth: 270px;\n\t\tmax-width: 40vw;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisibilityDropdown.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!./VisibilityDropdown.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!./VisibilityDropdown.vue?vue&type=style&index=0&id=b13d20da&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisibilityDropdown.vue?vue&type=style&index=0&id=b13d20da&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VisibilityDropdown.vue?vue&type=template&id=b13d20da&scoped=true&\"\nimport script from \"./VisibilityDropdown.vue?vue&type=script&lang=js&\"\nexport * from \"./VisibilityDropdown.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VisibilityDropdown.vue?vue&type=style&index=0&id=b13d20da&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b13d20da\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"visibility-container\",class:{ disabled: _vm.disabled }},[_c('label',{attrs:{\"for\":_vm.inputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.displayId)+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"visibility-container__select\",attrs:{\"input-id\":_vm.inputId,\"clearable\":false,\"options\":_vm.visibilityOptions,\"value\":_vm.visibilityObject},on:{\"option:selected\":_vm.onVisibilityChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n\t- @copyright 2021 Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @author Christopher Ng <chrng8@gmail.com>\n\t-\n\t- @license GNU AGPL version 3 or any later version\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n-->\n\n<template>\n\t<!-- TODO remove this inline margin placeholder once the settings layout is updated -->\n\t<section id=\"profile-visibility\"\n\t\t:style=\"{ marginLeft }\">\n\t\t<HeaderBar :is-heading=\"true\" :readable=\"heading\" />\n\n\t\t<em :class=\"{ disabled }\">\n\t\t\t{{ t('settings', 'The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.') }}\n\t\t</em>\n\n\t\t<div class=\"visibility-dropdowns\"\n\t\t\t:style=\"{\n\t\t\t\tgridTemplateRows: `repeat(${rows}, 44px)`,\n\t\t\t}\">\n\t\t\t<VisibilityDropdown v-for=\"param in visibilityParams\"\n\t\t\t\t:key=\"param.id\"\n\t\t\t\t:param-id=\"param.id\"\n\t\t\t\t:display-id=\"param.displayId\"\n\t\t\t\t:visibility.sync=\"param.visibility\" />\n\t\t</div>\n\t</section>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\n\nimport HeaderBar from '../shared/HeaderBar.vue'\nimport VisibilityDropdown from './VisibilityDropdown.vue'\nimport { PROFILE_READABLE_ENUM } from '../../../constants/AccountPropertyConstants.js'\n\nconst { profileConfig } = loadState('settings', 'profileParameters', {})\nconst { profileEnabled } = loadState('settings', 'personalInfoParameters', false)\n\nconst compareParams = (a, b) => {\n\tif (a.appId === b.appId || (a.appId !== 'core' && b.appId !== 'core')) {\n\t\treturn a.displayId.localeCompare(b.displayId)\n\t} else if (a.appId === 'core') {\n\t\treturn 1\n\t} else {\n\t\treturn -1\n\t}\n}\n\nexport default {\n\tname: 'ProfileVisibilitySection',\n\n\tcomponents: {\n\t\tHeaderBar,\n\t\tVisibilityDropdown,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\theading: PROFILE_READABLE_ENUM.PROFILE_VISIBILITY,\n\t\t\tprofileEnabled,\n\t\t\tvisibilityParams: Object.entries(profileConfig)\n\t\t\t\t.map(([paramId, { appId, displayId, visibility }]) => ({ id: paramId, appId, displayId, visibility }))\n\t\t\t\t.sort(compareParams),\n\t\t\t// TODO remove this when not used once the settings layout is updated\n\t\t\tmarginLeft: window.matchMedia('(min-width: 1600px)').matches\n\t\t\t\t? window.getComputedStyle(document.getElementById('vue-avatar-section')).getPropertyValue('width').trim()\n\t\t\t\t: '0px',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdisabled() {\n\t\t\treturn !this.profileEnabled\n\t\t},\n\n\t\trows() {\n\t\t\treturn Math.ceil(this.visibilityParams.length / 2)\n\t\t},\n\t},\n\n\tmounted() {\n\t\tsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t\t// TODO remove this when not used once the settings layout is updated\n\t\twindow.onresize = () => {\n\t\t\tthis.marginLeft = window.matchMedia('(min-width: 1600px)').matches\n\t\t\t\t? window.getComputedStyle(document.getElementById('vue-avatar-section')).getPropertyValue('width').trim()\n\t\t\t\t: '0px'\n\t\t}\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('settings:profile-enabled:updated', this.handleProfileEnabledUpdate)\n\t},\n\n\tmethods: {\n\t\thandleProfileEnabledUpdate(profileEnabled) {\n\t\t\tthis.profileEnabled = profileEnabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\nsection {\n\tpadding: 30px;\n\tmax-width: 900px;\n\twidth: 100%;\n\n\tem {\n\t\tdisplay: block;\n\t\tmargin: 16px 0;\n\n\t\t&.disabled {\n\t\t\tfilter: grayscale(1);\n\t\t\topacity: 0.5;\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\n\t\t\t& *,\n\t\t\t&::v-deep * {\n\t\t\t\tcursor: default;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t.visibility-dropdowns {\n\t\tdisplay: grid;\n\t\tgap: 10px 40px;\n\t}\n\n\t@media (min-width: 1200px) {\n\t\twidth: 940px;\n\n\t\t.visibility-dropdowns {\n\t\t\tgrid-auto-flow: column;\n\t\t}\n\t}\n\n\t@media (max-width: 1200px) {\n\t\twidth: 470px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileVisibilitySection.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!./ProfileVisibilitySection.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!./ProfileVisibilitySection.vue?vue&type=style&index=0&id=a07dbf96&prod&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileVisibilitySection.vue?vue&type=style&index=0&id=a07dbf96&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ProfileVisibilitySection.vue?vue&type=template&id=a07dbf96&scoped=true&\"\nimport script from \"./ProfileVisibilitySection.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileVisibilitySection.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProfileVisibilitySection.vue?vue&type=style&index=0&id=a07dbf96&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a07dbf96\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{style:({ marginLeft: _vm.marginLeft }),attrs:{\"id\":\"profile-visibility\"}},[_c('HeaderBar',{attrs:{\"is-heading\":true,\"readable\":_vm.heading}}),_vm._v(\" \"),_c('em',{class:{ disabled: _vm.disabled }},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"visibility-dropdowns\",style:({\n\t\t\tgridTemplateRows: `repeat(${_vm.rows}, 44px)`,\n\t\t})},_vm._l((_vm.visibilityParams),function(param){return _c('VisibilityDropdown',{key:param.id,attrs:{\"param-id\":param.id,\"display-id\":param.displayId,\"visibility\":param.visibility},on:{\"update:visibility\":function($event){return _vm.$set(param, \"visibility\", $event)}}})}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2021, Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport '@nextcloud/dialogs/dist/index.css'\n\nimport AvatarSection from './components/PersonalInfo/AvatarSection.vue'\nimport DetailsSection from './components/PersonalInfo/DetailsSection.vue'\nimport DisplayNameSection from './components/PersonalInfo/DisplayNameSection.vue'\nimport EmailSection from './components/PersonalInfo/EmailSection/EmailSection.vue'\nimport PhoneSection from './components/PersonalInfo/PhoneSection.vue'\nimport LocationSection from './components/PersonalInfo/LocationSection.vue'\nimport WebsiteSection from './components/PersonalInfo/WebsiteSection.vue'\nimport TwitterSection from './components/PersonalInfo/TwitterSection.vue'\nimport FediverseSection from './components/PersonalInfo/FediverseSection.vue'\nimport LanguageSection from './components/PersonalInfo/LanguageSection/LanguageSection.vue'\nimport LocaleSection from './components/PersonalInfo/LocaleSection/LocaleSection.vue'\nimport ProfileSection from './components/PersonalInfo/ProfileSection/ProfileSection.vue'\nimport OrganisationSection from './components/PersonalInfo/OrganisationSection.vue'\nimport RoleSection from './components/PersonalInfo/RoleSection.vue'\nimport HeadlineSection from './components/PersonalInfo/HeadlineSection.vue'\nimport BiographySection from './components/PersonalInfo/BiographySection.vue'\nimport ProfileVisibilitySection from './components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue'\n\n__webpack_nonce__ = btoa(getRequestToken())\n\nconst profileEnabledGlobally = loadState('settings', 'profileEnabledGlobally', true)\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst AvatarView = Vue.extend(AvatarSection)\nconst DetailsView = Vue.extend(DetailsSection)\nconst DisplayNameView = Vue.extend(DisplayNameSection)\nconst EmailView = Vue.extend(EmailSection)\nconst PhoneView = Vue.extend(PhoneSection)\nconst LocationView = Vue.extend(LocationSection)\nconst WebsiteView = Vue.extend(WebsiteSection)\nconst TwitterView = Vue.extend(TwitterSection)\nconst FediverseView = Vue.extend(FediverseSection)\nconst LanguageView = Vue.extend(LanguageSection)\nconst LocaleView = Vue.extend(LocaleSection)\n\nnew AvatarView().$mount('#vue-avatar-section')\nnew DetailsView().$mount('#vue-details-section')\nnew DisplayNameView().$mount('#vue-displayname-section')\nnew EmailView().$mount('#vue-email-section')\nnew PhoneView().$mount('#vue-phone-section')\nnew LocationView().$mount('#vue-location-section')\nnew WebsiteView().$mount('#vue-website-section')\nnew TwitterView().$mount('#vue-twitter-section')\nnew FediverseView().$mount('#vue-fediverse-section')\nnew LanguageView().$mount('#vue-language-section')\nnew LocaleView().$mount('#vue-locale-section')\n\nif (profileEnabledGlobally) {\n\tconst ProfileView = Vue.extend(ProfileSection)\n\tconst OrganisationView = Vue.extend(OrganisationSection)\n\tconst RoleView = Vue.extend(RoleSection)\n\tconst HeadlineView = Vue.extend(HeadlineSection)\n\tconst BiographyView = Vue.extend(BiographySection)\n\tconst ProfileVisibilityView = Vue.extend(ProfileVisibilitySection)\n\n\tnew ProfileView().$mount('#vue-profile-section')\n\tnew OrganisationView().$mount('#vue-organisation-section')\n\tnew RoleView().$mount('#vue-role-section')\n\tnew HeadlineView().$mount('#vue-headline-section')\n\tnew BiographyView().$mount('#vue-biography-section')\n\tnew ProfileVisibilityView().$mount('#vue-profile-visibility-section')\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, \"section[data-v-04cca3b6]{grid-row:1/3}.avatar__container[data-v-04cca3b6]{margin:0 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px 0;width:300px}.avatar__container span[data-v-04cca3b6]{color:var(--color-text-lighter)}.avatar__preview[data-v-04cca3b6]{display:flex;justify-content:center;align-items:center;width:180px;height:180px}.avatar__buttons[data-v-04cca3b6]{display:flex;gap:0 10px}.avatar__cropper[data-v-04cca3b6]{width:300px;height:300px;overflow:hidden}.avatar__cropper-buttons[data-v-04cca3b6]{width:100%;display:flex;justify-content:space-between}.avatar__cropper[data-v-04cca3b6] .cropper-view-box{border-radius:50%}input[type=file][data-v-04cca3b6]{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/AvatarSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CAGA,oCACC,aAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,UAAA,CACA,WAAA,CAEA,yCACC,+BAAA,CAIF,kCACC,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,WAAA,CACA,YAAA,CAGD,kCACC,YAAA,CACA,UAAA,CAGD,kCACC,WAAA,CACA,YAAA,CACA,eAAA,CAEA,0CACC,UAAA,CACA,YAAA,CACA,6BAAA,CAGD,oDACC,iBAAA,CAKH,kCACC,YAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tgrid-row: 1/3;\\n}\\n.avatar {\\n\\t&__container {\\n\\t\\tmargin: 0 auto;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\tgap: 16px 0;\\n\\t\\twidth: 300px;\\n\\n\\t\\tspan {\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t\\twidth: 180px;\\n\\t\\theight: 180px;\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 10px;\\n\\t}\\n\\n\\t&__cropper {\\n\\t\\twidth: 300px;\\n\\t\\theight: 300px;\\n\\t\\toverflow: hidden;\\n\\n\\t\\t&-buttons {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .cropper-view-box {\\n\\t\\t\\tborder-radius: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\\ninput[type=\\\"file\\\"] {\\n\\tdisplay: none;\\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, \".details[data-v-1ab46e68]{display:flex;flex-direction:column;margin:10px 32px 10px 0;gap:16px 0;color:var(--color-text-lighter)}.details__groups[data-v-1ab46e68],.details__quota[data-v-1ab46e68]{display:flex;gap:0 10px}.details__groups-info[data-v-1ab46e68],.details__quota-info[data-v-1ab46e68]{display:flex;flex-direction:column;width:100%;gap:4px 0}.details__groups-list[data-v-1ab46e68],.details__quota-list[data-v-1ab46e68]{font-weight:bold}.details__groups[data-v-1ab46e68] .material-design-icon,.details__quota[data-v-1ab46e68] .material-design-icon{align-self:flex-start;margin-top:2px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/DetailsSection.vue\"],\"names\":[],\"mappings\":\"AACA,0BACC,YAAA,CACA,qBAAA,CACA,uBAAA,CACA,UAAA,CACA,+BAAA,CAEA,mEAEC,YAAA,CACA,UAAA,CAEA,6EACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA,CAGD,6EACC,gBAAA,CAGD,+GACC,qBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.details {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin: 10px 32px 10px 0;\\n\\tgap: 16px 0;\\n\\tcolor: var(--color-text-lighter);\\n\\n\\t&__groups,\\n\\t&__quota {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 10px;\\n\\n\\t\\t&-info {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tgap: 4px 0;\\n\\t\\t}\\n\\n\\t\\t&-list {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .material-design-icon {\\n\\t\\t\\talign-self: flex-start;\\n\\t\\t\\tmargin-top: 2px;\\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, \".email[data-v-5ff85d38]{display:grid;align-items:center}.email input[data-v-5ff85d38]{grid-area:1/1;width:100%}.email .email__actions-container[data-v-5ff85d38]{grid-area:1/1;justify-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px}.email .email__actions-container .email__actions[data-v-5ff85d38]{opacity:.4 !important}.email .email__actions-container .email__actions[data-v-5ff85d38]:hover,.email .email__actions-container .email__actions[data-v-5ff85d38]:focus,.email .email__actions-container .email__actions[data-v-5ff85d38]:active{opacity:.8 !important}.email .email__actions-container .email__actions[data-v-5ff85d38] button{height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}.email__helper-text-message[data-v-5ff85d38]{padding:4px 0;display:flex;align-items:center}.email__helper-text-message__icon[data-v-5ff85d38]{margin-right:8px;align-self:start;margin-top:4px}.email__helper-text-message--error[data-v-5ff85d38]{color:var(--color-error)}.fade-enter[data-v-5ff85d38],.fade-leave-to[data-v-5ff85d38]{opacity:0}.fade-enter-active[data-v-5ff85d38]{transition:opacity 200ms ease-out}.fade-leave-active[data-v-5ff85d38]{transition:opacity 300ms ease-out}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/EmailSection/Email.vue\"],\"names\":[],\"mappings\":\"AACA,wBACC,YAAA,CACA,kBAAA,CAEA,8BACC,aAAA,CACA,UAAA,CAGD,kDACC,aAAA,CACA,qBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CAEA,kEACC,qBAAA,CAEA,yNAGC,qBAAA,CAGD,yEACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAKH,6CACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,mDACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,oDACC,wBAAA,CAKH,6DAEC,SAAA,CAGD,oCACC,iCAAA,CAGD,oCACC,iCAAA\",\"sourcesContent\":[\"\\n.email {\\n\\tdisplay: grid;\\n\\talign-items: center;\\n\\n\\tinput {\\n\\t\\tgrid-area: 1 / 1;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t.email__actions-container {\\n\\t\\tgrid-area: 1 / 1;\\n\\t\\tjustify-self: flex-end;\\n\\t\\theight: 30px;\\n\\n\\t\\tdisplay: flex;\\n\\t\\tgap: 0 2px;\\n\\t\\tmargin-right: 5px;\\n\\n\\t\\t.email__actions {\\n\\t\\t\\topacity: 0.4 !important;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\topacity: 0.8 !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&::v-deep button {\\n\\t\\t\\t\\theight: 30px !important;\\n\\t\\t\\t\\tmin-height: 30px !important;\\n\\t\\t\\t\\twidth: 30px !important;\\n\\t\\t\\t\\tmin-width: 30px !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__helper-text-message {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\talign-self: start;\\n\\t\\t\\tmargin-top: 4px;\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tcolor: var(--color-error);\\n\\t\\t}\\n\\t}\\n}\\n\\n.fade-enter,\\n.fade-leave-to {\\n\\topacity: 0;\\n}\\n\\n.fade-enter-active {\\n\\ttransition: opacity 200ms ease-out;\\n}\\n\\n.fade-leave-active {\\n\\ttransition: opacity 300ms ease-out;\\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, \"section[data-v-46c7eb7e]{padding:10px 10px}section[data-v-46c7eb7e] button:disabled{cursor:default}section .additional-emails-label[data-v-46c7eb7e]{display:block;margin-top:16px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,kDACC,aAAA,CACA,eAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.additional-emails-label {\\n\\t\\tdisplay: block;\\n\\t\\tmargin-top: 16px;\\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, \".language[data-v-5c847b3a]{display:grid}.language select[data-v-5c847b3a]{width:100%}.language a[data-v-5c847b3a]{color:var(--color-main-text);text-decoration:none;width:max-content}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,YAAA,CAEA,kCACC,UAAA,CAGD,6BACC,4BAAA,CACA,oBAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n.language {\\n\\tdisplay: grid;\\n\\n\\tselect {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\ta {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\ttext-decoration: none;\\n\\t\\twidth: max-content;\\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, \"section[data-v-92685b76]{padding:10px 10px}section[data-v-92685b76] button:disabled{cursor:default}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LanguageSection/LanguageSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\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, \".locale[data-v-1ac456dc]{display:grid}.locale select[data-v-1ac456dc]{width:100%}.example[data-v-1ac456dc]{margin:10px 0;display:flex;gap:0 10px;color:var(--color-text-lighter)}.example[data-v-1ac456dc] .material-design-icon{align-self:flex-start;margin-top:2px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/Locale.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CAEA,gCACC,UAAA,CAIF,0BACC,aAAA,CACA,YAAA,CACA,UAAA,CACA,+BAAA,CAEA,gDACC,qBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.locale {\\n\\tdisplay: grid;\\n\\n\\tselect {\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\\n.example {\\n\\tmargin: 10px 0;\\n\\tdisplay: flex;\\n\\tgap: 0 10px;\\n\\tcolor: var(--color-text-lighter);\\n\\n\\t&::v-deep .material-design-icon {\\n\\t\\talign-self: flex-start;\\n\\t\\tmargin-top: 2px;\\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, \"section[data-v-84fca724]{padding:10px 10px}section[data-v-84fca724] button:disabled{cursor:default}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/LocaleSection/LocaleSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\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, \"html{scroll-behavior:smooth}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue\"],\"names\":[],\"mappings\":\"AACA,KACC,sBAAA,CAEA,mDAHD,KAIE,oBAAA,CAAA\",\"sourcesContent\":[\"\\nhtml {\\n\\tscroll-behavior: smooth;\\n\\n\\t@media screen and (prefers-reduced-motion: reduce) {\\n\\t\\tscroll-behavior: auto;\\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, \"a[data-v-1caba458]{display:block;height:44px;width:290px;line-height:44px;padding:0 16px;margin:14px auto;border-radius:var(--border-radius-pill);opacity:.4;background-color:rgba(0,0,0,0)}a .anchor-icon[data-v-1caba458]{display:inline-block;vertical-align:middle;margin-top:6px;margin-right:8px}a[data-v-1caba458]:hover,a[data-v-1caba458]:focus,a[data-v-1caba458]:active{opacity:.8;background-color:rgba(127,127,127,.25)}a.disabled[data-v-1caba458]{pointer-events:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue\"],\"names\":[],\"mappings\":\"AACA,mBACC,aAAA,CACA,WAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,uCAAA,CACA,UAAA,CACA,8BAAA,CAEA,gCACC,oBAAA,CACA,qBAAA,CACA,cAAA,CACA,gBAAA,CAGD,4EAGC,UAAA,CACA,sCAAA,CAGD,4BACC,mBAAA\",\"sourcesContent\":[\"\\na {\\n\\tdisplay: block;\\n\\theight: 44px;\\n\\twidth: 290px;\\n\\tline-height: 44px;\\n\\tpadding: 0 16px;\\n\\tmargin: 14px auto;\\n\\tborder-radius: var(--border-radius-pill);\\n\\topacity: 0.4;\\n\\tbackground-color: transparent;\\n\\n\\t.anchor-icon {\\n\\t\\tdisplay: inline-block;\\n\\t\\tvertical-align: middle;\\n\\t\\tmargin-top: 6px;\\n\\t\\tmargin-right: 8px;\\n\\t}\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\topacity: 0.8;\\n\\t\\tbackground-color: rgba(127, 127, 127, .25);\\n\\t}\\n\\n\\t&.disabled {\\n\\t\\tpointer-events: none;\\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, \".preview-card[data-v-61586aa5]{display:flex;flex-direction:column;position:relative;width:290px;height:116px;margin:14px auto;border-radius:var(--border-radius-large);background-color:var(--color-main-background);font-weight:bold;box-shadow:0 2px 9px var(--color-box-shadow)}.preview-card[data-v-61586aa5]:hover,.preview-card[data-v-61586aa5]:focus,.preview-card[data-v-61586aa5]:active{box-shadow:0 2px 12px var(--color-box-shadow)}.preview-card[data-v-61586aa5]:focus-visible{outline:var(--color-main-text) solid 1px;outline-offset:3px}.preview-card.disabled[data-v-61586aa5]{filter:grayscale(1);opacity:.5;cursor:default;box-shadow:0 0 3px var(--color-box-shadow)}.preview-card.disabled *[data-v-61586aa5],.preview-card.disabled[data-v-61586aa5] *{cursor:default}.preview-card__avatar[data-v-61586aa5]{position:absolute !important;top:40px;left:18px;z-index:1}.preview-card__avatar[data-v-61586aa5]:not(.avatardiv--unknown){box-shadow:0 0 0 3px var(--color-main-background) !important}.preview-card__header[data-v-61586aa5],.preview-card__footer[data-v-61586aa5]{position:relative;width:auto}.preview-card__header span[data-v-61586aa5],.preview-card__footer span[data-v-61586aa5]{position:absolute;left:78px;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}@supports(-webkit-line-clamp: 2){.preview-card__header span[data-v-61586aa5],.preview-card__footer span[data-v-61586aa5]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.preview-card__header[data-v-61586aa5]{height:70px;border-radius:var(--border-radius-large) var(--border-radius-large) 0 0;background-color:var(--color-primary);background-image:var(--gradient-primary-background)}.preview-card__header span[data-v-61586aa5]{bottom:0;color:var(--color-primary-text);font-size:18px;font-weight:bold;margin:0 4px 8px 0}.preview-card__footer[data-v-61586aa5]{height:46px}.preview-card__footer span[data-v-61586aa5]{top:0;color:var(--color-text-maxcontrast);font-size:14px;font-weight:normal;margin:4px 4px 0 0;line-height:1.3}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,WAAA,CACA,YAAA,CACA,gBAAA,CACA,wCAAA,CACA,6CAAA,CACA,gBAAA,CACA,4CAAA,CAEA,gHAGC,6CAAA,CAGD,6CACC,wCAAA,CACA,kBAAA,CAGD,wCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,0CAAA,CAEA,oFAEC,cAAA,CAIF,uCAEC,4BAAA,CACA,QAAA,CACA,SAAA,CACA,SAAA,CAEA,gEACC,4DAAA,CAIF,8EAEC,iBAAA,CACA,UAAA,CAEA,wFACC,iBAAA,CACA,SAAA,CACA,eAAA,CACA,sBAAA,CACA,sBAAA,CAEA,iCAPD,wFAQE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,uCACC,WAAA,CACA,uEAAA,CACA,qCAAA,CACA,mDAAA,CAEA,4CACC,QAAA,CACA,+BAAA,CACA,cAAA,CACA,gBAAA,CACA,kBAAA,CAIF,uCACC,WAAA,CAEA,4CACC,KAAA,CACA,mCAAA,CACA,cAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.preview-card {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tposition: relative;\\n\\twidth: 290px;\\n\\theight: 116px;\\n\\tmargin: 14px auto;\\n\\tborder-radius: var(--border-radius-large);\\n\\tbackground-color: var(--color-main-background);\\n\\tfont-weight: bold;\\n\\tbox-shadow: 0 2px 9px var(--color-box-shadow);\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\tbox-shadow: 0 2px 12px var(--color-box-shadow);\\n\\t}\\n\\n\\t&:focus-visible {\\n\\t\\toutline: var(--color-main-text) solid 1px;\\n\\t\\toutline-offset: 3px;\\n\\t}\\n\\n\\t&.disabled {\\n\\t\\tfilter: grayscale(1);\\n\\t\\topacity: 0.5;\\n\\t\\tcursor: default;\\n\\t\\tbox-shadow: 0 0 3px var(--color-box-shadow);\\n\\n\\t\\t& *,\\n\\t\\t&::v-deep * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t}\\n\\n\\t&__avatar {\\n\\t\\t// Override Avatar component position to fix positioning on rerender\\n\\t\\tposition: absolute !important;\\n\\t\\ttop: 40px;\\n\\t\\tleft: 18px;\\n\\t\\tz-index: 1;\\n\\n\\t\\t&:not(.avatardiv--unknown) {\\n\\t\\t\\tbox-shadow: 0 0 0 3px var(--color-main-background) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: relative;\\n\\t\\twidth: auto;\\n\\n\\t\\tspan {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: 78px;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\n\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__header {\\n\\t\\theight: 70px;\\n\\t\\tborder-radius: var(--border-radius-large) var(--border-radius-large) 0 0;\\n\\t\\tbackground-color: var(--color-primary);\\n\\t\\tbackground-image: var(--gradient-primary-background);\\n\\n\\t\\tspan {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\tfont-size: 18px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin: 0 4px 8px 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&__footer {\\n\\t\\theight: 46px;\\n\\n\\t\\tspan {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tfont-size: 14px;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tmargin: 4px 4px 0 0;\\n\\t\\t\\tline-height: 1.3;\\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, \"section[data-v-cf64d964]{padding:10px 10px}section[data-v-cf64d964] button:disabled{cursor:default}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\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, \"section[data-v-a07dbf96]{padding:30px;max-width:900px;width:100%}section em[data-v-a07dbf96]{display:block;margin:16px 0}section em.disabled[data-v-a07dbf96]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}section em.disabled *[data-v-a07dbf96],section em.disabled[data-v-a07dbf96] *{cursor:default;pointer-events:none}section .visibility-dropdowns[data-v-a07dbf96]{display:grid;gap:10px 40px}@media(min-width: 1200px){section[data-v-a07dbf96]{width:940px}section .visibility-dropdowns[data-v-a07dbf96]{grid-auto-flow:column}}@media(max-width: 1200px){section[data-v-a07dbf96]{width:470px}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,YAAA,CACA,eAAA,CACA,UAAA,CAEA,4BACC,aAAA,CACA,aAAA,CAEA,qCACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,8EAEC,cAAA,CACA,mBAAA,CAKH,+CACC,YAAA,CACA,aAAA,CAGD,0BA5BD,yBA6BE,WAAA,CAEA,+CACC,qBAAA,CAAA,CAIF,0BApCD,yBAqCE,WAAA,CAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 30px;\\n\\tmax-width: 900px;\\n\\twidth: 100%;\\n\\n\\tem {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: 16px 0;\\n\\n\\t\\t&.disabled {\\n\\t\\t\\tfilter: grayscale(1);\\n\\t\\t\\topacity: 0.5;\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tpointer-events: none;\\n\\n\\t\\t\\t& *,\\n\\t\\t\\t&::v-deep * {\\n\\t\\t\\t\\tcursor: default;\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t.visibility-dropdowns {\\n\\t\\tdisplay: grid;\\n\\t\\tgap: 10px 40px;\\n\\t}\\n\\n\\t@media (min-width: 1200px) {\\n\\t\\twidth: 940px;\\n\\n\\t\\t.visibility-dropdowns {\\n\\t\\t\\tgrid-auto-flow: column;\\n\\t\\t}\\n\\t}\\n\\n\\t@media (max-width: 1200px) {\\n\\t\\twidth: 470px;\\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, \".visibility-container[data-v-b13d20da]{display:flex;width:max-content}.visibility-container.disabled[data-v-b13d20da]{filter:grayscale(1);opacity:.5;cursor:default;pointer-events:none}.visibility-container.disabled *[data-v-b13d20da],.visibility-container.disabled[data-v-b13d20da] *{cursor:default;pointer-events:none}.visibility-container label[data-v-b13d20da]{color:var(--color-text-lighter);width:150px;line-height:50px}.visibility-container__select[data-v-b13d20da]{width:270px;max-width:40vw}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,YAAA,CACA,iBAAA,CAEA,gDACC,mBAAA,CACA,UAAA,CACA,cAAA,CACA,mBAAA,CAEA,oGAEC,cAAA,CACA,mBAAA,CAIF,6CACC,+BAAA,CACA,WAAA,CACA,gBAAA,CAGD,+CACC,WAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.visibility-container {\\n\\tdisplay: flex;\\n\\twidth: max-content;\\n\\n\\t&.disabled {\\n\\t\\tfilter: grayscale(1);\\n\\t\\topacity: 0.5;\\n\\t\\tcursor: default;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t& *,\\n\\t\\t&::v-deep * {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\tpointer-events: none;\\n\\t\\t}\\n\\t}\\n\\n\\tlabel {\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\twidth: 150px;\\n\\t\\tline-height: 50px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 270px;\\n\\t\\tmax-width: 40vw;\\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, \"section[data-v-6eb7d8e0]{padding:10px 10px}section[data-v-6eb7d8e0] button:disabled{cursor:default}section .property[data-v-6eb7d8e0]{display:grid;align-items:center}section .property textarea[data-v-6eb7d8e0]{resize:vertical;grid-area:1/1;width:100%}section .property input[data-v-6eb7d8e0]{grid-area:1/1;width:100%}section .property .property__actions-container[data-v-6eb7d8e0]{grid-area:1/1;justify-self:flex-end;align-self:flex-end;height:30px;display:flex;gap:0 2px;margin-right:5px;margin-bottom:5px}section .property__helper-text-message[data-v-6eb7d8e0]{padding:4px 0;display:flex;align-items:center}section .property__helper-text-message__icon[data-v-6eb7d8e0]{margin-right:8px;align-self:start;margin-top:4px}section .property__helper-text-message--error[data-v-6eb7d8e0]{color:var(--color-error)}section .fade-enter[data-v-6eb7d8e0],section .fade-leave-to[data-v-6eb7d8e0]{opacity:0}section .fade-enter-active[data-v-6eb7d8e0]{transition:opacity 200ms ease-out}section .fade-leave-active[data-v-6eb7d8e0]{transition:opacity 300ms ease-out}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue\"],\"names\":[],\"mappings\":\"AACA,yBACC,iBAAA,CAEA,yCACC,cAAA,CAGD,mCACC,YAAA,CACA,kBAAA,CAEA,4CACC,eAAA,CACA,aAAA,CACA,UAAA,CAGD,yCACC,aAAA,CACA,UAAA,CAGD,gEACC,aAAA,CACA,qBAAA,CACA,mBAAA,CACA,WAAA,CAEA,YAAA,CACA,SAAA,CACA,gBAAA,CACA,iBAAA,CAIF,wDACC,aAAA,CACA,YAAA,CACA,kBAAA,CAEA,8DACC,gBAAA,CACA,gBAAA,CACA,cAAA,CAGD,+DACC,wBAAA,CAIF,6EAEC,SAAA,CAGD,4CACC,iCAAA,CAGD,4CACC,iCAAA\",\"sourcesContent\":[\"\\nsection {\\n\\tpadding: 10px 10px;\\n\\n\\t&::v-deep button:disabled {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t.property {\\n\\t\\tdisplay: grid;\\n\\t\\talign-items: center;\\n\\n\\t\\ttextarea {\\n\\t\\t\\tresize: vertical;\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\tinput {\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t.property__actions-container {\\n\\t\\t\\tgrid-area: 1 / 1;\\n\\t\\t\\tjustify-self: flex-end;\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\theight: 30px;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tgap: 0 2px;\\n\\t\\t\\tmargin-right: 5px;\\n\\t\\t\\tmargin-bottom: 5px;\\n\\t\\t}\\n\\t}\\n\\n\\t.property__helper-text-message {\\n\\t\\tpadding: 4px 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tmargin-right: 8px;\\n\\t\\t\\talign-self: start;\\n\\t\\t\\tmargin-top: 4px;\\n\\t\\t}\\n\\n\\t\\t&--error {\\n\\t\\t\\tcolor: var(--color-error);\\n\\t\\t}\\n\\t}\\n\\n\\t.fade-enter,\\n\\t.fade-leave-to {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t.fade-enter-active {\\n\\t\\ttransition: opacity 200ms ease-out;\\n\\t}\\n\\n\\t.fade-leave-active {\\n\\t\\ttransition: opacity 300ms ease-out;\\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, \".federation-actions[data-v-4ea07669],.federation-actions--additional[data-v-4ea07669]{opacity:.4 !important}.federation-actions[data-v-4ea07669]:hover,.federation-actions[data-v-4ea07669]:focus,.federation-actions[data-v-4ea07669]:active,.federation-actions--additional[data-v-4ea07669]:hover,.federation-actions--additional[data-v-4ea07669]:focus,.federation-actions--additional[data-v-4ea07669]:active{opacity:.8 !important}.federation-actions--additional[data-v-4ea07669] button{padding-bottom:7px;height:30px !important;min-height:30px !important;width:30px !important;min-width:30px !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControl.vue\"],\"names\":[],\"mappings\":\"AACA,sFAEC,qBAAA,CAEA,wSAGC,qBAAA,CAKD,wDAEC,kBAAA,CACA,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA\",\"sourcesContent\":[\"\\n.federation-actions,\\n.federation-actions--additional {\\n\\topacity: 0.4 !important;\\n\\n\\t&:hover,\\n\\t&:focus,\\n\\t&:active {\\n\\t\\topacity: 0.8 !important;\\n\\t}\\n}\\n\\n.federation-actions--additional {\\n\\t&::v-deep button {\\n\\t\\t// TODO remove this hack\\n\\t\\tpadding-bottom: 7px;\\n\\t\\theight: 30px !important;\\n\\t\\tmin-height: 30px !important;\\n\\t\\twidth: 30px !important;\\n\\t\\tmin-width: 30px !important;\\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, \".federation-actions__btn[data-v-d426ed04] p{width:150px !important;padding:8px 0 !important;color:var(--color-main-text) !important;font-size:12.8px !important;line-height:1.5em !important}.federation-actions__btn--active[data-v-d426ed04]{background-color:var(--color-primary-light) !important;box-shadow:inset 2px 0 var(--color-primary) !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue\"],\"names\":[],\"mappings\":\"AAEC,4CACC,sBAAA,CACA,wBAAA,CACA,uCAAA,CACA,2BAAA,CACA,4BAAA,CAIF,kDACC,sDAAA,CACA,sDAAA\",\"sourcesContent\":[\"\\n.federation-actions__btn {\\n\\t&::v-deep p {\\n\\t\\twidth: 150px !important;\\n\\t\\tpadding: 8px 0 !important;\\n\\t\\tcolor: var(--color-main-text) !important;\\n\\t\\tfont-size: 12.8px !important;\\n\\t\\tline-height: 1.5em !important;\\n\\t}\\n}\\n\\n.federation-actions__btn--active {\\n\\tbackground-color: var(--color-primary-light) !important;\\n\\tbox-shadow: inset 2px 0 var(--color-primary) !important;\\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, \".headerbar-label[data-v-b43fcc0c]{font-weight:normal;display:inline-flex;width:100%;margin:12px 0 0 0;gap:8px;align-items:center;font-size:16px;color:var(--color-text-light)}.headerbar-label.profile-property[data-v-b43fcc0c]{height:38px}.headerbar-label.setting-property[data-v-b43fcc0c]{height:44px}.headerbar-label label[data-v-b43fcc0c]{cursor:pointer}.federation-control[data-v-b43fcc0c]{margin:0}.button-vue[data-v-b43fcc0c]{margin:0 0 0 auto !important}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/PersonalInfo/shared/HeaderBar.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,kBAAA,CACA,mBAAA,CACA,UAAA,CACA,iBAAA,CACA,OAAA,CACA,kBAAA,CACA,cAAA,CACA,6BAAA,CAEA,mDACC,WAAA,CAGD,mDACC,WAAA,CAGD,wCACC,cAAA,CAIF,qCACC,QAAA,CAGD,6BACC,4BAAA\",\"sourcesContent\":[\"\\n.headerbar-label {\\n\\tfont-weight: normal;\\n\\tdisplay: inline-flex;\\n\\twidth: 100%;\\n\\tmargin: 12px 0 0 0;\\n\\tgap: 8px;\\n\\talign-items: center;\\n\\tfont-size: 16px;\\n\\tcolor: var(--color-text-light);\\n\\n\\t&.profile-property {\\n\\t\\theight: 38px;\\n\\t}\\n\\n\\t&.setting-property {\\n\\t\\theight: 44px;\\n\\t}\\n\\n\\tlabel {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n.federation-control {\\n\\tmargin: 0;\\n}\\n\\n.button-vue {\\n\\tmargin: 0 0 0 auto !important;\\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","// 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 = 4418;","__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\t4418: 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));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(30485); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","components","NcActionButton","props","activeScope","type","required","displayName","handleScopeChange","default","iconClass","isSupportedScope","tooltipDisabled","tooltip","methods","updateScope","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","component","_vm","this","_c","_self","staticClass","class","attrs","on","$event","stopPropagation","preventDefault","apply","arguments","_v","_s","ACCOUNT_PROPERTY_ENUM","Object","freeze","ADDRESS","AVATAR","BIOGRAPHY","DISPLAYNAME","EMAIL_COLLECTION","EMAIL","HEADLINE","NOTIFICATION_EMAIL","FEDIVERSE","ORGANISATION","PHONE","PROFILE_ENABLED","ROLE","TWITTER","WEBSITE","ACCOUNT_PROPERTY_READABLE_ENUM","t","NAME_READABLE_ENUM","PROFILE_READABLE_ENUM","PROFILE_VISIBILITY","PROPERTY_READABLE_KEYS_ENUM","ACCOUNT_SETTING_PROPERTY_ENUM","LANGUAGE","LOCALE","ACCOUNT_SETTING_PROPERTY_READABLE_ENUM","SCOPE_ENUM","PRIVATE","LOCAL","FEDERATED","PUBLISHED","PROPERTY_READABLE_SUPPORTED_SCOPES_ENUM","UNPUBLISHED_READABLE_PROPERTIES","SCOPE_SUFFIX","SCOPE_PROPERTY_ENUM","DEFAULT_ADDITIONAL_EMAIL_SCOPE","VERIFICATION_ENUM","NOT_VERIFIED","VERIFICATION_IN_PROGRESS","VERIFIED","VALIDATE_EMAIL_REGEX","savePrimaryAccountProperty","accountProperty","value","userId","getCurrentUser","uid","url","generateOcsUrl","confirmPassword","axios","key","res","data","savePrimaryAccountPropertyScope","scope","getLoggerBuilder","setApp","detectUser","build","handleError","error","message","fullMessage","response","status","showError","logger","loadState","federationEnabled","lookupServerUploadEnabled","NcActions","FederationControlAction","readable","validator","additional","additionalValue","disabled","handleAdditionalScopeChange","readableLowerCase","initialScope","computed","ariaLabel","property","scopeDisplayNameLowerCase","scopeIcon","federationScopes","supportedScopes","scopes","changeScope","updatePrimaryScope","responseData","errorMessage","updateAdditionalScope","handleResponse","_l","federationScope","includes","FederationControl","NcButton","Plus","inputId","isEditable","isMultiValueSupported","isValidSection","isHeading","localScope","isProfileProperty","isSettingProperty","onAddAdditional","onScopeChange","tag","_e","scopedSlots","_u","fn","proxy","avatar","avatarChangeSupported","setMultiSelect","setMimeTypeFilter","setModal","setType","allowDirectories","Delete","Folder","HeaderBar","NcAvatar","Upload","VueCropper","showCropper","loading","version","isGenerated","validMimeTypes","cropperOptions","aspectRatio","viewMode","guides","center","highlight","autoCropArea","minContainerWidth","minContainerHeight","created","subscribe","beforeDestroy","unsubscribe","activateLocalFilePicker","onChange","reader","openFilePicker","picker","path","tempAvatar","saveAvatar","blob","formData","removeAvatar","cancel","handleAvatarUpdate","emit","handleDisplayNameUpdate","$set","ref","join","directives","rawName","expression","_b","groups","quota","totalSpace","usage","usageRelative","Account","CircleSlice","NcProgressBar","quotaText","domProps","AlertCircle","AlertOctagon","Check","placeholder","multiLine","onValidate","onSave","initialValue","helperText","showCheckmarkIcon","showErrorIcon","onPropertyChange","debouncePropertyChange","updateProperty","setTimeout","toLocaleLowerCase","displayNameChangeSupported","AccountPropertySection","oc_userconfig","savePrimaryEmail","email","saveAdditionalEmail","saveNotificationEmail","removeAdditionalEmail","collection","updateAdditionalEmail","prevEmail","newEmail","savePrimaryEmailScope","saveAdditionalEmailScope","collectionScope","validateEmail","input","test","slice","length","encodeURIComponent","replace","index","primary","activeNotificationEmail","localVerificationState","propertyReadable","initialEmail","deleteDisabled","deleteEmailLabel","setNotificationMailDisabled","setNotificationMailLabel","federationDisabled","inputPlaceholder","isNotificationEmail","mounted","onEmailChange","debounceEmailChange","deleteEmail","updatePrimaryEmail","addAdditionalEmail","setNotificationMail","newNotificationMailValue","notificationEmail","deleteAdditionalEmail","handleDeleteAdditionalEmail","additionalEmails","primaryEmail","Email","firstAdditionalEmail","primaryEmailValue","get","set","onAddAdditionalEmail","onDeleteAdditionalEmail","onUpdateEmail","deletedEmail","onUpdateNotificationEmail","deleteFirstAdditionalEmail","handleDeleteFirstAdditionalEmail","generateUniqueKey","additionalEmail","parseInt","locallyVerified","defaultPhoneRegion","phone","location","website","URL","e","twitter","fediverse","commonLanguages","otherLanguages","language","initialLanguage","allLanguages","reduce","onLanguageChange","validateLanguage","code","undefined","updateLanguage","constructLanguage","reloadPage","commonLanguage","otherLanguage","activeLanguage","Language","Web","locale","localesForLanguage","otherLocales","initialLocale","example","date","time","firstDayOfWeek","allLocales","setInterval","onLocaleChange","validateLocale","updateLocale","constructLocale","refreshExample","currentLocale","activeLocale","Locale","ChevronDownIcon","profileEnabled","_g","$listeners","NcCheckboxRadioSwitch","isProfileEnabled","saveEnableProfile","organisation","profilePageLink","EditProfileAnchorLink","ProfileCheckbox","ProfilePreviewCard","handleOrganisationUpdate","role","headline","biography","saveProfileParameterVisibility","paramId","visibility","VISIBILITY_ENUM","SHOW","SHOW_USERS_ONLY","HIDE","VISIBILITY_PROPERTY_ENUM","label","NcSelect","displayId","initialVisibility","visibilityObject","visibilityOptions","onVisibilityChange","updateVisibility","handleProfileEnabledUpdate","profileConfig","VisibilityDropdown","heading","visibilityParams","map","id","appId","sort","marginLeft","window","rows","style","gridTemplateRows","param","__webpack_nonce__","btoa","getRequestToken","profileEnabledGlobally","Vue","AvatarView","AvatarSection","DetailsView","DetailsSection","DisplayNameView","DisplayNameSection","EmailView","EmailSection","PhoneView","PhoneSection","LocationView","LocationSection","WebsiteView","WebsiteSection","TwitterView","TwitterSection","FediverseView","FediverseSection","LanguageView","LanguageSection","LocaleView","LocaleSection","$mount","ProfileView","ProfileSection","OrganisationView","OrganisationSection","RoleView","RoleSection","HeadlineView","HeadlineSection","BiographyView","BiographySection","ProfileVisibilityView","ProfileVisibilitySection","___CSS_LOADER_EXPORT___","push","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","keys","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","document","baseURI","self","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php
index 9afeea7b573..afa464a8138 100644
--- a/lib/private/Files/Cache/Cache.php
+++ b/lib/private/Files/Cache/Cache.php
@@ -43,6 +43,7 @@ namespace OC\Files\Cache;
use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
use OC\Files\Search\SearchComparison;
use OC\Files\Search\SearchQuery;
+use OC\Files\Storage\Wrapper\Encryption;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Cache\CacheEntryInsertedEvent;
@@ -659,6 +660,10 @@ class Cache implements ICache {
return [$this->getNumericStorageId(), $path];
}
+ protected function hasEncryptionWrapper(): bool {
+ return $this->storage->instanceOfStorage(Encryption::class);
+ }
+
/**
* Move a file or folder in the cache
*
@@ -710,6 +715,11 @@ class Cache implements ICache {
->where($query->expr()->eq('storage', $query->createNamedParameter($sourceStorageId, IQueryBuilder::PARAM_INT)))
->andWhere($query->expr()->like('path', $query->createNamedParameter($this->connection->escapeLikeParameter($sourcePath) . '/%')));
+ // when moving from an encrypted storage to a non-encrypted storage remove the `encrypted` mark
+ if ($sourceCache->hasEncryptionWrapper() && !$this->hasEncryptionWrapper()) {
+ $query->set('encrypted', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT));
+ }
+
try {
$query->execute();
} catch (\OC\DatabaseException $e) {
@@ -726,6 +736,12 @@ class Cache implements ICache {
->set('name', $query->createNamedParameter(basename($targetPath)))
->set('parent', $query->createNamedParameter($newParentId, IQueryBuilder::PARAM_INT))
->whereFileId($sourceId);
+
+ // when moving from an encrypted storage to a non-encrypted storage remove the `encrypted` mark
+ if ($sourceCache->hasEncryptionWrapper() && !$this->hasEncryptionWrapper()) {
+ $query->set('encrypted', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT));
+ }
+
$query->execute();
$this->connection->commit();
@@ -1085,6 +1101,12 @@ class Cache implements ICache {
throw new \RuntimeException("Invalid source cache entry on copyFromCache");
}
$data = $this->cacheEntryToArray($sourceEntry);
+
+ // when moving from an encrypted storage to a non-encrypted storage remove the `encrypted` mark
+ if ($sourceCache instanceof Cache && $sourceCache->hasEncryptionWrapper() && !$this->hasEncryptionWrapper()) {
+ $data['encrypted'] = 0;
+ }
+
$fileId = $this->put($targetPath, $data);
if ($fileId <= 0) {
throw new \RuntimeException("Failed to copy to " . $targetPath . " from cache with source data " . json_encode($data) . " ");
diff --git a/lib/private/Files/Cache/Wrapper/CacheWrapper.php b/lib/private/Files/Cache/Wrapper/CacheWrapper.php
index 66ae83fd144..2cd378ad23c 100644
--- a/lib/private/Files/Cache/Wrapper/CacheWrapper.php
+++ b/lib/private/Files/Cache/Wrapper/CacheWrapper.php
@@ -56,6 +56,15 @@ class CacheWrapper extends Cache {
return $this->cache;
}
+ protected function hasEncryptionWrapper(): bool {
+ $cache = $this->getCache();
+ if ($cache instanceof Cache) {
+ return $cache->hasEncryptionWrapper();
+ } else {
+ return false;
+ }
+ }
+
/**
* Make it easy for wrappers to modify every returned cache entry
*
diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php
index 737c1e9d51e..3473eebc4a0 100644
--- a/lib/private/Files/Storage/Common.php
+++ b/lib/private/Files/Storage/Common.php
@@ -477,7 +477,7 @@ abstract class Common implements Storage, ILockingStorage, IWriteStreamStorage {
* get the free space in the storage
*
* @param string $path
- * @return int|false
+ * @return int|float|false
*/
public function free_space($path) {
return \OCP\Files\FileInfo::SPACE_UNKNOWN;
diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php
index fcb07cb9748..0c4a81b7491 100644
--- a/lib/private/Files/Storage/DAV.php
+++ b/lib/private/Files/Storage/DAV.php
@@ -486,7 +486,7 @@ class DAV extends Common {
/**
* @param string $path
* @param mixed $data
- * @return int|false
+ * @return int|float|false
*/
public function file_put_contents($path, $data) {
$path = $this->cleanPath($path);
diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php
index fe6a6d6e21a..1ff733e0d92 100644
--- a/lib/private/Files/Storage/Local.php
+++ b/lib/private/Files/Storage/Local.php
@@ -249,7 +249,7 @@ class Local extends \OC\Files\Storage\Common {
$fullPath = $this->getSourcePath($path);
if (PHP_INT_SIZE === 4) {
$helper = new \OC\LargeFileHelper;
- return $helper->getFileSize($fullPath) ?? false;
+ return $helper->getFileSize($fullPath);
}
return filesize($fullPath);
}
@@ -617,6 +617,7 @@ class Local extends \OC\Files\Storage\Common {
}
public function writeStream(string $path, $stream, int $size = null): int {
+ /** @var int|false $result We consider here that returned size will never be a float because we write less than 4GB */
$result = $this->file_put_contents($path, $stream);
if (is_resource($stream)) {
fclose($stream);
diff --git a/lib/private/Files/Storage/Wrapper/Encoding.php b/lib/private/Files/Storage/Wrapper/Encoding.php
index 6aba839d26d..d6006f746ad 100644
--- a/lib/private/Files/Storage/Wrapper/Encoding.php
+++ b/lib/private/Files/Storage/Wrapper/Encoding.php
@@ -311,7 +311,7 @@ class Encoding extends Wrapper {
*
* @param string $path
* @param mixed $data
- * @return int|false
+ * @return int|float|false
*/
public function file_put_contents($path, $data) {
return $this->storage->file_put_contents($this->findPathToUse($path), $data);
@@ -396,7 +396,7 @@ class Encoding extends Wrapper {
* see https://www.php.net/manual/en/function.free_space.php
*
* @param string $path
- * @return int|bool
+ * @return int|float|bool
*/
public function free_space($path) {
return $this->storage->free_space($this->findPathToUse($path));
diff --git a/lib/private/Files/Storage/Wrapper/Jail.php b/lib/private/Files/Storage/Wrapper/Jail.php
index 4501c96d631..e21a2cba244 100644
--- a/lib/private/Files/Storage/Wrapper/Jail.php
+++ b/lib/private/Files/Storage/Wrapper/Jail.php
@@ -259,7 +259,7 @@ class Jail extends Wrapper {
*
* @param string $path
* @param mixed $data
- * @return int|false
+ * @return int|float|false
*/
public function file_put_contents($path, $data) {
return $this->getWrapperStorage()->file_put_contents($this->getUnjailedPath($path), $data);
@@ -335,7 +335,7 @@ class Jail extends Wrapper {
* see https://www.php.net/manual/en/function.free_space.php
*
* @param string $path
- * @return int|bool
+ * @return int|float|bool
*/
public function free_space($path) {
return $this->getWrapperStorage()->free_space($this->getUnjailedPath($path));
diff --git a/lib/private/Files/Storage/Wrapper/Quota.php b/lib/private/Files/Storage/Wrapper/Quota.php
index 5c542361c36..cfb2c455a2c 100644
--- a/lib/private/Files/Storage/Wrapper/Quota.php
+++ b/lib/private/Files/Storage/Wrapper/Quota.php
@@ -41,7 +41,8 @@ use OCP\Files\Storage\IStorage;
class Quota extends Wrapper {
/** @var callable|null */
protected $quotaCallback;
- protected ?int $quota;
+ /** @var int|float|null int on 64bits, float on 32bits for bigint */
+ protected int|float|null $quota;
protected string $sizeRoot;
private SystemConfig $config;
@@ -57,9 +58,9 @@ class Quota extends Wrapper {
}
/**
- * @return int quota value
+ * @return int|float quota value
*/
- public function getQuota(): int {
+ public function getQuota(): int|float {
if ($this->quota === null) {
$quotaCallback = $this->quotaCallback;
if ($quotaCallback === null) {
@@ -77,7 +78,8 @@ class Quota extends Wrapper {
/**
* @param string $path
- * @param \OC\Files\Storage\Storage $storage
+ * @param IStorage $storage
+ * @return int|float
*/
protected function getSize($path, $storage = null) {
if ($this->config->getValue('quota_include_external_storage', false)) {
@@ -101,7 +103,7 @@ class Quota extends Wrapper {
* Get free space as limited by the quota
*
* @param string $path
- * @return int|bool
+ * @return int|float|bool
*/
public function free_space($path) {
if (!$this->hasQuota()) {
@@ -128,7 +130,7 @@ class Quota extends Wrapper {
*
* @param string $path
* @param mixed $data
- * @return int|false
+ * @return int|float|false
*/
public function file_put_contents($path, $data) {
if (!$this->hasQuota()) {
@@ -177,7 +179,7 @@ class Quota extends Wrapper {
// don't apply quota for part files
if (!$this->isPartFile($path)) {
$free = $this->free_space($path);
- if ($source && is_int($free) && $free >= 0 && $mode !== 'r' && $mode !== 'rb') {
+ if ($source && (is_int($free) || is_float($free)) && $free >= 0 && $mode !== 'r' && $mode !== 'rb') {
// only apply quota for files, not metadata, trash or others
if ($this->shouldApplyQuota($path)) {
return \OC\Files\Stream\Quota::wrap($source, $free);
@@ -192,7 +194,7 @@ class Quota extends Wrapper {
* Checks whether the given path is a part file
*
* @param string $path Path that may identify a .part file
- * @return string File path without .part extension
+ * @return bool
* @note this is needed for reusing keys
*/
private function isPartFile($path) {
diff --git a/lib/private/Files/Storage/Wrapper/Wrapper.php b/lib/private/Files/Storage/Wrapper/Wrapper.php
index 26b4570cc75..c2d382f5dfc 100644
--- a/lib/private/Files/Storage/Wrapper/Wrapper.php
+++ b/lib/private/Files/Storage/Wrapper/Wrapper.php
@@ -249,7 +249,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea
*
* @param string $path
* @param mixed $data
- * @return int|false
+ * @return int|float|false
*/
public function file_put_contents($path, $data) {
return $this->getWrapperStorage()->file_put_contents($path, $data);
@@ -325,7 +325,7 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage, IWriteStrea
* see https://www.php.net/manual/en/function.free_space.php
*
* @param string $path
- * @return int|bool
+ * @return int|float|bool
*/
public function free_space($path) {
return $this->getWrapperStorage()->free_space($path);
diff --git a/lib/private/LargeFileHelper.php b/lib/private/LargeFileHelper.php
index 2b2fed4e9f1..c8d6ba42eb5 100755
--- a/lib/private/LargeFileHelper.php
+++ b/lib/private/LargeFileHelper.php
@@ -95,10 +95,9 @@ class LargeFileHelper {
*
* @param string $filename Path to the file.
*
- * @return null|int|float Number of bytes as number (float or int) or
- * null on failure.
+ * @return int|float Number of bytes as number (float or int)
*/
- public function getFileSize(string $filename): null|int|float {
+ public function getFileSize(string $filename): int|float {
$fileSize = $this->getFileSizeViaCurl($filename);
if (!is_null($fileSize)) {
return $fileSize;
diff --git a/lib/public/Files/Storage.php b/lib/public/Files/Storage.php
index ca5276af1e8..c91d47bdcdf 100644
--- a/lib/public/Files/Storage.php
+++ b/lib/public/Files/Storage.php
@@ -227,7 +227,7 @@ interface Storage extends IStorage {
*
* @param string $path
* @param mixed $data
- * @return int|false
+ * @return int|float|false
* @since 6.0.0
*/
public function file_put_contents($path, $data);
@@ -296,7 +296,7 @@ interface Storage extends IStorage {
* see https://www.php.net/manual/en/function.disk-free-space.php
*
* @param string $path
- * @return int|bool
+ * @return int|float|bool
* @since 6.0.0
*/
public function free_space($path);
diff --git a/lib/public/Files/Storage/IStorage.php b/lib/public/Files/Storage/IStorage.php
index 1084eb7c941..7b3b9eb484e 100644
--- a/lib/public/Files/Storage/IStorage.php
+++ b/lib/public/Files/Storage/IStorage.php
@@ -224,7 +224,7 @@ interface IStorage {
*
* @param string $path
* @param mixed $data
- * @return int|false
+ * @return int|float|false
* @since 9.0.0
*/
public function file_put_contents($path, $data);
@@ -293,7 +293,7 @@ interface IStorage {
* see https://www.php.net/manual/en/function.free_space.php
*
* @param string $path
- * @return int|bool
+ * @return int|float|bool
* @since 9.0.0
*/
public function free_space($path);